feat:费用类型

This commit is contained in:
suzhuhong
2026-04-21 19:20:36 +08:00
parent 46937eacc7
commit 2d22aca884
2 changed files with 29 additions and 8 deletions

View File

@@ -57,6 +57,7 @@ import com.cool.store.service.order.MiniStoreOrderService;
import com.cool.store.service.store.PreAllocationRecordService;
import com.cool.store.service.wallet.WalletApiService;
import com.cool.store.utils.*;
import com.cool.store.utils.poi.constant.Constants;
import com.cool.store.vo.order.MiniStoreOrderDetailVO;
import com.cool.store.vo.order.PreAllocationRecordVO;
import com.sun.xml.bind.v2.TODO;
@@ -300,6 +301,7 @@ public class PreAllocationRecordServiceImpl implements PreAllocationRecordServic
try {
batchTransferResult = walletApiService.batchTransfer(batchTransferRequest);
} catch (Exception e) {
log.error("batchTransfer:",e);
throw new ServiceException(ErrorCodeEnum.THIRD_API_ERROR.getCode(), "支付失败:" + e.getMessage());
}
// 11. 处理分账结果
@@ -751,32 +753,51 @@ public class PreAllocationRecordServiceImpl implements PreAllocationRecordServic
if (StringUtils.isEmpty(payNo)){
payNo = GenerateNoUtil.generateMillsNoWithRandom();
}
AccountTransferDTO accountTransferDTO ;
BatchTransferDTO batchTransferDTO ;
try {
accountTransferDTO = walletPayInfoService.accountPay(record.getExpenseType(), record.getPayAmount(),
record.getPayeeCode(), accountInfoDTO.getAccountNo(), payNo, transRequest.getRemark());
Integer walletType = 2;
BatchTransferRequest.TransDataRequest transDataRequest = new BatchTransferRequest.TransDataRequest();
transDataRequest.setReqNo(payNo);
transDataRequest.setCompanyCode(record.getPayeeCode());
transDataRequest.setAmount(record.getPayAmount().toPlainString());
transDataRequest.setRemark(transRequest.getRemark());
WalletFeeItemEnum feeItem = WalletFeeItemEnum.getByExpenseType(record.getExpenseType());
if (feeItem == null) {
throw new ServiceException(ErrorCodeEnum.NONSUPPORT_EXPENSE_TYPE);
}
transDataRequest.setFeeItemId(feeItem.getFeeItemId());
BatchTransferRequest transReq= new BatchTransferRequest(walletType, shopInfo.getStoreId(), null,0, Arrays.asList(transDataRequest));
batchTransferDTO = walletApiService.batchTransfer(transReq);
}catch (Exception e){
//分账失败 释放锁
redisUtil.unlock(lockKey);
log.error("confirmSplitOrder ",e);
throw new ServiceException(ErrorCodeEnum.ERROR_MESSAGE,e.getMessage());
}
BatchTransferDTO.TransDataRequest transDataRequest = new BatchTransferDTO.TransDataRequest() ;
if (batchTransferDTO!=null){
List<BatchTransferDTO.TransDataRequest> transArray = batchTransferDTO.getTransArray();
if (CollectionUtils.isNotEmpty(transArray)){
transDataRequest = transArray.get(Constants.ZERO_INTEGER);
}
}
record.setAllocationStatus(AllocationPayStatusEnum.PAYING.getStatus());
record.setPayNo(payNo);
record.setRemark(transRequest.getRemark());
//先改为分账中
preAllocationRecordDAO.updateByPrimaryKeySelective(record);
WalletTradeDO walletTradeDO = new WalletTradeDO();
walletTradeDO.setPayStatus(accountTransferDTO.getTradeStatus());
walletTradeDO.setPayStatus(AllocationPayStatusEnum.PAYING.getStatus());
walletTradeDO.setModule(TRANSFER.getModule());
walletTradeDO.setRemark(transRequest.getRemark());
walletTradeDO.setPayAmount(new BigDecimal(accountTransferDTO.getAmount()));
walletTradeDO.setPayAmount(new BigDecimal(transDataRequest.getAmount()));
walletTradeDO.setPayTime(new Date());
walletTradeDO.setPayNo(record.getPayNo());
walletTradeDO.setTradeId(String.valueOf(accountTransferDTO.getTradeId()));
walletTradeDO.setTradeId(String.valueOf(transDataRequest.getTradeId()));
walletTradeDO.setType(TradeTypeEnum.ADD_BY_HAND.getStatus());
walletTradeDAO.insertSelective(walletTradeDO);
return null;
return Boolean.TRUE;
}
@Override

View File

@@ -688,7 +688,7 @@ public class XxlJobHandler {
int pageSize = CommonConstants.BATCH_SIZE;
while (hasNext) {
PageHelper.startPage(pageNum, pageSize);
List<WalletTradeDO> list = walletTradeDAO.getPayingOrder(WalletTradeModuleEnum.STANDARD_STORE.getModule(), 1);
List<WalletTradeDO> list = walletTradeDAO.getPayingOrder(WalletTradeModuleEnum.TRANSFER.getModule(), 1);
hasNext = list.size() >= pageSize;
if (CollectionUtils.isEmpty(list)) {
break;