From b3a60ae2f32f9ef251ecb5f3630472dfd648a11a Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 29 Nov 2024 15:00:49 +0800
Subject: [PATCH] refactor(mall): 优化退款金额计算逻辑

---
 src/main/java/cc/mrbird/febs/mall/mapper/MallOrderItemMapper.java                |    2 ++
 src/main/resources/mapper/modules/MallOrderItemMapper.xml                        |    5 +++++
 src/main/resources/templates/febs/views/modules/order/orderRefundList.html       |   18 +++++++++++++++++-
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java |   16 +++++++++++++---
 4 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderItemMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderItemMapper.java
index babed24..5464c00 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderItemMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderItemMapper.java
@@ -17,4 +17,6 @@
     void updateStateByOrderId(@Param("state")Integer i,  @Param("orderId")Long id);
 
     List<MallOrderItem> selectListByOrderId(@Param("orderId")Long id);
+
+    List<MallOrderItem> selectListByStateAndOrderId(@Param("state")Integer i, @Param("orderId")Long orderId);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
index a979b39..be0ebe8 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
@@ -2,7 +2,6 @@
 
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.enumerates.*;
-import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.properties.XcxProperties;
 import cc.mrbird.febs.common.utils.LoginUserUtil;
 import cc.mrbird.febs.common.utils.SpringContextHolder;
@@ -37,7 +36,10 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 @Slf4j
 @Service
@@ -420,7 +422,15 @@
 
             //退款退款金额
             BigDecimal refundAmount = mallRefundEntity.getAmount();
-            refundAmount = refundAmount.add(mallOrderInfo.getCarriage());
+            List<MallOrderItem> mallOrderItemListOnly = mallOrderItemMapper.selectListByStateAndOrderId(1,orderId);
+            List<MallOrderItem> mallOrderItemListIng = mallOrderItemMapper.selectListByStateAndOrderId(2,orderId);
+            if(CollUtil.isEmpty(mallOrderItemListOnly) && CollUtil.isNotEmpty(mallOrderItemListIng) ){
+                if(1 == mallOrderItemListIng.size() ){
+                    refundAmount = refundAmount.add(mallOrderInfo.getCarriage());
+                    log.info("退款订单编号为{},订单金额:{},待退款订单:{},退款金额:{}", refundNo,orderAmount,mallOrderItemListOnly.size(),refundAmount);
+                }
+            }
+//            refundAmount = refundAmount.add(mallOrderInfo.getCarriage());
             BigDecimal bb = new BigDecimal(100);
             int refundMoney = refundAmount.multiply(bb).intValue();
 
diff --git a/src/main/resources/mapper/modules/MallOrderItemMapper.xml b/src/main/resources/mapper/modules/MallOrderItemMapper.xml
index 8bfdc43..0722562 100644
--- a/src/main/resources/mapper/modules/MallOrderItemMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderItemMapper.xml
@@ -30,5 +30,10 @@
         where a.order_id=#{orderId}
     </select>
 
+    <select id="selectListByStateAndOrderId" resultType="cc.mrbird.febs.mall.entity.MallOrderItem">
+        select a.* from mall_order_item a
+        where a.state = #{state} and a.order_id=#{orderId}
+    </select>
+
 
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/order/orderRefundList.html b/src/main/resources/templates/febs/views/modules/order/orderRefundList.html
index 390b3d3..d4e0b29 100644
--- a/src/main/resources/templates/febs/views/modules/order/orderRefundList.html
+++ b/src/main/resources/templates/febs/views/modules/order/orderRefundList.html
@@ -83,12 +83,28 @@
     暂无图片
     {{#  } else { }}
     {{# for(var i=0;i < d.refundPicList.length;i++){ }}
-        <img id="refundPic" width='100' style="cursor: pointer;" height='100' src="{{ d.refundPicList[i]}}" />
+        <a href="javascript:;" onclick="showBigImage('{{ d.refundPicList[i]}}')">
+            <img id="refundPic" width='100' style="cursor: pointer;" height='100' src="{{ d.refundPicList[i]}}"/>
+        </a>
     {{# } }}
     {{#  } }}
 </script>
 <!-- 表格操作栏 end -->
 <script data-th-inline="none" type="text/javascript">
+    //图片放大
+    function showBigImage(url) {
+        layer.open({
+            type: 1,
+            title: "图片",
+            skin: 'layui-layer-rim', //加上边框
+            area: ['80%', '100%'], //宽高
+            shadeClose: true, //开启遮罩关闭
+            end: function (index, layero) {
+                return false;
+            },
+            content: '<img src="' + url + '" alt="Big Image" style="max-width: 100%; height: auto;">'
+        });
+    }
     // 引入组件并初始化
     layui.use([ 'jquery', 'form', 'table', 'febs', 'formSelects'], function () {
         var $ = layui.jquery,

--
Gitblit v1.9.1