From 537377e621a0f33767c38d60fa2f27a1fad9a005 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 11 十月 2023 18:14:25 +0800
Subject: [PATCH] Merge branch 'dev' of http://139.186.142.91:10010/r/productDev/parkBike into dev

---
 server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java                 |   14 +++++-
 server/services/src/main/java/com/doumee/dao/business/web/request/GoodsorderCanBanlanceDTO.java |   31 +++++++++++++++
 server/services/src/main/java/com/doumee/dao/business/web/request/GoodsorderBackDTO.java        |    3 +
 server/services/src/main/java/com/doumee/service/business/GoodsorderService.java                |    9 ++++
 server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java       |   35 ++++++++++++++---
 5 files changed, 82 insertions(+), 10 deletions(-)

diff --git a/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java b/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java
index 238304a..77aa567 100644
--- a/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java
@@ -12,6 +12,7 @@
 import com.doumee.dao.business.vo.GoodsorderExportVO;
 import com.doumee.dao.business.vo.GoodsorderTotalDataVO;
 import com.doumee.dao.business.web.request.GoodsorderBackDTO;
+import com.doumee.dao.business.web.request.GoodsorderCanBanlanceDTO;
 import com.doumee.dao.business.web.response.GoodsorderDetailDTO;
 import com.doumee.service.business.GoodsorderService;
 import com.doumee.service.business.GoodsorderService;
@@ -122,7 +123,7 @@
      * @param id
      * @return
      */
-    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @ApiOperation("寮哄埗缁撶畻璁㈠崟")
     @PostMapping("/closerGoodsorder")
     @RequiresPermissions("business:goodsorder:query")
     public ApiResponse closerGoodsorder(@RequestParam String id){
@@ -131,11 +132,18 @@
     }
 
 
-    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @ApiOperation("閫�娆�")
     @PostMapping("/backGoodsorder")
     @RequiresPermissions("business:goodsorder:query")
     public ApiResponse backGoodsorder(@RequestBody GoodsorderBackDTO goodsorderBackDTO){
-        goodsorderService.backGoodsorder(goodsorderBackDTO.getOrderId(),goodsorderBackDTO.getMoney());
+        goodsorderService.backGoodsorder(goodsorderBackDTO.getOrderId(),goodsorderBackDTO.getMoney(),goodsorderBackDTO.getReason());
         return ApiResponse.success(null);
     }
+
+    @ApiOperation("鑾峰彇鍙��娆句俊鎭�")
+    @PostMapping("/getGoodsorderCanBanlanceDTO")
+    @RequiresPermissions("business:goodsorder:query")
+    public ApiResponse<GoodsorderCanBanlanceDTO> getGoodsorderCanBanlanceDTO(@RequestParam String orderId){
+        return ApiResponse.success(goodsorderService.getGoodsorderCanBanlanceDTO(orderId));
+    }
 }
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/request/GoodsorderBackDTO.java b/server/services/src/main/java/com/doumee/dao/business/web/request/GoodsorderBackDTO.java
index 4f2da98..18a6350 100644
--- a/server/services/src/main/java/com/doumee/dao/business/web/request/GoodsorderBackDTO.java
+++ b/server/services/src/main/java/com/doumee/dao/business/web/request/GoodsorderBackDTO.java
@@ -18,4 +18,7 @@
 
     @ApiModelProperty(value = "閫�娆鹃噾棰�")
     private BigDecimal money;
+
+    @ApiModelProperty(value = "閫�娆鹃噾棰�")
+    private String reason;
 }
diff --git a/server/services/src/main/java/com/doumee/dao/business/web/request/GoodsorderCanBanlanceDTO.java b/server/services/src/main/java/com/doumee/dao/business/web/request/GoodsorderCanBanlanceDTO.java
new file mode 100644
index 0000000..0a2db3c
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/web/request/GoodsorderCanBanlanceDTO.java
@@ -0,0 +1,31 @@
+package com.doumee.dao.business.web.request;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+
+import java.math.BigDecimal;
+
+/**
+ * @author T14
+ */
+@Data
+@ApiModel("璁㈠崟閫�娆句俊鎭�")
+public class GoodsorderCanBanlanceDTO {
+
+
+    @ApiModelProperty(value = "鍏呭�兼娂閲戦噾棰�")
+    private BigDecimal goodsorderMoney;
+
+    @ApiModelProperty(value = "缁撶畻")
+    private BigDecimal closeMoney;
+
+    @ApiModelProperty(value = "宸查��閲戦")
+    private BigDecimal hasRefundMoney;
+
+    @ApiModelProperty(value = "鍙��閲戦")
+    private BigDecimal canBanlanceMoney;
+
+}
diff --git a/server/services/src/main/java/com/doumee/service/business/GoodsorderService.java b/server/services/src/main/java/com/doumee/service/business/GoodsorderService.java
index 213dd1d..3906278 100644
--- a/server/services/src/main/java/com/doumee/service/business/GoodsorderService.java
+++ b/server/services/src/main/java/com/doumee/service/business/GoodsorderService.java
@@ -8,6 +8,7 @@
 import com.doumee.dao.business.model.Goodsorder;
 import com.doumee.dao.business.vo.GoodsorderExportVO;
 import com.doumee.dao.business.vo.GoodsorderTotalDataVO;
