From 506c327ae850d281b58cbf485fd1b4d15821922c Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 22 Sep 2021 14:37:22 +0800
Subject: [PATCH] add cancelOrder
---
src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java | 3 +++
src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java | 16 +++++++++-------
src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java | 4 +++-
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 19 +++++++++++++++++--
src/main/resources/mapper/modules/MallOrderInfoMapper.xml | 3 +++
sql/xc_mall.sql | 4 ++++
src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java | 8 ++++++++
7 files changed, 47 insertions(+), 10 deletions(-)
diff --git a/sql/xc_mall.sql b/sql/xc_mall.sql
index 51a5b35..e82cfb7 100644
--- a/sql/xc_mall.sql
+++ b/sql/xc_mall.sql
@@ -206,3 +206,7 @@
remark TEXT COMMENT '备注' ,
PRIMARY KEY (ID)
) COMMENT = '资金流水';
+alter table mall_order_info add del_flag int default 2 null comment '1-已删除2-未删除' after latitude;
+alter table mall_order_info add pay_order_no varchar(500) null comment '支付订单号' after pay_method;
+alter table mall_order_info add pay_result int null comment '支付结果 1-成功2-未成功' after pay_order_no;
+
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java
index cd8fb00..7189e7a 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java
@@ -26,18 +26,20 @@
private final IApiMallOrderInfoService mallOrderInfoService;
- @ApiOperation(value = "提交订单", notes = "提交订单")
- @PostMapping(value = "/addOrder")
- public FebsResponse addOrder(@RequestBody AddOrderDto addOrderDto) {
- String orderNo = mallOrderInfoService.createOrder(addOrderDto);
+ @ApiOperation(value = "创建订单", notes = "创建订单")
+ @PostMapping(value = "/createOrder")
+ public FebsResponse createOrder(@RequestBody AddOrderDto addOrderDto) {
+ Long orderId = mallOrderInfoService.createOrder(addOrderDto);
- // TODO 创建支付订单
- return new FebsResponse().success().message("创建订单成功");
+ return new FebsResponse().success().data(orderId).message("创建订单成功");
}
@ApiOperation(value = "取消订单", notes = "取消订单")
@PostMapping(value = "/cancelOrder/{id}")
public FebsResponse cancelOrder(@PathVariable("id") Long id) {
- return null;
+ mallOrderInfoService.cancelOrder(id);
+ return new FebsResponse().success();
}
+
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
index 48b1f23..fa133c2 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
@@ -27,6 +27,10 @@
private String payMethod;
+ private String payOrderNo;
+
+ private String payResult;
+
/**
* 状态 1-待支付2-待发货3-待收货4-已完成5-退款中6-已退款7-已取消
*/
@@ -36,6 +40,8 @@
* 取消类型 1-超时未支付2-主动取消
*/
private Integer cancelType;
+ public static final Integer CANCEL_OVERTIME_NO_PAY = 1;
+ public static final Integer CANCEL_BY_SELF = 2;
private String name;
@@ -48,4 +54,6 @@
private String latitude;
private String remark;
+
+ private Integer delFlag;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
index 74bdcd4..647c5fb 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
@@ -2,10 +2,13 @@
import cc.mrbird.febs.mall.entity.MallOrderInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
/**
* @author wzy
* @date 2021-09-18
**/
public interface MallOrderInfoMapper extends BaseMapper<MallOrderInfo> {
+
+ MallOrderInfo selectOrderByMemberIdAndId(@Param("memberId") Long memberId, @Param("id") Long id);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java
index aea0580..4424b48 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java
@@ -6,5 +6,7 @@
public interface IApiMallOrderInfoService extends IService<MallOrderInfo> {
- String createOrder(AddOrderDto addOrderDto);
+ Long createOrder(AddOrderDto addOrderDto);
+
+ void cancelOrder(Long id);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index d6b93d2..cc89996 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -35,7 +35,7 @@
private final MallOrderItemMapper mallOrderItemMapper;
@Override
- public String createOrder(AddOrderDto addOrderDto) {
+ public Long createOrder(AddOrderDto addOrderDto) {
MallMember member = LoginUserUtil.getLoginUser();
MallAddressInfo address = mallAddressInfoMapper.selectById(addOrderDto.getAddressId());
@@ -91,8 +91,23 @@
}
- return orderNo;
+ return orderInfo.getId();
}
+ @Override
+ public void cancelOrder(Long id) {
+ MallMember member = LoginUserUtil.getLoginUser();
+ MallOrderInfo orderInfo = this.baseMapper.selectOrderByMemberIdAndId(member.getId(), id);
+ if (orderInfo == null) {
+ throw new FebsException("订单不存在");
+ }
+ if (OrderStatusEnum.WAIT_PAY.getValue() != orderInfo.getStatus()) {
+ throw new FebsException("订单不是待付款, 无法取消");
+ }
+
+ orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue());
+ orderInfo.setCancelType(MallOrderInfo.CANCEL_BY_SELF);
+ this.baseMapper.updateById(orderInfo);
+ }
}
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index bd39908..66cd3b6 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -2,4 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cc.mrbird.febs.mall.mapper.MallOrderInfoMapper">
+ <select id="selectOrderByMemberIdAndId" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
+ select * from mall_order_info where member_id=#{memberId} and id=#{id}
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1