Cui Zhi Feng
2024-08-26 98153e20935ca47cb0e243410b521756a12a35db
售后列表查询 结算状态
已修改5个文件
61 ■■■■■ 文件已修改
src/main/java/com/mzl/flower/constant/Constants.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/schedule/ScheduleService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/payment/OrderItemSalesMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/script/db.sql 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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) {
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);
                }
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();
src/main/resources/mapper/payment/OrderItemSalesMapper.xml
@@ -106,17 +106,17 @@
        </if>
        <if test="condition.orderStartDate != null">
            AND oi.create_time &gt;= #{condition.createStartDate}
            AND oi.create_time &gt;= #{condition.orderStartDate}
        </if>
        <if test="condition.orderEndDate != null">
            AND oi.create_time &lt;= #{condition.createEndDate}
            AND oi.create_time &lt;= #{condition.orderEndDate}
        </if>
        <if test="condition.salesStartDate != null">
            AND si.create_time &gt;= #{condition.createStartDate}
            AND si.create_time &gt;= #{condition.salesStartDate}
        </if>
        <if test="condition.salesEndDate != null">
            AND si.create_time &lt;= #{condition.createEndDate}
            AND si.create_time &lt;= #{condition.salesEndDate}
        </if>
        <if test="condition.status != null and condition.status != ''">
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');