diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/store/impl/PreAllocationRecordServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/store/impl/PreAllocationRecordServiceImpl.java index 76e618077..cf3c06b44 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/store/impl/PreAllocationRecordServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/store/impl/PreAllocationRecordServiceImpl.java @@ -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 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 diff --git a/coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java b/coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java index 76e9bf4fc..61266ab01 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java @@ -688,7 +688,7 @@ public class XxlJobHandler { int pageSize = CommonConstants.BATCH_SIZE; while (hasNext) { PageHelper.startPage(pageNum, pageSize); - List list = walletTradeDAO.getPayingOrder(WalletTradeModuleEnum.STANDARD_STORE.getModule(), 1); + List list = walletTradeDAO.getPayingOrder(WalletTradeModuleEnum.TRANSFER.getModule(), 1); hasNext = list.size() >= pageSize; if (CollectionUtils.isEmpty(list)) { break;