提交 55f24c53 authored 作者: aiqingguo's avatar aiqingguo

违约结算单支付

上级 dadf5017
......@@ -29,7 +29,7 @@ public class PayParam {
String tradeNo;
@NotBlank(message = "交易单id不能为空")
@ApiModelProperty(value = "交易单id", example = "23", dataType = "int")
Integer tradeId;
String tradeId;
@NotBlank(message = "交易备注不能为空")
@ApiModelProperty(value = "交易备注", example = "23", dataType = "int")
String remark;
......
......@@ -65,7 +65,7 @@ public class PaymentServiceImpl implements PaymentService {
public Result paymentWallet(PayParam payDTO) {
/** 构建支付单元 **/
PayUnitDTO payUnitDTO = PayUnitDTO.builder()
.id(payDTO.getTradeId().toString())
.id(payDTO.getTradeId())
.from(payDTO.getFrom())
.to(payDTO.getTo())
.figure(payDTO.getFigure())
......
......@@ -46,7 +46,7 @@ public class TempServiceImpl implements TempService {
.to(Integer.valueOf(toUser))
.figure(Integer.valueOf(figure))
.tradeNo(UUID.randomUUID().toString().replaceAll("-", ""))
.tradeId(12345)
.tradeId("12345")
.pwd("noCheckPwd")
.remark(PayRemarkEnum.toString(PayRemarkEnum.FREIGHT_TO_OWNER.getValue()))
.build();
......
......@@ -20,6 +20,7 @@ import com.clx.performance.param.mq.BreakContractOwnerRuleAddMqParam;
import com.clx.performance.service.breakcontract.BreakContractMqHandlerService;
import com.clx.performance.service.breakcontract.BreakContractSettlementLogService;
import com.clx.performance.service.impl.UniqueOrderNumService;
import com.clx.performance.service.payment.PayService;
import com.msl.common.utils.LocalDateTimeUtils;
import com.msl.document.api.vo.ContractEvidenceRecordVo;
import lombok.extern.slf4j.Slf4j;
......@@ -29,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Map;
import java.util.Objects;
@Slf4j
@Service
......@@ -54,6 +56,9 @@ public class BreakContractMqHandlerServiceImpl implements BreakContractMqHandler
@Autowired
private UniqueOrderNumService uniqueOrderNumService;
@Autowired
private PayService payService;
@Transactional(rollbackFor = Exception.class)
@Override
public void ownerRuleAdd(BreakContractOwnerRuleAddMqParam mq) {
......@@ -108,7 +113,7 @@ public class BreakContractMqHandlerServiceImpl implements BreakContractMqHandler
settlement.setChildNo(detail.getChildNo());
settlement.setFigure(detail.getFigure());
settlement.setBreakContractRemark(detail.getBreakContractRemark());
settlement.setSettleStatus(BreakContractSettlementDriverEnum.SettleStatus.NO.getCode());
settlement.setSettleStatus(BreakContractSettlementDriverEnum.SettleStatus.YES.getCode());
settlement.setCreateBy(detail.getCreateBy());
settlement.setCreateName(detail.getCreateName());
settlement.setSettlePlatform(BreakContractSettlementDriverEnum.SettlePlatform.MSL.getCode());
......@@ -119,6 +124,9 @@ public class BreakContractMqHandlerServiceImpl implements BreakContractMqHandler
breakContractSettlementDriverDao.saveEntity(settlement);
// 支付
pay(settlement);
//保存结算单日志----创建结算单
breakContractSettlementLogService.saveBreakSettlementLog(settlementNo,
BreakContractSettlementLogEnum.Type.CREATE_SETTLEMENT.getCode(),BreakContractSettlementLogEnum.Type.CREATE_SETTLEMENT.getMsg(),
......@@ -130,4 +138,21 @@ public class BreakContractMqHandlerServiceImpl implements BreakContractMqHandler
LocalDateTimeUtils.convertLocalDateTimeToString(LocalDateTime.now(), LocalDateTimeUtils.DATE_DAY));
}
/**
* 支付
*/
private void pay(BreakContractSettlementDriver settlement){
// 车主
if (Objects.equals(settlement.getBreakContractPartyType(), BreakContractSettlementDriverEnum.BreakContractPartyType.DRIVER.getCode())){
payService.driverPay(settlement.getSettlementNo(), settlement.getDriverUserNo(), settlement.getFigure().intValue());
}
// 平台
else if (Objects.equals(settlement.getBreakContractPartyType(), BreakContractSettlementDriverEnum.BreakContractPartyType.PLATFORM.getCode())) {
payService.payDriver(settlement.getSettlementNo(), settlement.getDriverUserNo(), settlement.getFigure().intValue());
}
}
}
package com.clx.performance.service.impl.payment;
import com.clx.performance.config.MslPaymentConfig;
import com.clx.performance.enums.PayRemarkEnum;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.param.pc.payment.PayParam;
import com.clx.performance.service.PaymentService;
import com.clx.performance.service.payment.PayService;
import com.clx.user.vo.feign.DriverInfoFeignVo;
import com.msl.common.enums.ResultCodeEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class PayServiceImpl implements PayService {
@Autowired
private DriverService driverService;
@Autowired
private PaymentService paymentService;
@Autowired
private MslPaymentConfig mslPaymentConfig;
/**
* 司机支付平台
*/
@Override
public void driverPay(String settlementNo, Long driverUserNo, Integer figure) {
DriverInfoFeignVo driverInfoFeignVo = driverService.getDriverInfo(driverUserNo).orElseThrow(ResultCodeEnum.FAIL);
pay(driverInfoFeignVo.getWalletCode(), mslPaymentConfig.getTransportWalletCode(), figure, settlementNo, PayRemarkEnum.toString(PayRemarkEnum.COMPENSATION_TO_DRIVER.getValue()));
}
/**
* 平台支付司机
*/
@Override
public void payDriver(String settlementNo, Long driverUserNo, Integer figure) {
DriverInfoFeignVo driverInfoFeignVo = driverService.getDriverInfo(driverUserNo).orElseThrow(ResultCodeEnum.FAIL);
pay(mslPaymentConfig.getTransportWalletCode(), driverInfoFeignVo.getWalletCode(), figure, settlementNo, PayRemarkEnum.toString(PayRemarkEnum.COMPENSATION_TO_DRIVER.getValue()));
}
/**
* 支付
*/
private void pay(Integer walletCodeFrom, Integer walletCodeTo, Integer figure, String tradeNo, String remark){
PayParam noCheckPwd = PayParam.builder()
.from(walletCodeFrom)
.to(walletCodeTo)
.figure(figure)
.tradeNo(tradeNo)
.tradeId(tradeNo)
.pwd("noCheckPwd")
.remark(remark)
.build();
paymentService.paymentWallet(noCheckPwd);
}
}
package com.clx.performance.service.payment;
public interface PayService {
void driverPay(String settlementNo, Long driverUserNo, Integer figure);
void payDriver(String settlementNo, Long driverUserNo, Integer figure);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论