From 1482c90ec996bb994200aba63a235a3820621f21 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 23 Sep 2021 15:47:07 +0800
Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/xc-mall
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 110 +++++++++++
sql/xc_mall.sql | 33 +++
src/main/java/cc/mrbird/febs/mall/mapper/MallOrderRefundOperationMapper.java | 7
src/main/java/cc/mrbird/febs/mall/dto/DelCartGoodsDto.java | 20 ++
src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java | 2
src/main/java/cc/mrbird/febs/common/enumerates/OrderRefundStatusEnum.java | 42 ++++
src/main/resources/mapper/modules/MallShoppingCartMapper.xml | 5
src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefund.java | 33 +++
src/main/java/cc/mrbird/febs/mall/mapper/MallShoppingCartMapper.java | 2
src/main/java/cc/mrbird/febs/mall/dto/GoodsCntDto.java | 25 ++
src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java | 24 ++
src/main/java/cc/mrbird/febs/mall/vo/OrderRefundVo.java | 32 +++
src/main/java/cc/mrbird/febs/mall/mapper/MallOrderRefundMapper.java | 10 +
src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefundOperation.java | 20 ++
src/main/resources/mapper/modules/MallOrderInfoMapper.xml | 1
src/main/java/cc/mrbird/febs/mall/conversion/MallOrderRefundConversion.java | 17 +
src/main/java/cc/mrbird/febs/mall/dto/RefundExpressDto.java | 24 ++
src/main/java/cc/mrbird/febs/mall/controller/ApiMallShoppingCartController.java | 24 ++
src/main/java/cc/mrbird/febs/common/enumerates/OrderStatusEnum.java | 2
src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java | 10
src/main/java/cc/mrbird/febs/common/utils/AppContants.java | 4
src/main/resources/mapper/modules/MallOrderRefundOperationMapper.xml | 5
src/main/java/cc/mrbird/febs/mall/dto/AddRefundDto.java | 23 ++
src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java | 3
src/main/resources/mapper/modules/MallOrderRefundMapper.xml | 8
25 files changed, 467 insertions(+), 19 deletions(-)
diff --git a/sql/xc_mall.sql b/sql/xc_mall.sql
index 89585f9..5f99d0f 100644
--- a/sql/xc_mall.sql
+++ b/sql/xc_mall.sql
@@ -243,3 +243,36 @@
alter table mall_order_info add receiving_time datetime null comment '收货时间';
+DROP TABLE IF EXISTS mall_order_refund;
+CREATE TABLE mall_order_refund(
+ REVISION INT COMMENT '乐观锁' ,
+ CREATED_BY VARCHAR(32) COMMENT '创建人' ,
+ CREATED_TIME DATETIME COMMENT '创建时间' ,
+ UPDATED_BY VARCHAR(32) COMMENT '更新人' ,
+ UPDATED_TIME DATETIME COMMENT '更新时间' ,
+ ID BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键' ,
+ member_id BIGINT COMMENT '用户ID' ,
+ order_id BIGINT COMMENT '订单ID' ,
+ reason VARCHAR(255) COMMENT '退款原因' ,
+ desp TEXT COMMENT '描述' ,
+ remark TEXT COMMENT '备注' ,
+ status INT COMMENT '状态;1-已申请2-同意退款3-驳回退款4-已提交物流信息5-已退款' ,
+ express_no VARCHAR(255) COMMENT '物流单号' ,
+ express_com VARCHAR(255) COMMENT '物流公司' ,
+ PRIMARY KEY (ID)
+) COMMENT = '订单退款';
+
+DROP TABLE IF EXISTS mall_order_refund_operation;
+CREATE TABLE mall_order_refund_operation(
+ REVISION INT COMMENT '乐观锁' ,
+ CREATED_BY VARCHAR(32) COMMENT '创建人' ,
+ CREATED_TIME DATETIME COMMENT '创建时间' ,
+ UPDATED_BY VARCHAR(32) COMMENT '更新人' ,
+ UPDATED_TIME DATETIME COMMENT '更新时间' ,
+ ID BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键' ,
+ refund_id BIGINT COMMENT '退款ID' ,
+ order_id BIGINT COMMENT '订单ID' ,
+ content TEXT COMMENT '操作内容' ,
+ PRIMARY KEY (ID)
+) COMMENT = '退款操作明细';
+
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/OrderRefundStatusEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/OrderRefundStatusEnum.java
new file mode 100644
index 0000000..60e36fc
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/OrderRefundStatusEnum.java
@@ -0,0 +1,42 @@
+package cc.mrbird.febs.common.enumerates;
+
+import lombok.Getter;
+
+/**
+ * @author wzy
+ * @date 2021-09-23
+ **/
+@Getter
+public enum OrderRefundStatusEnum {
+
+ /**
+ * 退款已提交
+ */
+ REFUND_APPLY(1),
+ /**
+ * 同意退款
+ */
+ AGREE(2),
+ /**
+ * 驳回退款
+ */
+ DISAGREE(3),
+ /**
+ * 物流信息已提交
+ */
+ EXPRESS_SUBMIT(4),
+ /**
+ * 已退款
+ */
+ FINISH(5),
+ /**
+ * 已取消
+ */
+ CANCEL(6);
+
+ private final Integer value;
+
+ OrderRefundStatusEnum(int value) {
+ this.value = value;
+ }
+}
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/OrderStatusEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/OrderStatusEnum.java
index a03318e..96cf5b7 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/OrderStatusEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/OrderStatusEnum.java
@@ -26,7 +26,7 @@
*/
REFUNDING(5),
/**
- * 已退款
+ * 退款处理完成
*/
REFUNDED(6),
/**
diff --git a/src/main/java/cc/mrbird/febs/common/utils/AppContants.java b/src/main/java/cc/mrbird/febs/common/utils/AppContants.java
index 4d0dd5b..c8af7fd 100644
--- a/src/main/java/cc/mrbird/febs/common/utils/AppContants.java
+++ b/src/main/java/cc/mrbird/febs/common/utils/AppContants.java
@@ -58,5 +58,9 @@
public static final String TIME_OUT = "time_out";
+ public static final int DEL_FLAG_Y = 1;
+
+ public static final int DEL_FLAG_N = 2;
+
}
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 4902ff1..3005441 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java
@@ -1,9 +1,7 @@
package cc.mrbird.febs.mall.controller;
import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.mall.dto.AddOrderDto;
-import cc.mrbird.febs.mall.dto.OrderListDto;
-import cc.mrbird.febs.mall.dto.PayOrderDto;
+import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.service.IApiMallOrderInfoService;
import cc.mrbird.febs.mall.vo.OrderDetailVo;
import cc.mrbird.febs.mall.vo.OrderListVo;
@@ -85,4 +83,24 @@
return new FebsResponse().success().message("确认成功");
}
+ @ApiOperation(value = "删除订单", notes = "删除订单")
+ @PostMapping(value = "/delOrder/{id}")
+ public FebsResponse delOrder(@PathVariable("id") Long id) {
+ mallOrderInfoService.delOrder(id);
+ return new FebsResponse().success().message("删除成功");
+ }
+
+ @ApiOperation(value = "提交退款申请", notes = "提交退款申请")
+ @PostMapping(value = "/applyRefund")
+ public FebsResponse applyRefund(@RequestBody AddRefundDto addRefundDto) {
+ mallOrderInfoService.applyRefund(addRefundDto);
+ return new FebsResponse().success().message("提交成功");
+ }
+
+ @ApiOperation(value = "提交退款物流信息", notes = "提交退款物流信息")
+ @PostMapping(value = "/refundExpress")
+ public FebsResponse refundExpress(@RequestBody RefundExpressDto refundExpressDto) {
+ mallOrderInfoService.refundExpress(refundExpressDto);
+ return new FebsResponse().success().message("提交成功");
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallShoppingCartController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallShoppingCartController.java
index a2d4ae7..d057459 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallShoppingCartController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallShoppingCartController.java
@@ -2,8 +2,12 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.mall.dto.AddCartDto;
+import cc.mrbird.febs.mall.dto.DelCartGoodsDto;
+import cc.mrbird.febs.mall.dto.GoodsCntDto;
+import cc.mrbird.febs.mall.entity.MallShoppingCart;
import cc.mrbird.febs.mall.service.IApiMallShoppingCartService;
import cc.mrbird.febs.mall.vo.ShoppingCartGoodsVo;
+import cn.hutool.core.util.StrUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
@@ -12,6 +16,8 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
/**
* @author wzy
@@ -44,9 +50,21 @@
}
@ApiOperation(value = "从购物车中删除商品", notes = "从购物车中删除商品")
- @PostMapping(value = "/delGoods/{id}")
- public FebsResponse delGoods(@PathVariable("id") Long id) {
- mallShoppingCartService.removeById(id);
+ @PostMapping(value = "/delGoods")
+ public FebsResponse delGoods(@RequestBody DelCartGoodsDto delCartGoodsDto) {
+ List<String> ids = StrUtil.split(delCartGoodsDto.getIds(), ',');
+ mallShoppingCartService.removeByIds(ids);
return new FebsResponse().success().data("删除成功");
}
+
+ @ApiOperation(value = "修改购物车商品数量", notes = "修改购物车商品数量")
+ @PostMapping(value = "/goodsCnt")
+ public FebsResponse goodsCnt(@RequestBody GoodsCntDto goodsCntDto) {
+ MallShoppingCart shoppingCart = new MallShoppingCart();
+ shoppingCart.setId(goodsCntDto.getId());
+ shoppingCart.setCnt(goodsCntDto.getCnt());
+
+ mallShoppingCartService.updateById(shoppingCart);
+ return new FebsResponse().success();
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/conversion/MallOrderRefundConversion.java b/src/main/java/cc/mrbird/febs/mall/conversion/MallOrderRefundConversion.java
new file mode 100644
index 0000000..5eaaa0f
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/conversion/MallOrderRefundConversion.java
@@ -0,0 +1,17 @@
+package cc.mrbird.febs.mall.conversion;
+
+import cc.mrbird.febs.mall.entity.MallOrderRefund;
+import cc.mrbird.febs.mall.vo.OrderRefundVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * @author wzy
+ * @date 2021-09-23
+ **/
+@Mapper
+public abstract class MallOrderRefundConversion {
+ public static final MallOrderRefundConversion INSTANCE = Mappers.getMapper(MallOrderRefundConversion.class);
+
+ public abstract OrderRefundVo entityToVo(MallOrderRefund orderRefund);
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AddRefundDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AddRefundDto.java
new file mode 100644
index 0000000..1b0071f
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AddRefundDto.java
@@ -0,0 +1,23 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author wzy
+ * @date 2021-09-23
+ **/
+@Data
+@ApiModel(value = "AddRefundDto", description = "提交退款申请参数接收类")
+public class AddRefundDto {
+
+ @ApiModelProperty(value = "订单ID", example = "1")
+ private Long id;
+
+ @ApiModelProperty(value = "退款原因", example = "太差了")
+ private String reason;
+
+ @ApiModelProperty(value = "描述", example = "描述")
+ private String desp;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/DelCartGoodsDto.java b/src/main/java/cc/mrbird/febs/mall/dto/DelCartGoodsDto.java
new file mode 100644
index 0000000..0cd3c0a
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/DelCartGoodsDto.java
@@ -0,0 +1,20 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @author wzy
+ * @date 2021-09-23
+ **/
+@Data
+@ApiModel(value = "DelCartGoodsDto", description = "删除购物车商品接口接收参数类")
+public class DelCartGoodsDto {
+
+ @NotBlank(message = "参数不能为空")
+ @ApiModelProperty(value = "逗号隔开id", example = "1,2,3")
+ private String ids;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/GoodsCntDto.java b/src/main/java/cc/mrbird/febs/mall/dto/GoodsCntDto.java
new file mode 100644
index 0000000..ed26674
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/GoodsCntDto.java
@@ -0,0 +1,25 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wzy
+ * @date 2021-09-23
+ **/
+@Data
+@ApiModel(value = "GoodsCntDto", description = "修改购物车数量参数接收类")
+public class GoodsCntDto {
+
+ @NotNull(message = "参数不能为空")
+ @ApiModelProperty(value = "购物车ID", example = "1")
+ private Long id;
+
+ @Min(1)
+ @ApiModelProperty(value = "数量", example = "12")
+ private Integer cnt;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/RefundExpressDto.java b/src/main/java/cc/mrbird/febs/mall/dto/RefundExpressDto.java
new file mode 100644
index 0000000..94e5948
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/RefundExpressDto.java
@@ -0,0 +1,24 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author wzy
+ * @date 2021-09-23
+ **/
+@Data
+@ApiModel(value = "RefundExpressDto", description = "退款订单物流接收参数类")
+public class RefundExpressDto {
+
+ @ApiModelProperty(value = "订单ID", example = "1")
+ private Long id;
+
+ @ApiModelProperty(value = "物流单号", example = "123")
+ private String expressNo;
+
+ @ApiModelProperty(value = "物流公司", example = "中通")
+ private String expressCom;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefund.java b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefund.java
new file mode 100644
index 0000000..dd56255
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefund.java
@@ -0,0 +1,33 @@
+package cc.mrbird.febs.mall.entity;
+
+import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * @author wzy
+ * @date 2021-09-23
+ **/
+@Data
+@TableName("mall_order_refund")
+public class MallOrderRefund extends BaseEntity {
+
+ private Long memberId;
+
+ private Long orderId;
+
+ private String reason;
+
+ private String desp;
+
+ private String remark;
+
+ /**
+ * 1-已申请 2-同意退款 3-驳回退款 4-已提交物流信息 5-已退款 6-已取消
+ */
+ private Integer status;
+
+ private String expressNo;
+
+ private String expressCom;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefundOperation.java b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefundOperation.java
new file mode 100644
index 0000000..de05e22
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderRefundOperation.java
@@ -0,0 +1,20 @@
+package cc.mrbird.febs.mall.entity;
+
+import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * @author wzy
+ * @date 2021-09-23
+ **/
+@Data
+@TableName("mall_order_refund_operation")
+public class MallOrderRefundOperation extends BaseEntity {
+
+ private Long refundId;
+
+ private Long orderId;
+
+ private String content;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderRefundMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderRefundMapper.java
new file mode 100644
index 0000000..c99e4ee
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderRefundMapper.java
@@ -0,0 +1,10 @@
+package cc.mrbird.febs.mall.mapper;
+
+import cc.mrbird.febs.mall.entity.MallOrderRefund;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+public interface MallOrderRefundMapper extends BaseMapper<MallOrderRefund> {
+
+ MallOrderRefund selectOrderRefundByOrderId(@Param("orderId") Long orderId);
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderRefundOperationMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderRefundOperationMapper.java
new file mode 100644
index 0000000..8ce4622
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderRefundOperationMapper.java
@@ -0,0 +1,7 @@
+package cc.mrbird.febs.mall.mapper;
+
+import cc.mrbird.febs.mall.entity.MallOrderRefundOperation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface MallOrderRefundOperationMapper extends BaseMapper<MallOrderRefundOperation> {
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallShoppingCartMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallShoppingCartMapper.java
index 8b79d93..c90781a 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallShoppingCartMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallShoppingCartMapper.java
@@ -15,4 +15,6 @@
List<MallShoppingCart> selectCartGoodsList(@Param("memberId") Long memberId);
MallShoppingCart selectCartGoodsBySkuId(@Param("skuId") Long skuId, @Param("memberId") Long memberId);
+
+ int delBySkuId(@Param("skuId") Long skuId, @Param("memberId") Long memberId);
}
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 fc62ef8..bfefbbc 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java
@@ -1,8 +1,6 @@
package cc.mrbird.febs.mall.service;
-import cc.mrbird.febs.mall.dto.AddOrderDto;
-import cc.mrbird.febs.mall.dto.OrderListDto;
-import cc.mrbird.febs.mall.dto.PayOrderDto;
+import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.MallOrderInfo;
import cc.mrbird.febs.mall.vo.OrderDetailVo;
import cc.mrbird.febs.mall.vo.OrderListVo;
@@ -23,4 +21,10 @@
OrderDetailVo findOrderDetailsById(Long id);
void confirmOrder(Long id);
+
+ void delOrder(Long id);
+
+ void applyRefund(AddRefundDto addRefundDto);
+
+ void refundExpress(RefundExpressDto refundExpressDto);
}
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 5ccdcba..e66a8cd 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
@@ -1,20 +1,21 @@
package cc.mrbird.febs.mall.service.impl;
+import cc.mrbird.febs.common.enumerates.OrderRefundStatusEnum;
import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.common.utils.MallUtils;
import cc.mrbird.febs.mall.conversion.MallOrderInfoConversion;
-import cc.mrbird.febs.mall.dto.AddOrderDto;
-import cc.mrbird.febs.mall.dto.AddOrderItemDto;
-import cc.mrbird.febs.mall.dto.OrderListDto;
-import cc.mrbird.febs.mall.dto.PayOrderDto;
+import cc.mrbird.febs.mall.conversion.MallOrderRefundConversion;
+import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
import cc.mrbird.febs.mall.service.IApiMallOrderInfoService;
import cc.mrbird.febs.mall.vo.OrderDetailVo;
import cc.mrbird.febs.mall.vo.OrderListVo;
+import cc.mrbird.febs.mall.vo.OrderRefundVo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
@@ -48,6 +49,9 @@
private final MallMemberMapper memberMapper;
private final IApiMallMemberWalletService memberWalletService;
private final MallExpressInfoMapper expressInfoMapper;
+ private final MallOrderRefundMapper mallOrderRefundMapper;
+ private final MallOrderRefundOperationMapper mallOrderRefundOperationMapper;
+ private final MallShoppingCartMapper mallShoppingCartMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -106,6 +110,10 @@
sku.setStock(sku.getStock() - item.getCnt());
mallGoodsSkuMapper.updateById(sku);
+
+ if (addOrderDto.getType() == 1) {
+ mallShoppingCartMapper.delBySkuId(sku.getId(), member.getId());
+ }
}
orderInfo.setAmount(total);
@@ -119,7 +127,7 @@
public void cancelOrder(Long id) {
MallMember member = LoginUserUtil.getLoginUser();
MallOrderInfo orderInfo = this.baseMapper.selectOrderByMemberIdAndId(member.getId(), id);
- if (orderInfo == null) {
+ if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
throw new FebsException("订单不存在");
}
@@ -137,7 +145,7 @@
public String payOrder(PayOrderDto payOrderDto) {
MallMember member = LoginUserUtil.getLoginUser();
MallOrderInfo orderInfo = this.baseMapper.selectOrderByMemberIdAndId(member.getId(), payOrderDto.getId());
- if (orderInfo == null) {
+ if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
throw new FebsException("订单不存在");
}
@@ -186,7 +194,7 @@
@Override
public OrderDetailVo findOrderDetailsById(Long id) {
MallOrderInfo orderInfo = this.baseMapper.selectOrderDetailsById(id);
- if (orderInfo == null) {
+ if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
throw new FebsException("订单不存在");
}
@@ -197,6 +205,12 @@
orderDetailVo.setExpressNo(expressInfo.getExpressNo());
orderDetailVo.setExpressCom(expressInfo.getExpressCom());
}
+
+ if (orderInfo.getStatus() == OrderStatusEnum.REFUNDING.getValue() || orderInfo.getStatus() == OrderStatusEnum.REFUNDED.getValue()) {
+ MallOrderRefund orderRefund = mallOrderRefundMapper.selectOrderRefundByOrderId(orderInfo.getId());
+ OrderRefundVo orderRefundVo = MallOrderRefundConversion.INSTANCE.entityToVo(orderRefund);
+ orderDetailVo.setOrderRefund(orderRefundVo);
+ }
return orderDetailVo;
}
@@ -205,12 +219,92 @@
public void confirmOrder(Long id) {
MallMember member = LoginUserUtil.getLoginUser();
MallOrderInfo orderInfo = this.baseMapper.selectOrderByMemberIdAndId(member.getId(), id);
- if (orderInfo == null) {
+ if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
throw new FebsException("订单不存在");
+ }
+
+ if (orderInfo.getStatus() != OrderStatusEnum.WAIT_FINISH.getValue()) {
+ throw new FebsException("该状态不能确认收货");
}
orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
orderInfo.setReceivingTime(new Date());
this.baseMapper.updateById(orderInfo);
}
+
+ @Override
+ public void delOrder(Long id) {
+ MallMember member = LoginUserUtil.getLoginUser();
+ MallOrderInfo orderInfo = this.baseMapper.selectOrderByMemberIdAndId(member.getId(), id);
+ if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
+ throw new FebsException("订单不存在");
+ }
+
+ orderInfo.setDelFlag(AppContants.DEL_FLAG_Y);
+ this.baseMapper.updateById(orderInfo);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void applyRefund(AddRefundDto addRefundDto) {
+ MallOrderInfo orderInfo = this.baseMapper.selectById(addRefundDto.getId());
+ if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
+ throw new FebsException("订单不存在");
+ }
+
+ if (orderInfo.getStatus() == OrderStatusEnum.REFUNDING.getValue()) {
+ throw new FebsException("已提交退款, 请勿重复提交");
+ }
+
+ if (orderInfo.getStatus() == OrderStatusEnum.WAIT_PAY.getValue()) {
+ throw new FebsException("该订单不能退款");
+ }
+
+ MallMember member = LoginUserUtil.getLoginUser();
+ orderInfo.setStatus(OrderStatusEnum.REFUNDING.getValue());
+ this.baseMapper.updateById(orderInfo);
+
+ MallOrderRefund orderRefund = mallOrderRefundMapper.selectOrderRefundByOrderId(orderInfo.getId());
+ if (orderRefund == null) {
+ orderRefund = new MallOrderRefund();
+ orderRefund.setOrderId(orderInfo.getId());
+ orderRefund.setMemberId(member.getId());
+ orderRefund.setDesp(addRefundDto.getDesp());
+ orderRefund.setReason(addRefundDto.getReason());
+ orderRefund.setStatus(OrderRefundStatusEnum.REFUND_APPLY.getValue());
+ mallOrderRefundMapper.insert(orderRefund);
+ } else {
+ orderRefund.setDesp(addRefundDto.getDesp());
+ orderRefund.setReason(addRefundDto.getReason());
+ orderRefund.setStatus(OrderRefundStatusEnum.REFUND_APPLY.getValue());
+ mallOrderRefundMapper.updateById(orderRefund);
+ }
+
+
+ MallOrderRefundOperation operation = new MallOrderRefundOperation();
+ operation.setOrderId(orderInfo.getId());
+ operation.setRefundId(orderRefund.getId());
+ operation.setContent(StrUtil.format("用户:{}提交退款申请", member.getName()));
+ mallOrderRefundOperationMapper.insert(operation);
+ }
+
+ @Override
+ public void refundExpress(RefundExpressDto refundExpressDto) {
+ MallMember member = LoginUserUtil.getLoginUser();
+
+ MallOrderRefund orderRefund = mallOrderRefundMapper.selectOrderRefundByOrderId(refundExpressDto.getId());
+ if (!OrderRefundStatusEnum.AGREE.getValue().equals(orderRefund.getStatus())) {
+ throw new FebsException("暂不能提交物流信息");
+ }
+
+ orderRefund.setExpressNo(refundExpressDto.getExpressNo());
+ orderRefund.setExpressCom(refundExpressDto.getExpressCom());
+ mallOrderRefundMapper.updateById(orderRefund);
+
+ MallOrderRefundOperation operation = new MallOrderRefundOperation();
+ operation.setOrderId(refundExpressDto.getId());
+ operation.setRefundId(orderRefund.getId());
+ operation.setContent(StrUtil.format("用户:{}提交物流信息,快递公司:{},单号:{}", member.getName(), refundExpressDto.getExpressCom(), refundExpressDto.getExpressNo()));
+ mallOrderRefundOperationMapper.insert(operation);
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java b/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
index 36d8f8e..f18c329 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
@@ -51,4 +51,7 @@
@ApiModelProperty(value = "订单明细")
private List<OrderItemVo> items;
+
+ @ApiModelProperty(value = "订单退款信息")
+ private OrderRefundVo orderRefund;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java b/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
index 24b70e1..85089a9 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
@@ -25,7 +25,7 @@
@ApiModelProperty(value = "下单时间")
private Date orderTime;
- @ApiModelProperty(value = "状态 1-待支付2-待发货3-待收货4-已完成5-退款中6-已退款7-已取消")
+ @ApiModelProperty(value = "状态 1-待支付 2-待发货 3-待收货 4-已完成 5-退款中 6-退款处理完成 7-已取消")
private Integer status;
@ApiModelProperty(value = "订单金额")
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/OrderRefundVo.java b/src/main/java/cc/mrbird/febs/mall/vo/OrderRefundVo.java
new file mode 100644
index 0000000..c320147
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderRefundVo.java
@@ -0,0 +1,32 @@
+package cc.mrbird.febs.mall.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author wzy
+ * @date 2021-09-23
+ **/
+@Data
+@ApiModel(value = "OrderRefundVo", description = "订单退款详情返回参数类")
+public class OrderRefundVo {
+
+ @ApiModelProperty(value = "退款ID")
+ private Long id;
+
+ @ApiModelProperty(value = "退款理由")
+ private String reason;
+
+ @ApiModelProperty(value = "描述")
+ private String desp;
+
+ @ApiModelProperty(value = "退款状态 1-已申请 2-同意退款 3-驳回退款 4-已提交物流信息 5-已退款 6-已取消")
+ private Integer status;
+
+ @ApiModelProperty(value = "物流单号")
+ private String expressNo;
+
+ @ApiModelProperty(value = "物流公司")
+ private String expressCom;
+}
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index cf66ff2..a519661 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -53,6 +53,7 @@
<result column="longitude" property="longitude" />
<result column="latitude" property="latitude" />
<result column="remark" property="remark" />
+ <result column="del_flag" property="delFlag" />
<collection property="items" ofType="cc.mrbird.febs.mall.entity.MallOrderItem">
<id property="id" column="item_id" />
<result property="orderId" column="order_id" />
diff --git a/src/main/resources/mapper/modules/MallOrderRefundMapper.xml b/src/main/resources/mapper/modules/MallOrderRefundMapper.xml
new file mode 100644
index 0000000..383920b
--- /dev/null
+++ b/src/main/resources/mapper/modules/MallOrderRefundMapper.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!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.MallOrderRefundMapper">
+
+ <select id="selectOrderRefundByOrderId" resultType="cc.mrbird.febs.mall.entity.MallOrderRefund">
+ select * from mall_order_refund where order_id=#{orderId}
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallOrderRefundOperationMapper.xml b/src/main/resources/mapper/modules/MallOrderRefundOperationMapper.xml
new file mode 100644
index 0000000..e136417
--- /dev/null
+++ b/src/main/resources/mapper/modules/MallOrderRefundOperationMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!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.MallOrderRefundOperationMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallShoppingCartMapper.xml b/src/main/resources/mapper/modules/MallShoppingCartMapper.xml
index 1dd5d8d..353e3ff 100644
--- a/src/main/resources/mapper/modules/MallShoppingCartMapper.xml
+++ b/src/main/resources/mapper/modules/MallShoppingCartMapper.xml
@@ -20,4 +20,9 @@
select * from mall_shopping_cart
where member_id=#{memberId} and sku_id=#{skuId}
</select>
+
+ <delete id="delBySkuId">
+ delete from mall_shopping_cart
+ where member_id=#{memberId} and sku_id=#{skuId}
+ </delete>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1