+import com.doumee.dao.business.web.request.GoodsorderCanBanlanceDTO;
 import com.doumee.dao.business.web.response.HomeResponse;
 import com.doumee.dao.business.web.response.GoodsorderDetailDTO;
 import com.doumee.dao.business.web.response.RidesDetailResponse;
@@ -150,7 +151,13 @@
      * 閫�娆�
      * @param orderId
      */
-    void backGoodsorder(String orderId, BigDecimal money);
+    void backGoodsorder(String orderId, BigDecimal money ,String reason);
+
+    /**
+     * 鑾峰彇鍙��娆句俊鎭�
+     * @param orderId
+     */
+    GoodsorderCanBanlanceDTO getGoodsorderCanBanlanceDTO(String orderId);
 
 
     /**
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
index 0c8f1e1..74bd926 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -26,6 +26,7 @@
 import com.doumee.dao.business.model.MemberRides;
 import com.doumee.dao.business.vo.GoodsorderExportVO;
 import com.doumee.dao.business.vo.GoodsorderTotalDataVO;
+import com.doumee.dao.business.web.request.GoodsorderCanBanlanceDTO;
 import com.doumee.dao.business.web.request.MemberRidesQuery;
 import com.doumee.dao.business.web.request.RefundDTO;
 import com.doumee.dao.business.web.response.*;
@@ -56,10 +57,7 @@
 import java.net.UnknownHostException;
 
 import java.sql.Ref;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -462,7 +460,7 @@
     }
 
     @Override
-    public void backGoodsorder(String orderId, BigDecimal money) {
+    public void backGoodsorder(String orderId, BigDecimal money,String reason) {
 
         LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         Goodsorder goodsorder = goodsorderMapper.selectById(orderId);
@@ -483,13 +481,38 @@
             refundDTO.setRefundAmount(money);
             refundDTO.setTotalAmount(goodsorder.getMoney());
             refundDTO.setMemberId(goodsorder.getMemberId());
-            refundDTO.setReason("骞冲彴閫�娆�");
+            refundDTO.setReason(reason);
             refundDTO.setType(Constants.REFUND_TYPE.BACK.getKey());
             Refund refund = wxMiniUtilService.wxRefund(refundDTO);
         }
     }
 
     @Override
+    public GoodsorderCanBanlanceDTO getGoodsorderCanBanlanceDTO(String orderId) {
+
+
+        Goodsorder goodsorder = goodsorderMapper.selectById(orderId);
+        QueryWrapper<Refund> wrapper = new QueryWrapper<>();
+        wrapper.lambda()
+                .eq(Refund::getObjId,orderId)
+                .orderByDesc(Refund::getCreateDate);
+        List<Refund> refunds = refundMapper.selectList(wrapper);
+        GoodsorderCanBanlanceDTO goodsorderCanBanlanceDTO = new GoodsorderCanBanlanceDTO();
+        goodsorderCanBanlanceDTO.setGoodsorderMoney(goodsorder.getMoney());
+        goodsorderCanBanlanceDTO.setCloseMoney(goodsorder.getCloseMoney());
+        if (!CollectionUtils.isEmpty(refunds)){
+            BigDecimal reduce = refunds.stream().map(s -> s.getMoney()).reduce(new BigDecimal("0"), (a, b) -> b.add(a));
+            Refund refund = refunds.stream().findFirst().orElse(null);
+            goodsorderCanBanlanceDTO.setHasRefundMoney(reduce);
+            goodsorderCanBanlanceDTO.setCanBanlanceMoney(refund.getCanBalance().subtract(refund.getMoney()));
+        }else {
+            goodsorderCanBanlanceDTO.setHasRefundMoney(new BigDecimal("0"));
+            goodsorderCanBanlanceDTO.setCanBanlanceMoney(goodsorder.getMoney());
+        }
+        return goodsorderCanBanlanceDTO;
+    }
+
+    @Override
     public GoodsorderTotalDataVO getTotalData(Goodsorder param){
 
             GoodsorderTotalDataVO model = new GoodsorderTotalDataVO();

--
Gitblit v1.9.3