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; 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(); } } 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; } 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); } 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); } 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); } } 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>