提交 d7cb9dae authored 作者: 姜武杰's avatar 姜武杰

Merge branch 'v32.1-test-problems-20241029' into test_jdk17

# Conflicts: # clx-performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java # clx-performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java # clx-performance-web/src/main/java/com/clx/performance/dao/impl/OrderGoodsDaoImpl.java Former-commit-id: 1adb0508
...@@ -286,8 +286,6 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, ...@@ -286,8 +286,6 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
baseMapper.batchCancelOrderGoods(cancelOrderGoodsWeight); baseMapper.batchCancelOrderGoods(cancelOrderGoodsWeight);
} }
@Override @Override
public List<OrderGoods> listAfterCreatedByOrderNo(String orderNo) { public List<OrderGoods> listAfterCreatedByOrderNo(String orderNo) {
return baseMapper.selectList(lQrWrapper().eq(OrderGoods::getOrderNo, orderNo) return baseMapper.selectList(lQrWrapper().eq(OrderGoods::getOrderNo, orderNo)
......
package com.clx.performance.job; package com.clx.performance.job;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.clx.performance.constant.RedisConstants;
import com.clx.performance.dto.zjxl.TruckTraceDTO;
import com.clx.performance.service.LastTruckService; import com.clx.performance.service.LastTruckService;
import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.utils.zjxl.ZjxlGpsService;
import com.clx.user.feign.UserClxFeign;
import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.job.JobLog; import com.msl.common.job.JobLog;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Autowired; ;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
@Slf4j @Slf4j
@Component @Component
@AllArgsConstructor @AllArgsConstructor
......
...@@ -55,23 +55,35 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild ...@@ -55,23 +55,35 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
@Autowired @Autowired
private SettlementMqService settlementMqService; private SettlementMqService settlementMqService;
/**
* 更新子订单风险处理信息
* 此方法用于处理子订单的风险流程更新,根据不同的处理方式更新相关细节,并发送消息到消息队列
*
* @param param 包含子订单风险处理更新参数的对象
*/
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void updateRiskProcess(OwnerSettlementOrderChildRiskProcessUpdateParam param) { public void updateRiskProcess(OwnerSettlementOrderChildRiskProcessUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
// 获取子订单风险信息,如果不存在则抛出异常
SettlementOrderChildRisk settlementOrderChildRisk = settlementOrderChildRiskDao.getById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND); SettlementOrderChildRisk settlementOrderChildRisk = settlementOrderChildRiskDao.getById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
// 检查子订单风险状态,如果已处理则抛出异常
if (Objects.equals(settlementOrderChildRisk.getStatus(), SettlementOrderChildRiskEnum.Status.PROCESSED.getCode())) { if (Objects.equals(settlementOrderChildRisk.getStatus(), SettlementOrderChildRiskEnum.Status.PROCESSED.getCode())) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_RISK_PROCESS_ERROR); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_RISK_PROCESS_ERROR);
} }
// 获取子订单详细信息,如果不存在则抛出异常
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao
.getByChildNo(settlementOrderChildRisk.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND); .getByChildNo(settlementOrderChildRisk.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
// 获取司机详细信息,如果不存在则抛出异常
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao
.getByChildNo(settlementOrderChildRisk.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); .getByChildNo(settlementOrderChildRisk.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// 获取司机信息,可能为null
SettlementDriver settlementDriver = settlementDriverDao.findByChildNo(settlementOrderChildRisk.getChildNo()).orNull(); SettlementDriver settlementDriver = settlementDriverDao.findByChildNo(settlementOrderChildRisk.getChildNo()).orNull();
// 更新子订单风险状态和处理信息
settlementOrderChildRisk.setStatus(SettlementOrderChildRiskEnum.Status.PROCESSED.getCode()); settlementOrderChildRisk.setStatus(SettlementOrderChildRiskEnum.Status.PROCESSED.getCode());
settlementOrderChildRisk.setProcessMethod(param.getProcessMethod()); settlementOrderChildRisk.setProcessMethod(param.getProcessMethod());
settlementOrderChildRisk.setProcessBy(loginUserInfo.getUserName()); settlementOrderChildRisk.setProcessBy(loginUserInfo.getUserName());
...@@ -79,6 +91,7 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild ...@@ -79,6 +91,7 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
// 转普通单 // 转普通单
if (Objects.equals(param.getProcessMethod(), SettlementOrderChildRiskEnum.ProcessMethod.CONVERT_ORDINARY.getCode())) { if (Objects.equals(param.getProcessMethod(), SettlementOrderChildRiskEnum.ProcessMethod.CONVERT_ORDINARY.getCode())) {
// 更新子订单详细信息为普通发票类型
settlementOwnerDetail.setInvoiceType(SettlementOwnerEnum.InvoiceType.ORDINARY.getCode()); settlementOwnerDetail.setInvoiceType(SettlementOwnerEnum.InvoiceType.ORDINARY.getCode());
settlementOwnerDetail.setInvoicingCompanyId(null); settlementOwnerDetail.setInvoicingCompanyId(null);
settlementOwnerDetail.setInvoicingCompanyShorterName(null); settlementOwnerDetail.setInvoicingCompanyShorterName(null);
...@@ -87,14 +100,17 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild ...@@ -87,14 +100,17 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
settlementOwnerDetail.setInvoiceTypeModifiedTime(LocalDateTime.now()); settlementOwnerDetail.setInvoiceTypeModifiedTime(LocalDateTime.now());
settlementOwnerDetailDao.updateConvertOrdinary(settlementOwnerDetail); settlementOwnerDetailDao.updateConvertOrdinary(settlementOwnerDetail);
// 同步更新司机详细信息
settlementDriverDetail.setInvoiceType(settlementOwnerDetail.getInvoiceType()); settlementDriverDetail.setInvoiceType(settlementOwnerDetail.getInvoiceType());
settlementDriverDetail.setInvoicingCompanyId(settlementOwnerDetail.getInvoicingCompanyId()); settlementDriverDetail.setInvoicingCompanyId(settlementOwnerDetail.getInvoicingCompanyId());
settlementDriverDetail.setInvoicingCompanyShorterName(settlementOwnerDetail.getInvoicingCompanyShorterName()); settlementDriverDetail.setInvoicingCompanyShorterName(settlementOwnerDetail.getInvoicingCompanyShorterName());
settlementDriverDetail.setInvoicingCompanyGroupCode(settlementOwnerDetail.getInvoicingCompanyGroupCode()); settlementDriverDetail.setInvoicingCompanyGroupCode(settlementOwnerDetail.getInvoicingCompanyGroupCode());
settlementDriverDetailDao.updateConvertOrdinary(settlementDriverDetail); settlementDriverDetailDao.updateConvertOrdinary(settlementDriverDetail);
// 更新子订单风险的发票类型
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType()); settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
// 如果司机信息存在,则同步更新司机信息
if (settlementDriver != null) { if (settlementDriver != null) {
settlementDriver.setInvoiceType(settlementDriverDetail.getInvoiceType()); settlementDriver.setInvoiceType(settlementDriverDetail.getInvoiceType());
settlementDriver.setInvoicingCompanyId(settlementDriverDetail.getInvoicingCompanyId()); settlementDriver.setInvoicingCompanyId(settlementDriverDetail.getInvoicingCompanyId());
...@@ -106,17 +122,22 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild ...@@ -106,17 +122,22 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
} }
else { else {
// 状态回滚 // 状态回滚
// 如果司机信息存在,则回滚司机状态
if (settlementDriver != null){ if (settlementDriver != null){
settlementDriver.setStatus(SettlementDriverEnum.Status.DRIVER_UNCONFIRMED.getCode()); settlementDriver.setStatus(SettlementDriverEnum.Status.DRIVER_UNCONFIRMED.getCode());
settlementDriverDao.updatePayStatus(settlementDriver); settlementDriverDao.updatePayStatus(settlementDriver);
} }
// 回滚司机详细信息的支付接受状态
settlementDriverDetail.setPayAcceptStatus(SettlementDriverDetailEnum.PayAcceptStatus.INIT.getCode()); settlementDriverDetail.setPayAcceptStatus(SettlementDriverDetailEnum.PayAcceptStatus.INIT.getCode());
settlementDriverDetailDao.updatePayAcceptStatus(settlementDriverDetail); settlementDriverDetailDao.updatePayAcceptStatus(settlementDriverDetail);
} }
// 更新子订单风险处理信息
settlementOrderChildRiskDao.updateProcess(settlementOrderChildRisk); settlementOrderChildRiskDao.updateProcess(settlementOrderChildRisk);
// 发送mq (风控处理) // 发送mq (风控处理)
// 通知风险处理完成,触发后续流程
settlementMqService.riskProcess(settlementOrderChildRisk.getId()); settlementMqService.riskProcess(settlementOrderChildRisk.getId());
} }
......
...@@ -12,7 +12,7 @@ public class SettlementDriverDetailSqlProvider { ...@@ -12,7 +12,7 @@ public class SettlementDriverDetailSqlProvider {
public String listUnPay() { public String listUnPay() {
return new SQL(){{ return new SQL(){{
SELECT("a.* "); SELECT("a.* ");
FROM("settlement_owner_detail a "); FROM("settlement_driver_detail a ");
LEFT_OUTER_JOIN("settlement_driver b on a.settlement_no = b.settlement_no "); LEFT_OUTER_JOIN("settlement_driver b on a.settlement_no = b.settlement_no ");
WHERE("b.create_time >= #{beginTime}"); WHERE("b.create_time >= #{beginTime}");
WHERE("b.status = " + SettlementDriverEnum.Status.WAIT_SETTLEMENT.getCode()); WHERE("b.status = " + SettlementDriverEnum.Status.WAIT_SETTLEMENT.getCode());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论