From 88e80207eb7e2766052f5ea4b154debd2ae5a364 Mon Sep 17 00:00:00 2001 From: aiqingguo <aiqingguo@clxkj.cn> Date: Mon, 23 Sep 2024 16:51:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=BF=E8=BF=90=E4=BC=98=E5=8C=96=E9=9C=80?= =?UTF-8?q?=E6=B1=829.30?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../settle/SettlementDriverDetailEnum.java | 32 +++ .../BrokerOrderChildDriverPayMqParam.java | 16 ++ .../SettlementDriverConfirmMqParam.java | 16 ++ .../SettlementDriverPayAcceptSyncMqParam.java | 22 ++ .../settle/SettlementDriverSettleMqParam.java | 16 ++ .../SettlementOrderChildRiskAddMqParam.java | 16 ++ .../performance/vo/pc/broker/TransportVO.java | 2 + .../settle/CarrierPageSettlementDriverVO.java | 6 + .../config/RabbitBrokerConfig.java | 13 + .../config/RabbitSettlementConfig.java | 26 ++ .../constant/RabbitKeyBrokerConstants.java | 6 + .../RabbitKeySettlementConstants.java | 12 + .../clx/performance/dao/OrderChildDao.java | 3 + .../dao/impl/OrderChildDaoImpl.java | 9 + .../impl/settle/SettlementDriverDaoImpl.java | 21 +- .../settle/SettlementDriverDetailDaoImpl.java | 25 ++ .../dao/settle/SettlementDriverDao.java | 4 + .../dao/settle/SettlementDriverDetailDao.java | 5 + .../extranal/broker/BrokerService.java | 1 + .../broker/impl/BrokerServiceImpl.java | 11 + .../clx/performance/feign/BrokerFeign.java | 7 + .../job/settlement/SettlementJob.java | 81 +++++- .../BrokerOrderChildDriverPayListener.java | 45 ++++ .../SettlementDriverConfirmListener.java | 43 +++ ...SettlementDriverPayAcceptSyncListener.java | 43 +++ .../model/settle/SettlementDriverDetail.java | 1 + .../OrderChildBrokerMqHandlerService.java | 4 + .../broker/OrderChildBrokerMqService.java | 2 + .../broker/OrderChildBrokerService.java | 3 + .../OrderChildBrokerMqHandlerServiceImpl.java | 15 ++ .../broker/OrderChildBrokerMqServiceImpl.java | 15 ++ .../broker/OrderChildBrokerServiceImpl.java | 8 + .../impl/child/OrderChildPostServiceImpl.java | 3 + .../SettlementMqHandlerServiceImpl.java | 253 +++++++++++++++--- .../impl/settle/SettlementMqServiceImpl.java | 30 ++- .../SettlementOrderChildRiskServiceImpl.java | 13 +- .../settle/SettlementPostServiceImpl.java | 6 + .../settle/SettlementMqHandlerService.java | 11 +- .../service/settle/SettlementMqService.java | 4 + .../service/settle/SettlementPostService.java | 1 + 40 files changed, 784 insertions(+), 66 deletions(-) create mode 100644 performance-api/src/main/java/com/clx/performance/enums/settle/SettlementDriverDetailEnum.java create mode 100644 performance-api/src/main/java/com/clx/performance/vo/mq/broker/BrokerOrderChildDriverPayMqParam.java create mode 100644 performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementDriverConfirmMqParam.java create mode 100644 performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementDriverPayAcceptSyncMqParam.java create mode 100644 performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementDriverSettleMqParam.java create mode 100644 performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementOrderChildRiskAddMqParam.java create mode 100644 performance-web/src/main/java/com/clx/performance/listener/broker/BrokerOrderChildDriverPayListener.java create mode 100644 performance-web/src/main/java/com/clx/performance/listener/settle/SettlementDriverConfirmListener.java create mode 100644 performance-web/src/main/java/com/clx/performance/listener/settle/SettlementDriverPayAcceptSyncListener.java diff --git a/performance-api/src/main/java/com/clx/performance/enums/settle/SettlementDriverDetailEnum.java b/performance-api/src/main/java/com/clx/performance/enums/settle/SettlementDriverDetailEnum.java new file mode 100644 index 000000000..8320ecc36 --- /dev/null +++ b/performance-api/src/main/java/com/clx/performance/enums/settle/SettlementDriverDetailEnum.java @@ -0,0 +1,32 @@ +package com.clx.performance.enums.settle; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; +import java.util.Objects; +import java.util.Optional; + + +public enum SettlementDriverDetailEnum { + ; + + @Getter + @AllArgsConstructor + public enum PayAcceptStatus { + INIT(0, "鏈彈鐞嗘敮浠�"), + ACCEPTING(1, "鏀粯鍙楃悊涓�"), + ACCEPTED(2,"宸插彈鐞嗘敮浠�"), + ; + private final Integer code; + private final String msg; + + public static Optional<PayAcceptStatus> getByCode(int code) { + return Arrays.stream(values()).filter(e -> Objects.equals(e.getCode(), code)).findFirst(); + } + + public static String getMsgByCode(int code) { + return getByCode(code).map(PayAcceptStatus::getMsg).orElse(null); + } + } +} diff --git a/performance-api/src/main/java/com/clx/performance/vo/mq/broker/BrokerOrderChildDriverPayMqParam.java b/performance-api/src/main/java/com/clx/performance/vo/mq/broker/BrokerOrderChildDriverPayMqParam.java new file mode 100644 index 000000000..5b2b33ac6 --- /dev/null +++ b/performance-api/src/main/java/com/clx/performance/vo/mq/broker/BrokerOrderChildDriverPayMqParam.java @@ -0,0 +1,16 @@ +package com.clx.performance.vo.mq.broker; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +@Setter +@Getter +@ToString +@NoArgsConstructor +public class BrokerOrderChildDriverPayMqParam { + + private String childNo; //杩愬崟缂栧彿 + +} diff --git a/performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementDriverConfirmMqParam.java b/performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementDriverConfirmMqParam.java new file mode 100644 index 000000000..d6652be7f --- /dev/null +++ b/performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementDriverConfirmMqParam.java @@ -0,0 +1,16 @@ +package com.clx.performance.vo.mq.settle; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +@Setter +@Getter +@ToString +@NoArgsConstructor +public class SettlementDriverConfirmMqParam { + + private String childNo; + +} diff --git a/performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementDriverPayAcceptSyncMqParam.java b/performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementDriverPayAcceptSyncMqParam.java new file mode 100644 index 000000000..6de5869c0 --- /dev/null +++ b/performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementDriverPayAcceptSyncMqParam.java @@ -0,0 +1,22 @@ +package com.clx.performance.vo.mq.settle; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +/** + * @Author: aiqingguo + * @Description: 鏀粯鍙楃悊 + * @Date: 2023-10-19 15:45:25 + * @Version: 1.0 + */ +@Setter +@Getter +@ToString +@NoArgsConstructor +public class SettlementDriverPayAcceptSyncMqParam { + + private String childNo; //杩愬崟缂栧彿 + +} diff --git a/performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementDriverSettleMqParam.java b/performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementDriverSettleMqParam.java new file mode 100644 index 000000000..56640fa05 --- /dev/null +++ b/performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementDriverSettleMqParam.java @@ -0,0 +1,16 @@ +package com.clx.performance.vo.mq.settle; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +@Setter +@Getter +@ToString +@NoArgsConstructor +public class SettlementDriverSettleMqParam { + + private String childNo; //杩愬崟缂栧彿 + +} diff --git a/performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementOrderChildRiskAddMqParam.java b/performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementOrderChildRiskAddMqParam.java new file mode 100644 index 000000000..d379ffe17 --- /dev/null +++ b/performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementOrderChildRiskAddMqParam.java @@ -0,0 +1,16 @@ +package com.clx.performance.vo.mq.settle; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +@Setter +@Getter +@ToString +@NoArgsConstructor +public class SettlementOrderChildRiskAddMqParam { + + private Integer id; //id + +} diff --git a/performance-api/src/main/java/com/clx/performance/vo/pc/broker/TransportVO.java b/performance-api/src/main/java/com/clx/performance/vo/pc/broker/TransportVO.java index 9af2733f1..e60201924 100644 --- a/performance-api/src/main/java/com/clx/performance/vo/pc/broker/TransportVO.java +++ b/performance-api/src/main/java/com/clx/performance/vo/pc/broker/TransportVO.java @@ -37,5 +37,7 @@ public class TransportVO { @ApiModelProperty(value = "寮€绁ㄧ姸鎬� 0 鏈紑绁� 1 宸插紑绁� ", example = "1234124", dataType = "String") private Integer invoiceStatus; + @ApiModelProperty(value = "绗笁鏂硅繍鍗曠姸鎬� 20-宸插嵏璐э紝30-宸插垱寤烘敮浠樺崟", example = "1234124", dataType = "String") + private Integer thirdPartyChildStatus; } diff --git a/performance-api/src/main/java/com/clx/performance/vo/pc/carrier/settle/CarrierPageSettlementDriverVO.java b/performance-api/src/main/java/com/clx/performance/vo/pc/carrier/settle/CarrierPageSettlementDriverVO.java index 061a50c93..93f4f3380 100644 --- a/performance-api/src/main/java/com/clx/performance/vo/pc/carrier/settle/CarrierPageSettlementDriverVO.java +++ b/performance-api/src/main/java/com/clx/performance/vo/pc/carrier/settle/CarrierPageSettlementDriverVO.java @@ -1,5 +1,6 @@ package com.clx.performance.vo.pc.carrier.settle; +import com.clx.performance.enums.settle.SettlementDriverEnum; import com.msl.common.convertor.type.MoneyOutConvert; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -81,6 +82,11 @@ public class CarrierPageSettlementDriverVO { private BigDecimal settlementFreight; @ApiModelProperty(value = "鐘舵€�") private Integer status; + private String statusMsg; + public String getStatusMsg() { + return SettlementDriverEnum.Status.getMsgByCode(status); + } + @ApiModelProperty(value = "鍒涘缓鏃堕棿") private String createTime; @ApiModelProperty(value = "缁撶畻骞冲彴 1锛氶┈涓婃潵 2锛氱綉杩愬钩鍙�") diff --git a/performance-web/src/main/java/com/clx/performance/config/RabbitBrokerConfig.java b/performance-web/src/main/java/com/clx/performance/config/RabbitBrokerConfig.java index 619f8761d..b472def35 100644 --- a/performance-web/src/main/java/com/clx/performance/config/RabbitBrokerConfig.java +++ b/performance-web/src/main/java/com/clx/performance/config/RabbitBrokerConfig.java @@ -77,4 +77,17 @@ public class RabbitBrokerConfig { .with(RabbitKeyBrokerConstants.ORDER_CHILD_UPDATE_ROUTING_KEY); } + /** + * 杩愬崟鍙告満纭鏀惰揣 + */ + @Bean + public Queue brokerOrderChildDriverConfirmQueue() { + return new Queue(RabbitKeyBrokerConstants.ORDER_CHILD_DRIVER_PAY_QUEUE); + } + @Bean + public Binding brokerOrderChildDriverConfirmQueueBinding() { + return BindingBuilder.bind(brokerOrderChildDriverConfirmQueue()).to(brokerDefaultExchange()) + .with(RabbitKeyBrokerConstants.ORDER_CHILD_DRIVER_PAY_ROUTING_KEY); + } + } diff --git a/performance-web/src/main/java/com/clx/performance/config/RabbitSettlementConfig.java b/performance-web/src/main/java/com/clx/performance/config/RabbitSettlementConfig.java index 4dc43fddc..a0179a635 100644 --- a/performance-web/src/main/java/com/clx/performance/config/RabbitSettlementConfig.java +++ b/performance-web/src/main/java/com/clx/performance/config/RabbitSettlementConfig.java @@ -86,6 +86,19 @@ public class RabbitSettlementConfig { .with(RabbitKeySettlementConstants.SETTLEMENT_INVOICE_TYPE_SYNC_ROUTING_KEY); } + /** + * 寮€绁ㄦ柟寮忓悓姝� + */ + @Bean + public Queue settlementDriverPayAcceptSyncQueue() { + return new Queue(RabbitKeySettlementConstants.SETTLEMENT_DRIVER_PAY_ACCEPT_SYNC_QUEUE); + } + @Bean + public Binding settlementDriverPayAcceptSyncQueueBinding() { + return BindingBuilder.bind(settlementDriverPayAcceptSyncQueue()).to(settlementDefaultExchange()) + .with(RabbitKeySettlementConstants.SETTLEMENT_DRIVER_PAY_ACCEPT_SYNC_ROUTING_KEY); + } + /** * 缁撶畻 */ @@ -175,4 +188,17 @@ public class RabbitSettlementConfig { .with(RabbitKeySettlementConstants.SETTLEMENT_INVOICE_STATUS_UPDATE_ROUTING_KEY); } + /** + * 鍙告満纭鏀惰揣 + */ + @Bean + public Queue settlementDriverConfirmQueue() { + return new Queue(RabbitKeySettlementConstants.SETTLEMENT_DRIVER_CONFIRM_QUEUE); + } + @Bean + public Binding settlementDriverConfirmQueueBinding() { + return BindingBuilder.bind(settlementDriverConfirmQueue()).to(settlementDefaultExchange()) + .with(RabbitKeySettlementConstants.SETTLEMENT_DRIVER_CONFIRM_ROUTING_KEY); + } + } diff --git a/performance-web/src/main/java/com/clx/performance/constant/RabbitKeyBrokerConstants.java b/performance-web/src/main/java/com/clx/performance/constant/RabbitKeyBrokerConstants.java index 1c5a84190..fe2dddad5 100644 --- a/performance-web/src/main/java/com/clx/performance/constant/RabbitKeyBrokerConstants.java +++ b/performance-web/src/main/java/com/clx/performance/constant/RabbitKeyBrokerConstants.java @@ -45,4 +45,10 @@ public class RabbitKeyBrokerConstants { public static final String ORDER_CHILD_UPDATE_QUEUE = PREFIX +"orderChild.update"+QUEUE; public static final String ORDER_CHILD_UPDATE_ROUTING_KEY = PREFIX +"orderChild.update"+QUEUE_ROUTING_KEY; + /** + * 鍙告満鏀粯 + */ + public static final String ORDER_CHILD_DRIVER_PAY_QUEUE = PREFIX +"orderChildDriver.pay"+QUEUE; + public static final String ORDER_CHILD_DRIVER_PAY_ROUTING_KEY = PREFIX +"orderChildDriver.pay"+QUEUE_ROUTING_KEY; + } diff --git a/performance-web/src/main/java/com/clx/performance/constant/RabbitKeySettlementConstants.java b/performance-web/src/main/java/com/clx/performance/constant/RabbitKeySettlementConstants.java index 30600516e..f25a6cf79 100644 --- a/performance-web/src/main/java/com/clx/performance/constant/RabbitKeySettlementConstants.java +++ b/performance-web/src/main/java/com/clx/performance/constant/RabbitKeySettlementConstants.java @@ -51,6 +51,12 @@ public class RabbitKeySettlementConstants { public static final String SETTLEMENT_INVOICE_TYPE_SYNC_QUEUE = PREFIX +"settlementInvoiceType.sync"+QUEUE; public static final String SETTLEMENT_INVOICE_TYPE_SYNC_ROUTING_KEY = PREFIX +"settlementInvoiceType.sync"+QUEUE_ROUTING_KEY; + /** + * 鍚屾鏀粯鍙楃悊 + */ + public static final String SETTLEMENT_DRIVER_PAY_ACCEPT_SYNC_QUEUE = PREFIX +"settlementDriverPayAccept.sync"+QUEUE; + public static final String SETTLEMENT_DRIVER_PAY_ACCEPT_SYNC_ROUTING_KEY = PREFIX +"settlementDriverPayAccept.sync"+QUEUE_ROUTING_KEY; + /** * 缁撶畻 */ @@ -92,4 +98,10 @@ public class RabbitKeySettlementConstants { public static final String SETTLEMENT_INVOICE_STATUS_UPDATE_QUEUE = PREFIX +"settlementInvoice.update"+QUEUE; public static final String SETTLEMENT_INVOICE_STATUS_UPDATE_ROUTING_KEY = PREFIX +"settlementInvoice.update"+QUEUE_ROUTING_KEY; + /** + * 鍙告満纭鏀惰揣 + */ + public static final String SETTLEMENT_DRIVER_CONFIRM_QUEUE = PREFIX +"settlementDriver.confirm"+QUEUE; + public static final String SETTLEMENT_DRIVER_CONFIRM_ROUTING_KEY = PREFIX +"settlementDriver.confirm"+QUEUE_ROUTING_KEY; + } diff --git a/performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java b/performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java index 6a34a46ef..202bbccc6 100644 --- a/performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java +++ b/performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java @@ -211,4 +211,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int List<OrderGoodsNotCancelChildDTO> countValidByOrderGoodsNoList(List<String> orderGoodsList); void batchUpdateCancel(List<OrderChild> canCancelOrderChildList); + + List<OrderChild> findListByChildNoList(List<String> childNoList); + } diff --git a/performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java b/performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java index bced781b6..50adfedac 100644 --- a/performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java +++ b/performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java @@ -703,4 +703,13 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, public void batchUpdateCancel(List<OrderChild> canCancelOrderChildList) { baseMapper.batchUpdateCancel(canCancelOrderChildList); } + + + @Override + public List<OrderChild> findListByChildNoList(List<String> childNoList) { + return list(lQrWrapper() + .in(OrderChild :: getChildNo, childNoList) + ); + } + } diff --git a/performance-web/src/main/java/com/clx/performance/dao/impl/settle/SettlementDriverDaoImpl.java b/performance-web/src/main/java/com/clx/performance/dao/impl/settle/SettlementDriverDaoImpl.java index 800a31a0c..80e1dbba3 100644 --- a/performance-web/src/main/java/com/clx/performance/dao/impl/settle/SettlementDriverDaoImpl.java +++ b/performance-web/src/main/java/com/clx/performance/dao/impl/settle/SettlementDriverDaoImpl.java @@ -6,10 +6,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.clx.performance.dao.settle.SettlementDriverDao; import com.clx.performance.enums.loan.OwnerLoanRecordEnum; +import com.clx.performance.enums.settle.SettlementDriverEnum; +import com.clx.performance.enums.settle.SettlementOwnerEnum; import com.clx.performance.mapper.settle.SettlementDriverMapper; import com.clx.performance.model.settle.SettlementDriver; -import com.clx.performance.model.settle.SettlementOrderChildRisk; -import com.clx.performance.model.settle.SettlementOwner; import com.clx.performance.param.pc.driver.PageCarrierSettlementDriverParam; import com.msl.common.base.Optional; import com.msl.common.dao.impl.BaseDaoImpl; @@ -18,7 +18,6 @@ import org.springframework.stereotype.Repository; import java.util.List; import java.util.Objects; -import java.util.Set; /** * @Author: aiqinguo @@ -38,6 +37,14 @@ public class SettlementDriverDaoImpl extends BaseDaoImpl<SettlementDriverMapper, ); } + @Override + public boolean updateSettleStatus(SettlementDriver item) { + return update(lUdWrapper() + .eq(SettlementDriver::getId, item.getId()) + .set(SettlementDriver::getStatus, item.getStatus()) + ); + } + @Override public Optional<SettlementDriver> findBySettlementNo(String settlementNo) { return Optional.of(lQrWrapper() @@ -54,6 +61,14 @@ public class SettlementDriverDaoImpl extends BaseDaoImpl<SettlementDriverMapper, .map(super::getOne); } + @Override + public List<SettlementDriver> listDriverConfirmSync() { + return list(lUdWrapper() + .eq(SettlementDriver::getInvoiceType, SettlementOwnerEnum.InvoiceType.ONLINE.getCode()) + .eq(SettlementDriver::getStatus, SettlementDriverEnum.Status.DRIVER_UNCONFIRMED.getCode()) + ); + } + @Override public IPage<SettlementDriver> pageCarrierSettlementDriver(PageCarrierSettlementDriverParam param) { LambdaQueryWrapper<SettlementDriver> query = new LambdaQueryWrapper<>(); diff --git a/performance-web/src/main/java/com/clx/performance/dao/impl/settle/SettlementDriverDetailDaoImpl.java b/performance-web/src/main/java/com/clx/performance/dao/impl/settle/SettlementDriverDetailDaoImpl.java index eef18d8f4..5dfaed88e 100644 --- a/performance-web/src/main/java/com/clx/performance/dao/impl/settle/SettlementDriverDetailDaoImpl.java +++ b/performance-web/src/main/java/com/clx/performance/dao/impl/settle/SettlementDriverDetailDaoImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.clx.performance.dao.settle.SettlementDriverDetailDao; import com.clx.performance.enums.loan.OwnerLoanRecordEnum; +import com.clx.performance.enums.settle.SettlementDriverDetailEnum; import com.clx.performance.enums.settle.SettlementDriverEnum; import com.clx.performance.enums.settle.SettlementOwnerEnum; import com.clx.performance.mapper.settle.SettlementDriverDetailMapper; @@ -85,6 +86,13 @@ public class SettlementDriverDetailDaoImpl extends BaseDaoImpl<SettlementDriverD ); } + @Override + public boolean updatePayAcceptStatus(SettlementDriverDetail item) { + return update(lUdWrapper() + .eq(SettlementDriverDetail::getId, item.getId()) + .set(SettlementDriverDetail::getPayAcceptStatus, item.getPayAcceptStatus()) + ); + } @Override @@ -96,6 +104,23 @@ public class SettlementDriverDetailDaoImpl extends BaseDaoImpl<SettlementDriverD .map(super::getOne); } + @Override + public List<SettlementDriverDetail> listDriverPaySync(LocalDateTime time) { + return list(lUdWrapper() + .eq(SettlementDriverDetail::getInvoiceType, SettlementOwnerEnum.InvoiceType.ONLINE.getCode()) + .eq(SettlementDriverDetail::getPayAcceptStatus, SettlementDriverDetailEnum.PayAcceptStatus.INIT.getCode()) + .ge(SettlementDriverDetail::getCreateTime, time) + ); + } + + @Override + public List<SettlementDriverDetail> listDriverPayAcceptSync() { + return list(lUdWrapper() + .eq(SettlementDriverDetail::getInvoiceType, SettlementOwnerEnum.InvoiceType.ONLINE.getCode()) + .eq(SettlementDriverDetail::getPayAcceptStatus, SettlementDriverDetailEnum.PayAcceptStatus.ACCEPTING.getCode()) + ); + } + @Override public IPage<SettlementDriverDetail> pageSettlementDriverDetail(PageCarrierSettlementDriverDetailParam param) { LambdaQueryWrapper<SettlementDriverDetail> query = new LambdaQueryWrapper<>(); diff --git a/performance-web/src/main/java/com/clx/performance/dao/settle/SettlementDriverDao.java b/performance-web/src/main/java/com/clx/performance/dao/settle/SettlementDriverDao.java index 5fafc92ae..a520403e3 100644 --- a/performance-web/src/main/java/com/clx/performance/dao/settle/SettlementDriverDao.java +++ b/performance-web/src/main/java/com/clx/performance/dao/settle/SettlementDriverDao.java @@ -20,10 +20,14 @@ public interface SettlementDriverDao extends BaseDao<SettlementDriverMapper, Set boolean updatePayStatus(SettlementDriver item); + boolean updateSettleStatus(SettlementDriver item); + Optional<SettlementDriver> findBySettlementNo(String settlementNo); Optional<SettlementDriver> findByChildNo(String childNo); + List<SettlementDriver> listDriverConfirmSync(); + IPage<SettlementDriver> pageCarrierSettlementDriver(PageCarrierSettlementDriverParam param); diff --git a/performance-web/src/main/java/com/clx/performance/dao/settle/SettlementDriverDetailDao.java b/performance-web/src/main/java/com/clx/performance/dao/settle/SettlementDriverDetailDao.java index 1c0f1a5f0..927316912 100644 --- a/performance-web/src/main/java/com/clx/performance/dao/settle/SettlementDriverDetailDao.java +++ b/performance-web/src/main/java/com/clx/performance/dao/settle/SettlementDriverDetailDao.java @@ -24,10 +24,15 @@ public interface SettlementDriverDetailDao extends BaseDao<SettlementDriverDetai boolean updateInvoiceTypeAndPrepayFreightFlag(SettlementDriverDetail item); boolean updateConvertOrdinary(SettlementDriverDetail item); boolean updatePreFreight(SettlementDriverDetail item); + boolean updatePayAcceptStatus(SettlementDriverDetail item); Optional<SettlementDriverDetail> getByChildNo(String childNo); + List<SettlementDriverDetail> listDriverPaySync(LocalDateTime time); + + List<SettlementDriverDetail> listDriverPayAcceptSync(); + IPage<SettlementDriverDetail> pageSettlementDriverDetail(PageCarrierSettlementDriverDetailParam param); List<SettlementDriverDetail> listUnPay(LocalDateTime beginTime); diff --git a/performance-web/src/main/java/com/clx/performance/extranal/broker/BrokerService.java b/performance-web/src/main/java/com/clx/performance/extranal/broker/BrokerService.java index c44286132..a1562de8e 100644 --- a/performance-web/src/main/java/com/clx/performance/extranal/broker/BrokerService.java +++ b/performance-web/src/main/java/com/clx/performance/extranal/broker/BrokerService.java @@ -7,6 +7,7 @@ public interface BrokerService { void orderChildSync(TransportParam param); void orderChildUpdate(TransportParam param); + void orderChildPay(String childNo); TransportVO getOrderChildStatus(String childNo); diff --git a/performance-web/src/main/java/com/clx/performance/extranal/broker/impl/BrokerServiceImpl.java b/performance-web/src/main/java/com/clx/performance/extranal/broker/impl/BrokerServiceImpl.java index bb6c0c3c5..9ee9cc7ed 100644 --- a/performance-web/src/main/java/com/clx/performance/extranal/broker/impl/BrokerServiceImpl.java +++ b/performance-web/src/main/java/com/clx/performance/extranal/broker/impl/BrokerServiceImpl.java @@ -45,6 +45,17 @@ public class BrokerServiceImpl implements BrokerService { log.info("杩愬崟鏇存柊缃戠粶璐ц繍, childNo:{}, result:{}", param.getOrderChild().getSourceChildNo(), JSON.toJSONString(result)); } + @Override + public void orderChildPay(String childNo) { + + Result<Object> result = brokerFeign.payConfirm(childNo, settlementConfig.getBrokerUserCode()); + if (result.getCode() != 0) { + log.info("鍙告満鏀粯, childNo:{}, msg:{}", childNo, result.getMsg()); + } + log.info("鍙告満鏀粯, childNo:{}, result:{}", childNo, JSON.toJSONString(result)); + + } + @Override public TransportVO getOrderChildStatus(String childNo) { diff --git a/performance-web/src/main/java/com/clx/performance/feign/BrokerFeign.java b/performance-web/src/main/java/com/clx/performance/feign/BrokerFeign.java index 3c1c438eb..ffbe60e11 100644 --- a/performance-web/src/main/java/com/clx/performance/feign/BrokerFeign.java +++ b/performance-web/src/main/java/com/clx/performance/feign/BrokerFeign.java @@ -32,4 +32,11 @@ public interface BrokerFeign { @RequestParam @NotNull(message = "userCode涓嶈兘涓虹┖") String userCode, @RequestParam String settlementNo); + /** + * 鍙告満鏀粯 + */ + @RequestMapping(value = "/broker-service/open/transport/payConfirm", method = RequestMethod.POST) + Result<Object> payConfirm(@RequestParam @NotBlank(message = "杩愬崟缂栧彿涓嶈兘涓虹┖") String orderCode, + @RequestParam @NotNull(message = "userCode涓嶈兘涓虹┖") String userCode); + } diff --git a/performance-web/src/main/java/com/clx/performance/job/settlement/SettlementJob.java b/performance-web/src/main/java/com/clx/performance/job/settlement/SettlementJob.java index 1c91a0fb2..34130579d 100644 --- a/performance-web/src/main/java/com/clx/performance/job/settlement/SettlementJob.java +++ b/performance-web/src/main/java/com/clx/performance/job/settlement/SettlementJob.java @@ -2,13 +2,11 @@ package com.clx.performance.job.settlement; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildSyncTransportInvoiceRecordDao; -import com.clx.performance.dao.settle.OrderChildSyncTransportRecordDao; -import com.clx.performance.dao.settle.SettlementOwnerDao; -import com.clx.performance.dao.settle.SettlementOwnerDetailDao; -import com.clx.performance.model.settle.OrderChildSyncTransportRecord; -import com.clx.performance.model.settle.SettlementOwner; -import com.clx.performance.model.settle.SettlementOwnerDetail; +import com.clx.performance.dao.settle.*; +import com.clx.performance.model.OrderChild; +import com.clx.performance.model.settle.*; import com.clx.performance.service.broker.OrderChildBrokerMqService; import com.clx.performance.service.settle.SettlementMqService; import com.msl.common.job.JobLog; @@ -22,6 +20,7 @@ import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.util.List; +import java.util.stream.Collectors; @Slf4j @Service @@ -35,9 +34,12 @@ public class SettlementJob { private final SettlementMqService settlementMqService; private final SettlementOwnerDetailDao settlementOwnerDetailDao; + private final SettlementDriverDetailDao settlementDriverDetailDao; + private final SettlementDriverDao settlementDriverDao; private final SettlementOwnerDao settlementOwnerDao; private final OrderChildSyncTransportRecordDao orderChildSyncTransportRecordDao; private final OrderChildBrokerMqService orderChildBrokerMqService; + private final OrderChildDao orderChildDao; /** * 鍚屾鏃犺溅鎵胯繍杩愬崟寮€绁ㄧ被鍨� @@ -57,6 +59,45 @@ public class SettlementJob { } } + /** + * 鍙告満纭鏀惰揣鍚屾 + */ + @XxlJob("settlementDriverConfirmSync") + public void settlementDriverConfirmSync() { + List<SettlementDriver> recordList = settlementDriverDao + .listDriverConfirmSync(); + log.info("寰呭徃鏈虹‘璁ゆ敹璐у悓姝ワ紝size:{}", recordList.size()); + if (recordList.isEmpty()) {return;} + + List<OrderChild> childList = orderChildDao.findListByChildNoList( + recordList.stream().map(SettlementDriver::getChildNo).collect(Collectors.toList())); + childList = childList.stream().filter(item -> item.getConfirmTime() != null).collect(Collectors.toList()); + log.info("寰呭徃鏈虹‘璁ゆ敹璐у悓姝ワ紝size:{}", childList.size()); + + for (OrderChild item : childList) { + + settlementMqService.settlementDriverConfirm(item.getChildNo()); + } + } + + /** + * 鍚屾鏃犺溅鎵胯繍杩愬崟鏀粯鍙楃悊 + */ + @XxlJob("settlementDriverPayAcceptSync") + public void settlementDriverPayAcceptSync() { + + List<SettlementDriverDetail> recordList = settlementDriverDetailDao + .listDriverPayAcceptSync(); + + log.info("寰呭悓姝ユ棤杞︽壙杩愯繍鍗曟敮浠樺彈鐞嗭紝size:{}", recordList.size()); + if (recordList.isEmpty()) {return;} + + for (SettlementDriverDetail item : recordList) { + + settlementMqService.driverPayAcceptSync(item.getChildNo()); + } + } + /** * 鍚屾鏃犺溅鎵胯繍杩愬崟寮€绁ㄧ姸鎬� */ @@ -188,4 +229,32 @@ public class SettlementJob { } } + /** + * 缃戠粶璐ц繍杩愬崟鏀粯鍚屾(娴嬭瘯) + */ + @XxlJob("settlementDriverPayTest") + public void settlementDriverPayTest() { + try { + List<String> childNoList=null; + + String jobParam= XxlJobHelper.getJobParam(); + log.info("缃戠粶璐ц繍杩愬崟鏀粯鍚屾, param:{}", jobParam); + if (StringUtils.isNotBlank(jobParam)) { + childNoList = JSON.parseArray(jobParam, String.class); + } + if (childNoList == null || childNoList.isEmpty()) { + return; + } + + for (String childNo : childNoList) { + + // 鍙戦€乵q (杩愬崟鍙告満鏀粯) + orderChildBrokerMqService.orderChildDriverPay(childNo); + } + } catch (Exception e) { + log.warn("缃戠粶璐ц繍杩愬崟鏀粯鍚屾 澶辫触锛宮sg:{}", ExceptionUtils.getStackTrace(e)); + JobLog.error("缃戠粶璐ц繍杩愬崟鏀粯鍚屾 澶辫触", e); + } + } + } diff --git a/performance-web/src/main/java/com/clx/performance/listener/broker/BrokerOrderChildDriverPayListener.java b/performance-web/src/main/java/com/clx/performance/listener/broker/BrokerOrderChildDriverPayListener.java new file mode 100644 index 000000000..f3c9a6036 --- /dev/null +++ b/performance-web/src/main/java/com/clx/performance/listener/broker/BrokerOrderChildDriverPayListener.java @@ -0,0 +1,45 @@ +package com.clx.performance.listener.broker; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.clx.performance.common.MqWrapper; +import com.clx.performance.constant.RabbitKeyBrokerConstants; +import com.clx.performance.service.broker.OrderChildBrokerMqHandlerService; +import com.clx.performance.vo.mq.broker.BrokerOrderChildDriverPayMqParam; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.exception.ExceptionUtils; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @Author: 鑹惧簡鍥� + * @Description: 鍙告満鏀粯 mq + * @Date: 2023-10-20 11:45:08 + * @Version: 1.0 + */ +@Slf4j +@Component +public class BrokerOrderChildDriverPayListener { + + @Autowired + private OrderChildBrokerMqHandlerService orderChildBrokerMqHandlerService; + + @RabbitListener(queues = RabbitKeyBrokerConstants.ORDER_CHILD_DRIVER_PAY_QUEUE) + public void process(Message message) { + try{ + log.info("鏃犺溅鎵胯繍-鍙告満鏀粯, message:{}", new String(message.getBody())); + process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<BrokerOrderChildDriverPayMqParam>>(){}).getData()); + log.info("鏃犺溅鎵胯繍-鍙告満鏀粯 鎴愬姛, message:{}", new String(message.getBody())); + }catch (Exception e){ + log.info("鏃犺溅鎵胯繍-鍙告満鏀粯 澶辫触锛宮sg:{}", ExceptionUtils.getStackTrace(e)); + } + } + + private void process(BrokerOrderChildDriverPayMqParam mq){ + + orderChildBrokerMqHandlerService.orderChildDriverPay(mq); + + } +} diff --git a/performance-web/src/main/java/com/clx/performance/listener/settle/SettlementDriverConfirmListener.java b/performance-web/src/main/java/com/clx/performance/listener/settle/SettlementDriverConfirmListener.java new file mode 100644 index 000000000..13af70f8b --- /dev/null +++ b/performance-web/src/main/java/com/clx/performance/listener/settle/SettlementDriverConfirmListener.java @@ -0,0 +1,43 @@ +package com.clx.performance.listener.settle; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.clx.performance.common.MqWrapper; +import com.clx.performance.constant.RabbitKeySettlementConstants; +import com.clx.performance.service.settle.SettlementMqHandlerService; +import com.clx.performance.vo.mq.settle.SettlementDriverConfirmMqParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @Author: 鑹惧簡鍥� + * @Description: 鍙告満纭鏀惰揣 mq + * @Date: 2023-10-20 11:45:08 + * @Version: 1.0 + */ +@Slf4j +@Component +public class SettlementDriverConfirmListener { + + @Autowired + private SettlementMqHandlerService settlementMqHandlerService; + + @RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_DRIVER_CONFIRM_QUEUE) + public void process(Message message) { + try{ + log.info("缁撶畻-鍙告満纭鏀惰揣, message:{}", new String(message.getBody())); + process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementDriverConfirmMqParam>>(){}).getData()); + }catch (Exception e){ + log.info("缁撶畻-鍙告満纭鏀惰揣 澶辫触",e); + } + } + + private void process(SettlementDriverConfirmMqParam mq){ + + settlementMqHandlerService.settlementDriverConfirm(mq); + + } +} diff --git a/performance-web/src/main/java/com/clx/performance/listener/settle/SettlementDriverPayAcceptSyncListener.java b/performance-web/src/main/java/com/clx/performance/listener/settle/SettlementDriverPayAcceptSyncListener.java new file mode 100644 index 000000000..cf252f627 --- /dev/null +++ b/performance-web/src/main/java/com/clx/performance/listener/settle/SettlementDriverPayAcceptSyncListener.java @@ -0,0 +1,43 @@ +package com.clx.performance.listener.settle; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.clx.performance.common.MqWrapper; +import com.clx.performance.constant.RabbitKeySettlementConstants; +import com.clx.performance.service.settle.SettlementMqHandlerService; +import com.clx.performance.vo.mq.settle.SettlementDriverPayAcceptSyncMqParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @Author: 鑹惧簡鍥� + * @Description: 鍙告満鏀粯鍙楃悊鍚屾 mq + * @Date: 2023-10-20 11:45:08 + * @Version: 1.0 + */ +@Slf4j +@Component +public class SettlementDriverPayAcceptSyncListener { + + @Autowired + private SettlementMqHandlerService settlementMqHandlerService; + + @RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_DRIVER_PAY_ACCEPT_SYNC_QUEUE) + public void process(Message message) { + try{ + log.info("缁撶畻-鍙告満鏀粯鍙楃悊鍚屾, message:{}", new String(message.getBody())); + process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementDriverPayAcceptSyncMqParam>>(){}).getData()); + }catch (Exception e){ + log.info("缁撶畻-鍙告満鏀粯鍙楃悊鍚屾 澶辫触",e); + } + } + + private void process(SettlementDriverPayAcceptSyncMqParam mq){ + + settlementMqHandlerService.driverPayAcceptSync(mq); + + } +} diff --git a/performance-web/src/main/java/com/clx/performance/model/settle/SettlementDriverDetail.java b/performance-web/src/main/java/com/clx/performance/model/settle/SettlementDriverDetail.java index 8c045df19..379c75eb4 100644 --- a/performance-web/src/main/java/com/clx/performance/model/settle/SettlementDriverDetail.java +++ b/performance-web/src/main/java/com/clx/performance/model/settle/SettlementDriverDetail.java @@ -53,6 +53,7 @@ public class SettlementDriverDetail implements HasKey<Integer> { private String invoicingCompanyGroupCode; //寮€绁ㄥ叕鍙哥粺涓€绀句細淇$敤浠g爜 private BigDecimal platformServiceFee; //骞冲彴鏈嶅姟璐癸紙鍒嗭級 private BigDecimal platformServiceFeeRate; //骞冲彴鏈嶅姟璐硅垂鐜�% + private Integer payAcceptStatus; //鏀粯鍙楃悊鐘舵€侊細0鏈彈鐞嗘敮浠� 1鏀粯鍙楃悊涓� 2宸插彈鐞嗘敮浠� private Integer status; //鐘舵€� private LocalDateTime createTime; //鍒涘缓鏃堕棿 private LocalDateTime modifiedTime; //淇敼鏃堕棿 diff --git a/performance-web/src/main/java/com/clx/performance/service/broker/OrderChildBrokerMqHandlerService.java b/performance-web/src/main/java/com/clx/performance/service/broker/OrderChildBrokerMqHandlerService.java index d6ce9dd62..d000371d2 100644 --- a/performance-web/src/main/java/com/clx/performance/service/broker/OrderChildBrokerMqHandlerService.java +++ b/performance-web/src/main/java/com/clx/performance/service/broker/OrderChildBrokerMqHandlerService.java @@ -1,5 +1,6 @@ package com.clx.performance.service.broker; +import com.clx.performance.vo.mq.broker.BrokerOrderChildDriverPayMqParam; import com.clx.performance.vo.mq.broker.BrokerOrderChildSyncMqParam; import com.clx.performance.vo.mq.broker.BrokerOrderChildUpdateMqParam; @@ -7,4 +8,7 @@ public interface OrderChildBrokerMqHandlerService { void orderChildSync(BrokerOrderChildSyncMqParam mq); void orderChildUpdate(BrokerOrderChildUpdateMqParam mq); + + void orderChildDriverPay(BrokerOrderChildDriverPayMqParam mq); + } diff --git a/performance-web/src/main/java/com/clx/performance/service/broker/OrderChildBrokerMqService.java b/performance-web/src/main/java/com/clx/performance/service/broker/OrderChildBrokerMqService.java index f7fd3eadc..b02368ff7 100644 --- a/performance-web/src/main/java/com/clx/performance/service/broker/OrderChildBrokerMqService.java +++ b/performance-web/src/main/java/com/clx/performance/service/broker/OrderChildBrokerMqService.java @@ -9,4 +9,6 @@ public interface OrderChildBrokerMqService { void orderChildUpdate(List<String> childNoList); + void orderChildDriverPay(String childNo); + } diff --git a/performance-web/src/main/java/com/clx/performance/service/broker/OrderChildBrokerService.java b/performance-web/src/main/java/com/clx/performance/service/broker/OrderChildBrokerService.java index 25eed84d4..609538778 100644 --- a/performance-web/src/main/java/com/clx/performance/service/broker/OrderChildBrokerService.java +++ b/performance-web/src/main/java/com/clx/performance/service/broker/OrderChildBrokerService.java @@ -12,4 +12,7 @@ public interface OrderChildBrokerService { SettlementDriverDetail settlementDriverDetail); void orderChildUpdate(OrderChild orderChild, OrderGoods orderGoods, SettlementOwnerDetail settlementOwnerDetail, SettlementDriverDetail settlementDriverDetail, SettlementDriver settlementDriver); + + void orderChildDriverPay(SettlementDriverDetail settlementDriverDetail); + } diff --git a/performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerMqHandlerServiceImpl.java b/performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerMqHandlerServiceImpl.java index cdd5d882c..f5ea59110 100644 --- a/performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerMqHandlerServiceImpl.java +++ b/performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerMqHandlerServiceImpl.java @@ -7,6 +7,7 @@ import com.clx.performance.dao.settle.SettlementDriverDetailDao; import com.clx.performance.dao.settle.SettlementOrderChildRiskDao; import com.clx.performance.dao.settle.SettlementOwnerDetailDao; import com.clx.performance.enums.PerformanceResultEnum; +import com.clx.performance.enums.settle.SettlementDriverDetailEnum; import com.clx.performance.enums.settle.SettlementOrderChildRiskEnum; import com.clx.performance.enums.settle.SettlementOwnerDetailEnum; import com.clx.performance.model.OrderChild; @@ -18,6 +19,7 @@ import com.clx.performance.model.settle.SettlementOwnerDetail; import com.clx.performance.service.broker.OrderChildBrokerMqHandlerService; import com.clx.performance.service.broker.OrderChildBrokerMqService; import com.clx.performance.service.broker.OrderChildBrokerService; +import com.clx.performance.vo.mq.broker.BrokerOrderChildDriverPayMqParam; import com.clx.performance.vo.mq.broker.BrokerOrderChildSyncMqParam; import com.clx.performance.vo.mq.broker.BrokerOrderChildUpdateMqParam; import lombok.extern.slf4j.Slf4j; @@ -141,4 +143,17 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH } + @Override + public void orderChildDriverPay(BrokerOrderChildDriverPayMqParam mq) { + SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao + .getByChildNo(mq.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); + + settlementDriverDetail.setPayAcceptStatus(SettlementDriverDetailEnum.PayAcceptStatus.ACCEPTING.getCode()); + settlementDriverDetailDao.updatePayAcceptStatus(settlementDriverDetail); + + // 鍙告満鏀粯 + orderChildBrokerService.orderChildDriverPay(settlementDriverDetail); + + } + } diff --git a/performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerMqServiceImpl.java b/performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerMqServiceImpl.java index 4cea1ad68..78c3e880b 100644 --- a/performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerMqServiceImpl.java +++ b/performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerMqServiceImpl.java @@ -5,6 +5,7 @@ import com.clx.performance.common.MqDelay; import com.clx.performance.common.MqWrapper; import com.clx.performance.constant.RabbitKeyBrokerConstants; import com.clx.performance.service.broker.OrderChildBrokerMqService; +import com.clx.performance.vo.mq.broker.BrokerOrderChildDriverPayMqParam; import com.clx.performance.vo.mq.broker.BrokerOrderChildSyncMqParam; import com.clx.performance.vo.mq.broker.BrokerOrderChildUpdateMqParam; import lombok.extern.slf4j.Slf4j; @@ -58,4 +59,18 @@ public class OrderChildBrokerMqServiceImpl implements OrderChildBrokerMqService } } + @Override + public void orderChildDriverPay(String childNo) { + BrokerOrderChildDriverPayMqParam mq = new BrokerOrderChildDriverPayMqParam(); + mq.setChildNo(childNo); + + MqDelay delay = + new MqDelay<>(RabbitKeyBrokerConstants.DEFAULT_EXCHANGE, + RabbitKeyBrokerConstants.ORDER_CHILD_DRIVER_PAY_ROUTING_KEY, new MqWrapper<>(mq)); + Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build(); + message.getMessageProperties().setExpiration("5000"); + rabbitTemplate.send(RabbitKeyBrokerConstants.DEFAULT_EXCHANGE, + RabbitKeyBrokerConstants.DEFAULT_DELAY_ROUTING_KEY, message); + } + } diff --git a/performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerServiceImpl.java b/performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerServiceImpl.java index 472cd839e..39e4cba72 100644 --- a/performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerServiceImpl.java +++ b/performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerServiceImpl.java @@ -7,6 +7,7 @@ import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.pc.carrier.InvoicingCompanyVO; import com.clx.performance.dao.OrderChildImageDao; import com.clx.performance.dao.settle.SettlementOwnerDetailDao; +import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PowerTypeEnum; import com.clx.performance.enums.settle.SettlementDriverEnum; import com.clx.performance.enums.settle.SettlementOwnerDetailEnum; @@ -84,6 +85,13 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService { brokerService.orderChildUpdate(transportParam); } + @Override + public void orderChildDriverPay(SettlementDriverDetail settlementDriverDetail) { + + // 杩愬崟鏀粯 + brokerService.orderChildPay(settlementDriverDetail.getChildNo()); + } + private TransportParam buildParam(OrderChild orderChild, OrderGoods orderGoods, SettlementOwnerDetail settlementOwnerDetail, SettlementDriverDetail settlementDriverDetail, SettlementDriver settlementDriver){ String host = documentFeign.getHost().getData(); diff --git a/performance-web/src/main/java/com/clx/performance/service/impl/child/OrderChildPostServiceImpl.java b/performance-web/src/main/java/com/clx/performance/service/impl/child/OrderChildPostServiceImpl.java index eaa4aa877..e3bd73d13 100644 --- a/performance-web/src/main/java/com/clx/performance/service/impl/child/OrderChildPostServiceImpl.java +++ b/performance-web/src/main/java/com/clx/performance/service/impl/child/OrderChildPostServiceImpl.java @@ -90,6 +90,9 @@ public class OrderChildPostServiceImpl implements OrderChildPostService { // 鍙戦€乵q 鍙告満纭鏀惰揣 orderChildMqService.orderChildDriverConfirm(orderChild.getChildNo()); + // 鍙戦€乵q (鍙告満浠樻鍚屾缃戠粶璐ц繍) + settlementMqService.settlementDriverConfirm(orderChild.getChildNo()); + // 鍙戦€乵q (鏇存柊鏃犺溅鎵胯繍) orderChildBrokerMqService.orderChildUpdate(orderChild.getChildNo()); } diff --git a/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqHandlerServiceImpl.java b/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqHandlerServiceImpl.java index 07ab25ac4..f4441dcf4 100644 --- a/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqHandlerServiceImpl.java +++ b/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqHandlerServiceImpl.java @@ -40,10 +40,7 @@ import com.clx.performance.utils.LocalDateTimeUtils; import com.clx.performance.utils.RedisUtil; import com.clx.performance.utils.spring.ApplicationContextUtils; import com.clx.performance.vo.mq.*; -import com.clx.performance.vo.mq.settle.SettlementInvoiceStatusUpdateMqParam; -import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskProcessMqParam; -import com.clx.performance.vo.mq.settle.SettlementOwnerDetialInvoiceCompanyUpdateMqParam; -import com.clx.performance.vo.mq.settle.SettlementPlatformAutoConfirmMqParam; +import com.clx.performance.vo.mq.settle.*; import com.clx.performance.vo.pc.broker.TransportVO; import com.clx.user.vo.feign.DriverInfoFeignVo; import com.clx.user.vo.feign.OwnerInfoFeignVO; @@ -244,7 +241,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic } //鐢熸垚杞︿富缁撶畻鍗� - settlementDriverSave(settlementDriverDetail,settlementNo); +// settlementDriverSave(settlementDriverDetail,settlementNo); //杞︿富缁撶畻鍗曡嚜鍔ㄦ敮浠� log.info(" 杩愬崟鍙� {}, 鏄惁鏄櫘閫氬崟 {} ",settlementDriverDetail.getChildNo(),settlementDriverDetail.getInvoiceType()); if (!settlementDriverDetail.getInvoiceType().equals(SettlementOwnerEnum.InvoiceType.ONLINE.getCode())) { @@ -273,6 +270,55 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic settlementDriverDetailDao.updateSettlementNo(settlementDriverDetail); } + @Override + @Transactional(rollbackFor = Exception.class) + public void settlementDriverSettlement(SettlementDriverSettleMqParam mq) { + + SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao + .getByChildNo(mq.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); + + SettlementDriver settlementDriver = settlementDriverDao.findByChildNo(settlementDriverDetail.getChildNo()).orNull(); + if (settlementDriver != null) {return;} + + String settlementNo = settlementNoGenerate(); + + settlementDriver = new SettlementDriver(); + settlementDriver.setDriverUserNo(settlementDriverDetail.getDriverUserNo()); + settlementDriver.setDriverName(settlementDriverDetail.getDriverName()); + settlementDriver.setSettlementNo(settlementNo); + settlementDriver.setChildNo(settlementDriverDetail.getChildNo()); + settlementDriver.setOrderGoodsNo(settlementDriverDetail.getOrderGoodsNo()); + settlementDriver.setOrderNo(settlementDriverDetail.getOrderNo()); + settlementDriver.setGoodsId(settlementDriverDetail.getGoodsId()); + settlementDriver.setGoodsName(settlementDriverDetail.getGoodsName()); + settlementDriver.setTruckNo(settlementDriverDetail.getTruckNo()); + settlementDriver.setFreightPrice(settlementDriverDetail.getFreightPrice()); + settlementDriver.setWeight(settlementDriverDetail.getWeight()); + settlementDriver.setFreight(settlementDriverDetail.getFreight()); + settlementDriver.setLossPrice(settlementDriverDetail.getLossPrice()); + settlementDriver.setLossWeight(settlementDriverDetail.getLossWeight()); + settlementDriver.setLoanFlag(settlementDriverDetail.getLoanFlag()); + settlementDriver.setLossFreight(settlementDriverDetail.getLossFreight()); + settlementDriver.setPrepayFreightFlag(settlementDriverDetail.getPrepayFreightFlag()); + settlementDriver.setSettlementFreight(settlementDriverDetail.getSettlementFreight()); + settlementDriver.setInvoiceType(settlementDriverDetail.getInvoiceType()); + settlementDriver.setSettlementPlatform(settlementDriverDetail.getInvoiceType() == 1 ? + String.valueOf(SettlementPlatformEnum.Platform.WY.getCode()): + String.valueOf(SettlementPlatformEnum.Platform.MSL.getCode())); + + settlementDriver.setStatus(SettlementDriverEnum.Status.DRIVER_UNCONFIRMED.getCode()); + + settlementDriver.setInvoicingCompanyId(settlementDriverDetail.getInvoicingCompanyId()); + settlementDriver.setInvoicingCompanyShorterName(settlementDriverDetail.getInvoicingCompanyShorterName()); + settlementDriver.setInvoicingCompanyGroupCode(settlementDriverDetail.getInvoicingCompanyGroupCode()); + settlementDriver.setPlatformServiceFeeRate(settlementDriverDetail.getPlatformServiceFeeRate()); + settlementDriver.setPlatformServiceFee(settlementDriverDetail.getPlatformServiceFee()); + + settlementDriverDao.saveEntity(settlementDriver); + + settlementPostService.driverSettle(settlementDriverDetail.getChildNo()); + } + @Transactional(rollbackFor = Exception.class) @Override public void settle(SettlementSettleMqParam mq) { @@ -358,6 +404,49 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic } } + @Override + public void driverPayAcceptSync(SettlementDriverPayAcceptSyncMqParam mq) { + OrderChild orderChild = orderChildDao.getByChildNo(mq.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); + SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao + .getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); + if (!Objects.equals(settlementOwnerDetail.getInvoiceChannel(), SettlementOwnerDetailEnum.InvoiceChannel.BROKER.getCode())){ + return; + } + if (settlementOwnerDetail.getInvoiceType() == null) {return;} + + SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao + .getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); + if (!Objects.equals(settlementDriverDetail.getPayAcceptStatus(), SettlementDriverDetailEnum.PayAcceptStatus.ACCEPTING.getCode())){ + return; + } + + SettlementDriver settlementDriver = settlementDriverDao + .getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); + + try { + // 鑾峰彇鐘舵€� + TransportVO result = brokerService.getOrderChildStatus(mq.getChildNo()); + if (result == null){ + log.info("杩愬崟鍙� {} 鏈壘鍒拌繍鍗曚俊鎭�",mq.getChildNo()); + return; + } + + if (Objects.equals(result.getSyncStatus(), 0)) { + + return; + } + + else if (Objects.equals(result.getThirdPartyChildStatus(), 30)) { + // 鏇存柊鐘舵€� + settlementDriverDetail.setPayAcceptStatus(SettlementDriverDetailEnum.PayAcceptStatus.ACCEPTED.getCode()); + settlementDriverDetailDao.updatePayAcceptStatus(settlementDriverDetail); + + } + }catch (Exception e){ + log.info("缁撶畻鑾峰彇鏀粯鍙楃悊鐘舵€佸け璐ワ紝 杩愬崟鍙� {}",mq.getChildNo(),e); + } + } + @Transactional(rollbackFor = Exception.class) @Override public void invoiceStatusSync(SettlementInvoiceStatusSyncMqParam mq) { @@ -606,45 +695,45 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic // settlementService.updateSettlementDetailInvoiceType(settlementOwnerDetail.getChildNo(), SettlementOwnerEnum.InvoiceType.ORDINARY.getCode()); } - private void settlementDriverSave(SettlementDriverDetail detail,String settlementNo){ - SettlementDriver settlementDriver = settlementDriverDao.findByChildNo(detail.getChildNo()).orElse(new SettlementDriver()); - settlementDriver.setDriverUserNo(detail.getDriverUserNo()); - settlementDriver.setDriverName(detail.getDriverName()); - settlementDriver.setSettlementNo(settlementNo); - settlementDriver.setChildNo(detail.getChildNo()); - settlementDriver.setOrderGoodsNo(detail.getOrderGoodsNo()); - settlementDriver.setOrderNo(detail.getOrderNo()); - settlementDriver.setGoodsId(detail.getGoodsId()); - settlementDriver.setGoodsName(detail.getGoodsName()); - settlementDriver.setTruckNo(detail.getTruckNo()); - settlementDriver.setFreightPrice(detail.getFreightPrice()); - settlementDriver.setWeight(detail.getWeight()); - settlementDriver.setFreight(detail.getFreight()); - settlementDriver.setLossPrice(detail.getLossPrice()); - settlementDriver.setLossWeight(detail.getLossWeight()); - settlementDriver.setLoanFlag(detail.getLoanFlag()); - settlementDriver.setLossFreight(detail.getLossFreight()); - settlementDriver.setPrepayFreightFlag(detail.getPrepayFreightFlag()); - settlementDriver.setSettlementFreight(detail.getSettlementFreight()); - settlementDriver.setInvoiceType(detail.getInvoiceType()); - settlementDriver.setSettlementPlatform(detail.getInvoiceType() == 1 ? - String.valueOf(SettlementPlatformEnum.Platform.WY.getCode()): - String.valueOf(SettlementPlatformEnum.Platform.MSL.getCode())); - - settlementDriver.setStatus(SettlementDriverEnum.Status.WAIT_SETTLEMENT.getCode()); - - settlementDriver.setInvoicingCompanyId(detail.getInvoicingCompanyId()); - settlementDriver.setInvoicingCompanyShorterName(detail.getInvoicingCompanyShorterName()); - settlementDriver.setInvoicingCompanyGroupCode(detail.getInvoicingCompanyGroupCode()); - settlementDriver.setPlatformServiceFeeRate(detail.getPlatformServiceFeeRate()); - settlementDriver.setPlatformServiceFee(detail.getPlatformServiceFee()); - - if (settlementDriver.getId() == null) { - settlementDriverDao.saveEntity(settlementDriver); - }else { - settlementDriverDao.updateEntityByKey(settlementDriver); - } - } +// private void settlementDriverSave(SettlementDriverDetail detail,String settlementNo){ +// SettlementDriver settlementDriver = settlementDriverDao.findByChildNo(detail.getChildNo()).orElse(new SettlementDriver()); +// settlementDriver.setDriverUserNo(detail.getDriverUserNo()); +// settlementDriver.setDriverName(detail.getDriverName()); +// settlementDriver.setSettlementNo(settlementNo); +// settlementDriver.setChildNo(detail.getChildNo()); +// settlementDriver.setOrderGoodsNo(detail.getOrderGoodsNo()); +// settlementDriver.setOrderNo(detail.getOrderNo()); +// settlementDriver.setGoodsId(detail.getGoodsId()); +// settlementDriver.setGoodsName(detail.getGoodsName()); +// settlementDriver.setTruckNo(detail.getTruckNo()); +// settlementDriver.setFreightPrice(detail.getFreightPrice()); +// settlementDriver.setWeight(detail.getWeight()); +// settlementDriver.setFreight(detail.getFreight()); +// settlementDriver.setLossPrice(detail.getLossPrice()); +// settlementDriver.setLossWeight(detail.getLossWeight()); +// settlementDriver.setLoanFlag(detail.getLoanFlag()); +// settlementDriver.setLossFreight(detail.getLossFreight()); +// settlementDriver.setPrepayFreightFlag(detail.getPrepayFreightFlag()); +// settlementDriver.setSettlementFreight(detail.getSettlementFreight()); +// settlementDriver.setInvoiceType(detail.getInvoiceType()); +// settlementDriver.setSettlementPlatform(detail.getInvoiceType() == 1 ? +// String.valueOf(SettlementPlatformEnum.Platform.WY.getCode()): +// String.valueOf(SettlementPlatformEnum.Platform.MSL.getCode())); +// +// settlementDriver.setStatus(SettlementDriverEnum.Status.WAIT_SETTLEMENT.getCode()); +// +// settlementDriver.setInvoicingCompanyId(detail.getInvoicingCompanyId()); +// settlementDriver.setInvoicingCompanyShorterName(detail.getInvoicingCompanyShorterName()); +// settlementDriver.setInvoicingCompanyGroupCode(detail.getInvoicingCompanyGroupCode()); +// settlementDriver.setPlatformServiceFeeRate(detail.getPlatformServiceFeeRate()); +// settlementDriver.setPlatformServiceFee(detail.getPlatformServiceFee()); +// +// if (settlementDriver.getId() == null) { +// settlementDriverDao.saveEntity(settlementDriver); +// }else { +// settlementDriverDao.updateEntityByKey(settlementDriver); +// } +// } @Override public void settlementDriverNotify(String childNo,Integer payType,String payErrorMsg){ @@ -914,6 +1003,57 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic return uniqueOrderNumService.getUniqueOrderNum(com.msl.common.utils.LocalDateTimeUtils.convertLocalDateTimeToString(LocalDateTime.now(), com.msl.common.utils.LocalDateTimeUtils.DATE_DAY)); } + @Override + @Transactional(rollbackFor = Exception.class) + public void riskAdd(SettlementOrderChildRiskAddMqParam mq) { + SettlementOrderChildRisk settlementOrderChildRisk = settlementOrderChildRiskDao + .getById(mq.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND); + if (Objects.equals(settlementOrderChildRisk.getStatus(), SettlementOrderChildRiskEnum.Status.PROCESSED.getCode())) { + return; + } + + OrderChild orderChild = orderChildDao + .getByChildNo(settlementOrderChildRisk.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND); + + InvoicingCompanyVO invoicingCompanyByGroupCode = invoicingCompanyService + .getInvoicingCompanyByGroupCode(orderChild.getInvoicingCompanyGroupCode()); + if (!Objects.equals(invoicingCompanyByGroupCode.getRiskProcessType(), InvoicingCompanyEnum.RiskProcessType.AUTO.getCode())) { + return; + } + + // 杞櫘閫氬崟 + SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao + .getByChildNo(settlementOrderChildRisk.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND); + SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao + .getByChildNo(settlementOrderChildRisk.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); + + settlementOrderChildRisk.setStatus(SettlementOrderChildRiskEnum.Status.PROCESSED.getCode()); + settlementOrderChildRisk.setProcessMethod(SettlementOrderChildRiskEnum.ProcessMethod.CONVERT_ORDINARY.getCode()); + settlementOrderChildRisk.setProcessBy("绯荤粺"); + settlementOrderChildRisk.setProcessTime(LocalDateTime.now()); + + settlementOwnerDetail.setInvoiceType(SettlementOwnerEnum.InvoiceType.ORDINARY.getCode()); + settlementOwnerDetail.setInvoicingCompanyId(null); + settlementOwnerDetail.setInvoicingCompanyShorterName(null); + settlementOwnerDetail.setInvoicingCompanyGroupCode(null); + settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.SUCCESS.getCode()); + settlementOwnerDetail.setInvoiceTypeModifiedTime(LocalDateTime.now()); + settlementOwnerDetailDao.updateConvertOrdinary(settlementOwnerDetail); + + settlementDriverDetail.setInvoiceType(settlementOwnerDetail.getInvoiceType()); + settlementDriverDetail.setInvoicingCompanyId(settlementOwnerDetail.getInvoicingCompanyId()); + settlementDriverDetail.setInvoicingCompanyShorterName(settlementOwnerDetail.getInvoicingCompanyShorterName()); + settlementDriverDetail.setInvoicingCompanyGroupCode(settlementOwnerDetail.getInvoicingCompanyGroupCode()); + settlementDriverDetailDao.updateConvertOrdinary(settlementDriverDetail); + + settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType()); + + settlementOrderChildRiskDao.updateProcess(settlementOrderChildRisk); + + // 鍙戦€乵q (椋庢帶澶勭悊) + settlementMqService.riskProcess(settlementOrderChildRisk.getId()); + } + @Transactional(rollbackFor = Exception.class) @Override public void riskProcess(SettlementOrderChildRiskProcessMqParam mq) { @@ -1124,6 +1264,31 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic } + @Override + public void settlementDriverConfirm(SettlementDriverConfirmMqParam mq) { + + OrderChild orderChild = orderChildDao.getByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND); + if (orderChild.getConfirmTime() == null) {return;} + + SettlementDriver settlementDriver = settlementDriverDao.findByChildNo(orderChild.getChildNo()).orNull(); + if (settlementDriver == null + || !Objects.equals(settlementDriver.getStatus(), SettlementDriverEnum.Status.DRIVER_UNCONFIRMED.getCode()) + ) { + return; + } + + settlementDriver.setStatus(SettlementDriverEnum.Status.WAIT_SETTLEMENT.getCode()); + settlementDriverDao.updateSettleStatus(settlementDriver); + + if (!Objects.equals(settlementDriver.getInvoiceType(), SettlementOwnerEnum.InvoiceType.ONLINE.getCode())){ + return; + } + + // 鍙戦€乵q (杩愬崟鍙告満鏀粯) + orderChildBrokerMqService.orderChildDriverPay(orderChild.getChildNo()); + + } + private BigDecimal invoiceFreightCalc(Integer settlementWay, BigDecimal invoiceServiceFeeRate, SettlementOwnerDetail settlementOwnerDetail) { if (Objects.equals(settlementWay, SettlementWayEnum.WayType.LOAD.getCode())) { //璁㈠崟缁撶畻鏂瑰紡涓衡€滆杞﹀噣閲嶁€濇椂锛屽紑绁ㄩ噾棰�=瀹為檯鍑€閲�*骞冲彴杩愯垂鎶ヤ环-璐ф崯閲戦銆� return settlementOwnerDetail.getWeight().multiply(settlementOwnerDetail.getFreightPrice()) diff --git a/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqServiceImpl.java b/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqServiceImpl.java index 2f15cdf37..59a12672a 100644 --- a/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqServiceImpl.java +++ b/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqServiceImpl.java @@ -6,10 +6,7 @@ import com.clx.performance.common.MqWrapper; import com.clx.performance.constant.RabbitKeySettlementConstants; import com.clx.performance.service.settle.SettlementMqService; import com.clx.performance.vo.mq.*; -import com.clx.performance.vo.mq.settle.SettlementInvoiceStatusUpdateMqParam; -import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskProcessMqParam; -import com.clx.performance.vo.mq.settle.SettlementOwnerDetialInvoiceCompanyUpdateMqParam; -import com.clx.performance.vo.mq.settle.SettlementPlatformAutoConfirmMqParam; +import com.clx.performance.vo.mq.settle.*; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageBuilder; @@ -75,6 +72,19 @@ public class SettlementMqServiceImpl implements SettlementMqService { RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message); } + @Override + public void driverPayAcceptSync(String childNo) { + SettlementDriverPayAcceptSyncMqParam mq = new SettlementDriverPayAcceptSyncMqParam(); + mq.setChildNo(childNo); + MqDelay delay = + new MqDelay<>(RabbitKeySettlementConstants.DEFAULT_EXCHANGE, + RabbitKeySettlementConstants.SETTLEMENT_DRIVER_PAY_ACCEPT_SYNC_ROUTING_KEY, new MqWrapper<>(mq)); + Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build(); + message.getMessageProperties().setExpiration("5000"); + rabbitTemplate.send(RabbitKeySettlementConstants.DEFAULT_EXCHANGE, + RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message); + } + @Override public void settle(String childNo, Integer invoiceType, String remark) { @@ -162,4 +172,16 @@ public class SettlementMqServiceImpl implements SettlementMqService { RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message); } + @Override + public void settlementDriverConfirm(String childNo) { + SettlementDriverConfirmMqParam mq = new SettlementDriverConfirmMqParam(); + mq.setChildNo(childNo); + MqDelay delay = new MqDelay<>(RabbitKeySettlementConstants.DEFAULT_EXCHANGE, + RabbitKeySettlementConstants.SETTLEMENT_DRIVER_CONFIRM_ROUTING_KEY, new MqWrapper<>(mq)); + Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build(); + message.getMessageProperties().setExpiration("5000"); + rabbitTemplate.send(RabbitKeySettlementConstants.DEFAULT_EXCHANGE, + RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message); + } + } diff --git a/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementOrderChildRiskServiceImpl.java b/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementOrderChildRiskServiceImpl.java index b9c0452a0..899b01120 100644 --- a/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementOrderChildRiskServiceImpl.java +++ b/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementOrderChildRiskServiceImpl.java @@ -8,10 +8,7 @@ import com.clx.performance.dao.settle.SettlementOrderChildRiskDao; import com.clx.performance.dao.settle.SettlementOwnerDetailDao; import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.ResultEnum; -import com.clx.performance.enums.settle.SettlementDriverEnum; -import com.clx.performance.enums.settle.SettlementOrderChildRiskEnum; -import com.clx.performance.enums.settle.SettlementOwnerDetailEnum; -import com.clx.performance.enums.settle.SettlementOwnerEnum; +import com.clx.performance.enums.settle.*; import com.clx.performance.model.settle.SettlementDriver; import com.clx.performance.model.settle.SettlementDriverDetail; import com.clx.performance.model.settle.SettlementOrderChildRisk; @@ -104,7 +101,13 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild } } else { - + // 鐘舵€佸洖婊� + if (settlementDriver != null){ + settlementDriver.setStatus(SettlementDriverEnum.Status.DRIVER_UNCONFIRMED.getCode()); + settlementDriverDao.updatePayStatus(settlementDriver); + } + settlementDriverDetail.setPayAcceptStatus(SettlementDriverDetailEnum.PayAcceptStatus.INIT.getCode()); + settlementDriverDetailDao.updatePayAcceptStatus(settlementDriverDetail); } settlementOrderChildRiskDao.updateProcess(settlementOrderChildRisk); diff --git a/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementPostServiceImpl.java b/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementPostServiceImpl.java index 5efc5c176..5f9796226 100644 --- a/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementPostServiceImpl.java +++ b/performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementPostServiceImpl.java @@ -60,4 +60,10 @@ public class SettlementPostServiceImpl implements SettlementPostService { } } + + @Override + public void driverSettle(String childNo) { + // 鍙戦€乵q (鍙告満纭鏀惰揣) + settlementMqService.settlementDriverConfirm(childNo); + } } diff --git a/performance-web/src/main/java/com/clx/performance/service/settle/SettlementMqHandlerService.java b/performance-web/src/main/java/com/clx/performance/service/settle/SettlementMqHandlerService.java index c28c2fda9..7a5e199ad 100644 --- a/performance-web/src/main/java/com/clx/performance/service/settle/SettlementMqHandlerService.java +++ b/performance-web/src/main/java/com/clx/performance/service/settle/SettlementMqHandlerService.java @@ -2,10 +2,7 @@ package com.clx.performance.service.settle; import com.clx.performance.model.settle.SettlementDriverDetail; import com.clx.performance.vo.mq.*; -import com.clx.performance.vo.mq.settle.SettlementInvoiceStatusUpdateMqParam; -import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskProcessMqParam; -import com.clx.performance.vo.mq.settle.SettlementOwnerDetialInvoiceCompanyUpdateMqParam; -import com.clx.performance.vo.mq.settle.SettlementPlatformAutoConfirmMqParam; +import com.clx.performance.vo.mq.settle.*; public interface SettlementMqHandlerService { @@ -13,9 +10,12 @@ public interface SettlementMqHandlerService { void settlementStatistics(SettlementStatisticsMqParam mq); + void settlementDriverSettlement(SettlementDriverSettleMqParam mq); + void settle(SettlementSettleMqParam mq); void invoiceTypeSync(SettlementInvoiceTypeSyncMqParam mq); + void driverPayAcceptSync(SettlementDriverPayAcceptSyncMqParam mq); void invoiceStatusSync(SettlementInvoiceStatusSyncMqParam mq); @@ -27,6 +27,7 @@ public interface SettlementMqHandlerService { String settlementNoGenerate(); + void riskAdd(SettlementOrderChildRiskAddMqParam mq); void riskProcess(SettlementOrderChildRiskProcessMqParam mq); void invoiceCompanyUpdate(SettlementOwnerDetialInvoiceCompanyUpdateMqParam mq); @@ -35,4 +36,6 @@ public interface SettlementMqHandlerService { void settlementInvoiceStatusUpdate(SettlementInvoiceStatusUpdateMqParam mq); + void settlementDriverConfirm(SettlementDriverConfirmMqParam mq); + } diff --git a/performance-web/src/main/java/com/clx/performance/service/settle/SettlementMqService.java b/performance-web/src/main/java/com/clx/performance/service/settle/SettlementMqService.java index d800a96ae..7052e2e46 100644 --- a/performance-web/src/main/java/com/clx/performance/service/settle/SettlementMqService.java +++ b/performance-web/src/main/java/com/clx/performance/service/settle/SettlementMqService.java @@ -9,6 +9,8 @@ public interface SettlementMqService { void invoiceTypeSync(String childNo); + void driverPayAcceptSync(String childNo); + void settle(String childNo, Integer invoiceType, String remark); void invoiceStatusSync(String childNo); @@ -23,4 +25,6 @@ public interface SettlementMqService { void settlementInvoiceStatusUpdate(String settlementNo); + void settlementDriverConfirm(String childNo); + } diff --git a/performance-web/src/main/java/com/clx/performance/service/settle/SettlementPostService.java b/performance-web/src/main/java/com/clx/performance/service/settle/SettlementPostService.java index 242ea63d1..f46b70605 100644 --- a/performance-web/src/main/java/com/clx/performance/service/settle/SettlementPostService.java +++ b/performance-web/src/main/java/com/clx/performance/service/settle/SettlementPostService.java @@ -15,4 +15,5 @@ public interface SettlementPostService { void updateInvoice(List<String> childNoList); + void driverSettle(String childNo); } -- 2.17.1