提交 51b5e4ba authored 作者: huyufan's avatar huyufan

Merge remote-tracking branch 'origin/v6.5_transport_open_20231115' into test

......@@ -33,6 +33,7 @@ import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
/**
* @author kavin
......@@ -44,7 +45,7 @@ import java.util.function.BiConsumer;
@Slf4j
public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriverRunningWaterRecordService, InitializingBean {
private final static Map<Integer, BiConsumer<Long, BigDecimal>> strategyMap = new HashMap<>();
private final static Map<Integer, Consumer<SettlementDriverDetail>> strategyMap = new HashMap<>();
private final NetworkDriverRunningWaterRecordDao networkDriverRunningWaterRecordDao;
......@@ -68,14 +69,14 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void generateSettlementRunningWaterRecord(Long userNo, BigDecimal money) {
public void generateSettlementRunningWaterRecord(SettlementDriverDetail settlementDriverDetail) {
log.info("运单同步网络货运生成司机运单结算流水");
NetworkDriverAccount networkDriverAccount = networkDriverAccountDao.getOneByField(NetworkDriverAccount::getDriverUserNo, userNo).get();
NetworkDriverAccount networkDriverAccount = networkDriverAccountDao.getOneByField(NetworkDriverAccount::getDriverUserNo, settlementDriverDetail.getDriverUserNo()).get();
log.info("查询出NetworkDriverAccount{}", JSONUtil.parse(networkDriverAccount));
NetworkDriverAccount build = NetworkDriverAccount.builder().id(networkDriverAccount.getId())
.usableBalance(money)
.usableBalance(settlementDriverDetail.getPrepayFreight())
.frozenBalance(BigDecimal.ZERO)
.accountBalance(money).build();
.accountBalance(settlementDriverDetail.getPrepayFreight()).build();
while (true) {
NetworkDriverAccount account = networkDriverAccountDao.getEntityByKey(build.getId()).get();
build.setModifiedTime(account.getModifiedTime());
......@@ -85,7 +86,7 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
account = networkDriverAccountDao.getEntityByKey(build.getId()).get();
NetworkDriverRunningWaterRecord entity = NetworkDriverRunningWaterRecord.builder()
.usableBalance(account.getUsableBalance())
.alterationBalance(money).accountBalance(account.getAccountBalance())
.alterationBalance(settlementDriverDetail.getPrepayFreight()).accountBalance(account.getAccountBalance())
.frozenBalance(account.getFrozenBalance()).createBy("系统")
.fundType(NetworkDriverAccountEnum.FundType.INCOME.getCode())
.fundTypeMsg(NetworkDriverAccountEnum.FundType.INCOME.getMsg())
......@@ -110,14 +111,14 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
* @param money
*/
@Override
public void generateCaseOutFrozenRunningWaterRecord(Long userNo, BigDecimal money) {
public void generateCaseOutFrozenRunningWaterRecord(SettlementDriverDetail settlementDriverDetail) {
log.info("运单同步网络货运后司机运单提现冻结流水");
NetworkDriverAccount networkDriverAccount = networkDriverAccountDao.getOneByField(NetworkDriverAccount::getDriverUserNo, userNo).get();
NetworkDriverAccount networkDriverAccount = networkDriverAccountDao.getOneByField(NetworkDriverAccount::getDriverUserNo, settlementDriverDetail.getDriverUserNo()).get();
log.info("查询出NetworkDriverAccount{}", JSONUtil.parse(networkDriverAccount));
NetworkDriverAccount build = NetworkDriverAccount.builder().id(networkDriverAccount.getId())
.frozenBalance(money)
.frozenBalance(settlementDriverDetail.getPrepayFreight())
.accountBalance(BigDecimal.ZERO)
.usableBalance(money).build();
.usableBalance(settlementDriverDetail.getPrepayFreight()).build();
while (true) {
NetworkDriverAccount account = networkDriverAccountDao.getEntityByKey(build.getId()).get();
build.setModifiedTime(account.getModifiedTime());
......@@ -127,7 +128,7 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
account = networkDriverAccountDao.getEntityByKey(build.getId()).get();
NetworkDriverRunningWaterRecord entity = NetworkDriverRunningWaterRecord.builder()
.usableBalance(account.getUsableBalance())
.alterationBalance(money).accountBalance(account.getAccountBalance())
.alterationBalance(settlementDriverDetail.getPrepayFreight()).accountBalance(account.getAccountBalance())
.frozenBalance(account.getFrozenBalance()).createBy("系统")
.fundType(NetworkDriverAccountEnum.FundType.FROZEN.getCode())
.fundTypeMsg(NetworkDriverAccountEnum.FundType.FROZEN.getMsg())
......@@ -146,13 +147,13 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
}
@Override
public void generateCaseOutSuccessRunningWaterRecord(Long userNo, BigDecimal money) {
NetworkDriverAccount networkDriverAccount = networkDriverAccountDao.getOneByField(NetworkDriverAccount::getDriverUserNo, userNo).get();
public void generateCaseOutSuccessRunningWaterRecord(SettlementDriverDetail settlementDriverDetail) {
NetworkDriverAccount networkDriverAccount = networkDriverAccountDao.getOneByField(NetworkDriverAccount::getDriverUserNo, settlementDriverDetail.getDriverUserNo()).get();
NetworkDriverAccount build = NetworkDriverAccount.builder().id(networkDriverAccount.getId())
.frozenBalance(money.negate())
.frozenBalance(settlementDriverDetail.getPrepayFreight().negate())
.usableBalance(BigDecimal.ZERO)
.accountBalance(money).build();
.accountBalance(settlementDriverDetail.getPrepayFreight()).build();
while (true) {
NetworkDriverAccount account = networkDriverAccountDao.getEntityByKey(build.getId()).get();
build.setModifiedTime(account.getModifiedTime());
......@@ -161,7 +162,7 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
account = networkDriverAccountDao.getEntityByKey(build.getId()).get();
NetworkDriverRunningWaterRecord entity = NetworkDriverRunningWaterRecord.builder()
.usableBalance(account.getUsableBalance())
.alterationBalance(money).accountBalance(account.getAccountBalance())
.alterationBalance(settlementDriverDetail.getPrepayFreight()).accountBalance(account.getAccountBalance())
.frozenBalance(account.getFrozenBalance()).createBy("系统")
.fundType(NetworkDriverAccountEnum.FundType.EXPENDITURE.getCode())
.fundTypeMsg(NetworkDriverAccountEnum.FundType.EXPENDITURE.getMsg())
......@@ -180,11 +181,11 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
}
@Override
public void generateNetworkDriverRunningWaterRecord(Long userNo, BigDecimal money, Integer runningWaterType) {
public void generateNetworkDriverRunningWaterRecord(SettlementDriverDetail settlementDriverDetail, Integer runningWaterType) {
if (NetworkDriverAccountEnum.RunningWaterStatus.SETTLEMENT.getCode().equals(runningWaterType)) {
log.info("执行生成网络货运钱包相关,参数userNo:{},money{},runningWaterType:{}", userNo, money, runningWaterType);
strategyMap.get(NetworkDriverAccountEnum.RunningWaterStatus.SETTLEMENT.getCode()).accept(userNo, money);
strategyMap.get(NetworkDriverAccountEnum.RunningWaterStatus.CASE_OUT_FROZEN.getCode()).accept(userNo, money);
log.info("执行生成网络货运钱包相关,参数userNo:{},money{},runningWaterType:{}", settlementDriverDetail.getDriverUserNo(), settlementDriverDetail.getPrepayFreight(), runningWaterType);
strategyMap.get(NetworkDriverAccountEnum.RunningWaterStatus.SETTLEMENT.getCode()).accept(settlementDriverDetail);
strategyMap.get(NetworkDriverAccountEnum.RunningWaterStatus.CASE_OUT_FROZEN.getCode()).accept(settlementDriverDetail);
}
}
......
......@@ -123,7 +123,7 @@ public class SettlementServiceImpl implements SettlementService {
BigDecimal subtract = frozen.subtract(takeOut);
log.info("冻结预付运费:{}, 扣除的流水总和:{}", frozen, takeOut);
invoiceType = SettlementOwnerEnum.InvoiceType.ONLINE.getCode();
settlementDriverDetail.setPrepayFreight(ans);
//冻结的预付运费为0 或者 此刻预付运费也可能为0,那么就不用生成扣除相关流水逻辑
if (subtract.compareTo(BigDecimal.ZERO) <= 0 || ans.compareTo(BigDecimal.ZERO) == 0) {
settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO);
......@@ -135,7 +135,7 @@ public class SettlementServiceImpl implements SettlementService {
try {
//网络货运钱包账户
networkDriverRunningWaterRecordService.generateNetworkDriverRunningWaterRecord(
settlementDriverDetail.getDriverUserNo(), settlementDriverDetail.getPrepayFreight(),
settlementDriverDetail,
NetworkDriverAccountEnum.RunningWaterStatus.SETTLEMENT.getCode()
);
//生成提现记录
......
......@@ -19,13 +19,13 @@ public interface NetworkDriverRunningWaterRecordService {
IPage<NetworkDriverRunningWaterRecordVO> networkDriverRunningWaterRecordList(PageNetworkAccountInfoListParam param);
void generateSettlementRunningWaterRecord(Long userNo, BigDecimal money);
void generateSettlementRunningWaterRecord(SettlementDriverDetail settlementDriverDetail);
void generateCaseOutFrozenRunningWaterRecord(Long userNo, BigDecimal money);
void generateCaseOutFrozenRunningWaterRecord(SettlementDriverDetail settlementDriverDetail);
void generateCaseOutSuccessRunningWaterRecord(Long userNo, BigDecimal money);
void generateCaseOutSuccessRunningWaterRecord(SettlementDriverDetail settlementDriverDetail);
void generateNetworkDriverRunningWaterRecord(Long userNo, BigDecimal money, Integer runningWaterType);
void generateNetworkDriverRunningWaterRecord(SettlementDriverDetail settlementDriverDetail, Integer runningWaterType);
IPage<APPNetworkDriverRunningWaterRecordVO> pageFrozenList(NetworkDriverPageParam param);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论