feat:费用类型
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user