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