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