From de12889db0cc054dd32005bce74b4a0f552fcc59 Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期三, 11 十月 2023 17:34:03 +0800
Subject: [PATCH] #获取可退款信息

---
 server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java                 |   12 +++++-
 server/services/src/main/java/com/doumee/dao/business/web/request/GoodsorderCanBanlanceDTO.java |   31 +++++++++++++++
 server/services/src/main/java/com/doumee/service/business/GoodsorderService.java                |    7 +++
 server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java       |   31 +++++++++++++--
 4 files changed, 75 insertions(+), 6 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..7061f5e 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());
         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/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..af806e8 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;
@@ -152,6 +153,12 @@
      */
     void backGoodsorder(String orderId, BigDecimal money);
 
+    /**
+     * 鑾峰彇鍙��娆句俊鎭�
+     * @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..fbdabf6 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
@@ -490,6 +488,31 @@
     }
 
     @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