From 98153e20935ca47cb0e243410b521756a12a35db Mon Sep 17 00:00:00 2001 From: Cui Zhi Feng <7426394+wuxixiaocui@user.noreply.gitee.com> Date: 星期一, 26 八月 2024 09:14:09 +0800 Subject: [PATCH] 售后列表查询 结算状态 --- src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java | 42 ++++++++++++++++++++ src/main/java/com/mzl/flower/schedule/ScheduleService.java | 1 src/main/java/com/mzl/flower/constant/Constants.java | 4 + src/main/resources/script/db.sql | 6 +++ src/main/resources/mapper/payment/OrderItemSalesMapper.xml | 8 ++-- 5 files changed, 55 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/mzl/flower/constant/Constants.java b/src/main/java/com/mzl/flower/constant/Constants.java index 7834f25..04d154f 100644 --- a/src/main/java/com/mzl/flower/constant/Constants.java +++ b/src/main/java/com/mzl/flower/constant/Constants.java @@ -296,7 +296,9 @@ public enum SETTLEMENT_STATUS { PENDING("待结算"), - COMPLETED("已结算"), + PROCESSING("结算中"), + COMPLETED("结算成功"), + FAILED("结算失败"), ; SETTLEMENT_STATUS(String desc) { diff --git a/src/main/java/com/mzl/flower/schedule/ScheduleService.java b/src/main/java/com/mzl/flower/schedule/ScheduleService.java index c45f66b..4ffb145 100644 --- a/src/main/java/com/mzl/flower/schedule/ScheduleService.java +++ b/src/main/java/com/mzl/flower/schedule/ScheduleService.java @@ -164,6 +164,7 @@ for(Transfer t : ls){ try { paymentV3Service.checkTransferStatus(t); + settlementService.updateSettlementStatus(t.getId()); } catch (Exception e) { log.error(e.getMessage(), e); } 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(); diff --git a/src/main/resources/mapper/payment/OrderItemSalesMapper.xml b/src/main/resources/mapper/payment/OrderItemSalesMapper.xml index 6b0d827..1cabdc5 100644 --- a/src/main/resources/mapper/payment/OrderItemSalesMapper.xml +++ b/src/main/resources/mapper/payment/OrderItemSalesMapper.xml @@ -106,17 +106,17 @@ </if> <if test="condition.orderStartDate != null"> - AND oi.create_time >= #{condition.createStartDate} + AND oi.create_time >= #{condition.orderStartDate} </if> <if test="condition.orderEndDate != null"> - AND oi.create_time <= #{condition.createEndDate} + AND oi.create_time <= #{condition.orderEndDate} </if> <if test="condition.salesStartDate != null"> - AND si.create_time >= #{condition.createStartDate} + AND si.create_time >= #{condition.salesStartDate} </if> <if test="condition.salesEndDate != null"> - AND si.create_time <= #{condition.createEndDate} + AND si.create_time <= #{condition.salesEndDate} </if> <if test="condition.status != null and condition.status != ''"> diff --git a/src/main/resources/script/db.sql b/src/main/resources/script/db.sql index 7023286..4f84f97 100644 --- a/src/main/resources/script/db.sql +++ b/src/main/resources/script/db.sql @@ -104,3 +104,9 @@ INSERT INTO t_code_value(ID,TYPE_CODE,VALUE,LABEL,DESCRIPTION,SEQ,STATUS) VALUES ('CHECK_AUDIT_STATUS_REJECTED','CHECK_AUDIT_STATUS','REJECTED','已拒绝','已拒绝',2,'A'); +==================================================20240826 +delete from t_code_value where type_code = 'SETTLEMENT_STATUS'; +INSERT INTO t_code_value(ID,TYPE_CODE,VALUE,LABEL,DESCRIPTION,SEQ,STATUS) VALUES ('SETTLEMENT_STATUS_PENDING','SETTLEMENT_STATUS','PENDING','待结算','待结算',1,'A'); +INSERT INTO t_code_value(ID,TYPE_CODE,VALUE,LABEL,DESCRIPTION,SEQ,STATUS) VALUES ('SETTLEMENT_STATUS_PROCESSING','SETTLEMENT_STATUS','PROCESSING','结算中','结算中',2,'A'); +INSERT INTO t_code_value(ID,TYPE_CODE,VALUE,LABEL,DESCRIPTION,SEQ,STATUS) VALUES ('SETTLEMENT_STATUS_FAILED','SETTLEMENT_STATUS','FAILED','结算失败','结算失败',3,'A'); +INSERT INTO t_code_value(ID,TYPE_CODE,VALUE,LABEL,DESCRIPTION,SEQ,STATUS) VALUES ('SETTLEMENT_STATUS_COMPLETED','SETTLEMENT_STATUS','COMPLETED','结算成功','结算成功',4,'A'); \ No newline at end of file -- Gitblit v1.9.3