From a3fbc3990b6bfb39aacc7edad459a762628526ba Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期五, 30 八月 2024 18:42:08 +0800
Subject: [PATCH] fix:会员保存空指针
---
src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java | 42 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 41 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java b/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java
index 5f9e44a..49100ed 100644
--- a/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java
+++ b/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java
@@ -74,6 +74,12 @@
@Autowired
private OrderItemSettlementMapper orderItemSettlementMapper;
+ @Autowired
+ private TransferMapper transferMapper;
+
+ @Autowired
+ private TransferDetailMapper transferDetailMapper;
+
public Page<OrderSettlementListDTO> selectSettlementList(Page page, OrderSettlementQueryDTO dto){
dto.setStartDate(parseLocalDateTime(dto.getStartDateStr(), true));
dto.setEndDate(parseLocalDateTime(dto.getEndDateStr(), false));
@@ -114,6 +120,13 @@
OrderSettlement settlement = settlementMapper.selectById(id);
if(settlement == null){
throw new ValidationException("结算单不存在");
+ }
+ String status = settlement.getStatus();
+ if(Constants.SETTLEMENT_STATUS.PROCESSING.name().equals(status)){
+ throw new ValidationException("结算中,不用重复结算");
+ }
+ if(Constants.SETTLEMENT_STATUS.COMPLETED.name().equals(status)){
+ throw new ValidationException("结算成功,不用重复结算");
}
String type = settlement.getType();
@@ -174,12 +187,39 @@
}
settlement.setTransferTime(LocalDateTime.now());
- settlement.setStatus(Constants.SETTLEMENT_STATUS.COMPLETED.name());
+ settlement.setStatus(Constants.SETTLEMENT_STATUS.PROCESSING.name());
settlement.update(SecurityUtils.getUserId());
settlementMapper.updateById(settlement);
}
+ public void updateSettlementStatus(String transferId){
+ Transfer t = transferMapper.selectById(transferId);
+ if("FINISHED".equals(t.getStatus())){
+ OrderSettlement settlement = settlementMapper.selectOne(new QueryWrapper<OrderSettlement>()
+ .eq("transfer_id", transferId));
+ if(settlement == null){
+ return;
+ }
+ String transferDetailId = settlement.getTransferDetailId();
+ TransferDetail td = transferDetailMapper.selectById(transferDetailId);
+ if(td == null){
+ log.warn("未找到对应明细");
+ return;
+ }
+ String dStatus = td.getStatus();
+ if("SUCCESS".equals(dStatus)){
+ settlement.setStatus(Constants.SETTLEMENT_STATUS.COMPLETED.name());
+ settlement.update("sys");
+ settlementMapper.updateById(settlement);
+ } else if ("FAIL".equals(dStatus)){
+ settlement.setStatus(Constants.SETTLEMENT_STATUS.FAILED.name());
+ settlement.update("sys");
+ settlementMapper.updateById(settlement);
+ }
+ }
+ }
+
public void doSettlement(){//弃用
//结算完成收货的订单
List<Order> ls = orderMapper.getOrderForSettlement();
--
Gitblit v1.9.3