From e8e47505ddbb1aaf0b3575f8d8ec569c37268c4a Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 29 Aug 2022 15:23:38 +0800
Subject: [PATCH] 20220822

---
 src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java        |    6 +++
 src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java         |    2 +
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |   32 ++++++++++++++++
 src/main/resources/mapper/modules/MallRefundMapper.xml                          |   24 ++++++++++++
 src/main/java/cc/mrbird/febs/mall/dto/ApplyRefundOrderDto.java                  |   30 +++++++++++++++
 src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java                        |    2 
 src/main/java/cc/mrbird/febs/mall/mapper/MallRefundMapper.java                  |    6 +++
 src/main/java/cc/mrbird/febs/mall/entity/MallRefundEntity.java                  |    9 ++++
 8 files changed, 110 insertions(+), 1 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java b/src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java
index d525d28..92ced9e 100644
--- a/src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java
+++ b/src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java
@@ -26,7 +26,7 @@
     private static final String PWD = "1369815429";
 
     public static boolean sendVerifyCode(String telphone, String code, int time) {
-        String content = "【壹元蔬菜】您的验证码是{},请在{}分钟内输入,请勿泄露给他人,如非本人操作,请及时修改密码。";
+        String content = "【美澳】您的验证码是{},请在{}分钟内输入,请勿泄露给他人,如非本人操作,请及时修改密码。";
         return send(telphone, StrUtil.format(content, code, time));
     }
 
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 929b34d..e35831e 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java
@@ -97,6 +97,12 @@
         return mallOrderInfoService.refundOrder(id);
     }
 
+    @ApiOperation(value = "用户退款--提交退款申请", notes = "用户退款--提交退款申请")
+    @PostMapping(value = "/applyRefundOrder")
+    public FebsResponse applyRefundOrder(@RequestBody ApplyRefundOrderDto applyRefundOrderDto) {
+        return mallOrderInfoService.applyRefundOrder(applyRefundOrderDto);
+    }
+
     @ApiOperation(value = "提交退款申请", notes = "提交退款申请")
     @PostMapping(value = "/applyRefund")
     public FebsResponse applyRefund(@RequestBody AddRefundDto addRefundDto) {
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApplyRefundOrderDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApplyRefundOrderDto.java
new file mode 100644
index 0000000..74ab264
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ApplyRefundOrderDto.java
@@ -0,0 +1,30 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "ApplyRefundOrderDto", description = "小程序提交退款申请")
+public class ApplyRefundOrderDto {
+
+    //退款订单ID
+    private Long orderId;
+    //退款订单详情ID
+    private Long itemId;
+    //退款方式 1:微信 2:支付宝 3:其他
+    private Integer type;
+    //退款状态 1:成功 2:失败 3:退款中
+    private Integer state;
+    //退款金额
+    private BigDecimal amount;
+
+    //退款原因
+    private String refundReason;
+    //退款说明
+    private String refundRemark;
+    //退款图片
+    private String refundPic;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallRefundEntity.java b/src/main/java/cc/mrbird/febs/mall/entity/MallRefundEntity.java
index 884b517..71dacc7 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallRefundEntity.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallRefundEntity.java
@@ -16,6 +16,8 @@
     private Long memberId;
     //退款订单ID
     private Long orderId;
+    //退款订单详情ID
+    private Long itemId;
     //退款方式 1:微信 2:支付宝 3:其他
     private Integer type;
     //退款状态 1:成功 2:失败 3:退款中
@@ -23,4 +25,11 @@
     //退款金额
     private BigDecimal amount;
 
+    //退款原因
+    private String refundReason;
+    //退款说明
+    private String refundRemark;
+    //退款图片
+    private String refundPic;
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallRefundMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallRefundMapper.java
index 4ccf42f..f1a73ef 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallRefundMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallRefundMapper.java
@@ -2,6 +2,12 @@
 
 import cc.mrbird.febs.mall.entity.MallRefundEntity;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface MallRefundMapper extends BaseMapper<MallRefundEntity> {
+
+    List<MallRefundEntity> selectByItemIdAndOrderIdAndState(@Param("itemId")Long itemId, @Param("orderId")Long orderId, @Param("state")int i);
+
 }
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 8064576..113de64 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java
@@ -35,4 +35,6 @@
     void goodsComment(ApiAddCommentDtos addCommentDtos);
 
     FebsResponse refundOrder(Long id);
+
+    FebsResponse applyRefundOrder(ApplyRefundOrderDto applyRefundOrderDto);
 }
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 7d353a1..b213d54 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
@@ -733,4 +733,36 @@
         return new FebsResponse().success().message("退款成功");
     }
 
+    @Override
+    public FebsResponse applyRefundOrder(ApplyRefundOrderDto applyRefundOrderDto) {
+        Long orderId = applyRefundOrderDto.getOrderId();
+        Long itemId = applyRefundOrderDto.getItemId();
+        MallMember member = LoginUserUtil.getLoginUser();
+        MallOrderInfo mallOrderInfo = this.baseMapper.selectById(orderId);
+        if(ObjectUtil.isEmpty(mallOrderInfo)){
+            return new FebsResponse().fail().message("订单不存在");
+        }
+
+        List<MallRefundEntity> mallRefundEntitieSuccess = mallRefundMapper.selectByItemIdAndOrderIdAndState(itemId,orderId,1);
+        List<MallRefundEntity> mallRefundEntitiesIng = mallRefundMapper.selectByItemIdAndOrderIdAndState(itemId,orderId,3);
+        if(CollUtil.isNotEmpty(mallRefundEntitieSuccess) || CollUtil.isNotEmpty(mallRefundEntitiesIng)){
+            return new FebsResponse().fail().message("该订单无法申请退款");
+        }
+
+        MallOrderItem mallOrderItem = mallOrderItemMapper.selectById(itemId);
+        MallRefundEntity mallRefundEntity = new MallRefundEntity();
+        mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_RITEM"+itemId);
+        mallRefundEntity.setRefundReason(applyRefundOrderDto.getRefundReason());
+        mallRefundEntity.setRefundRemark(applyRefundOrderDto.getRefundRemark());
+        mallRefundEntity.setRefundPic(applyRefundOrderDto.getRefundPic());
+        mallRefundEntity.setMemberId(member.getId());
+        mallRefundEntity.setState(3);
+        mallRefundEntity.setType(1);
+        mallRefundEntity.setOrderId(orderId);
+        mallRefundEntity.setItemId(itemId);
+        mallRefundEntity.setAmount(mallOrderItem.getAmount());
+        mallRefundMapper.insert(mallRefundEntity);
+        return new FebsResponse().success().message("已申请");
+    }
+
 }
diff --git a/src/main/resources/mapper/modules/MallRefundMapper.xml b/src/main/resources/mapper/modules/MallRefundMapper.xml
new file mode 100644
index 0000000..fe05001
--- /dev/null
+++ b/src/main/resources/mapper/modules/MallRefundMapper.xml
@@ -0,0 +1,24 @@
+<?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.MallRefundMapper">
+
+    <select id="selectByItemIdAndOrderIdAndState" resultType="cc.mrbird.febs.mall.entity.MallRefundEntity">
+
+        select a.* from mall_refund a
+            where item_id=#{itemId} and order_id=#{orderId} and state=#{state}
+        <where>
+            <if test="itemId != null and itemId != ''">
+                and a.item_id = #{itemId}
+            </if>
+            <if test="orderId != null and orderId != ''">
+                and a.order_id = #{orderId}
+            </if>
+            <if test="state != null and state != ''">
+                and a.state = #{state}
+            </if>
+        </where>
+
+    </select>
+
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.1