Helius
2021-09-22 506c327ae850d281b58cbf485fd1b4d15821922c
add cancelOrder
7 files modified
57 ■■■■ changed files
sql/xc_mall.sql 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java 4 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java 19 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallOrderInfoMapper.xml 3 ●●●●● patch | view | raw | blame | history
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>