|
|
|
@ -104,6 +104,10 @@ public class CashCollectionServiceImpl implements CashCollectionService { |
|
|
|
if (cashCollection.getPayTime() == null) { |
|
|
|
throw new IllegalArgumentException("付款时间不能为空"); |
|
|
|
} |
|
|
|
|
|
|
|
// 校验钱包 ID 和到账地区的对应关系 |
|
|
|
validateWalletAndMarket(cashCollection.getWalletId(), cashCollection.getReceivedMarket()); |
|
|
|
|
|
|
|
//生成订单号后半部分 |
|
|
|
String orderNumber = UUID.randomUUID().toString().replaceAll("-", ""); |
|
|
|
CashRecord cashRecord = new CashRecord(); |
|
|
|
@ -293,6 +297,9 @@ public class CashCollectionServiceImpl implements CashCollectionService { |
|
|
|
throw new IllegalArgumentException("付款时间不能为空"); |
|
|
|
} |
|
|
|
|
|
|
|
// 校验钱包 ID 和到账地区的对应关系 |
|
|
|
validateWalletAndMarket(cashRecord.getWalletId(), cashRecord.getReceivedMarket()); |
|
|
|
|
|
|
|
CashRecord status = cashCollectionMapper.selectByOrderCode(cashRecord.getOrderCode()); |
|
|
|
if (!status.getStatus().equals(5)) { |
|
|
|
throw new IllegalArgumentException("只允许编辑已撤回订单"); |
|
|
|
@ -665,4 +672,40 @@ public class CashCollectionServiceImpl implements CashCollectionService { |
|
|
|
|
|
|
|
return resultPageInfo; |
|
|
|
} |
|
|
|
/** |
|
|
|
* 校验钱包 ID 和到账地区的对应关系 |
|
|
|
* @param walletId 钱包 ID |
|
|
|
* @param receivedMarket 到账地区 ID |
|
|
|
*/ |
|
|
|
private void validateWalletAndMarket(Integer walletId, String receivedMarket) { |
|
|
|
if (walletId == null) { |
|
|
|
return; // 非金币充值不需要校验 |
|
|
|
} |
|
|
|
|
|
|
|
Map<Integer, String> walletMarketMap = new HashMap<>(); |
|
|
|
walletMarketMap.put(2, "13"); // 香港 |
|
|
|
walletMarketMap.put(3, "4"); // 新加坡 HC |
|
|
|
walletMarketMap.put(4, "5"); // 马来西亚 |
|
|
|
walletMarketMap.put(5, "4"); // 新加坡 CM |
|
|
|
walletMarketMap.put(6, "24016"); // 加拿大 |
|
|
|
walletMarketMap.put(7, "24018"); // 泰国 HS |
|
|
|
walletMarketMap.put(8, "24018"); // 泰国 HA |
|
|
|
walletMarketMap.put(9, "24022"); // 越南 HCM |
|
|
|
walletMarketMap.put(10, "24033");// 北京 |
|
|
|
|
|
|
|
// 钱包 ID=1 为历史钱包,无限制,不需要校验 |
|
|
|
if (walletId == 1) { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
String expectedMarket = walletMarketMap.get(walletId); |
|
|
|
if (expectedMarket == null) { |
|
|
|
throw new IllegalArgumentException("无效的钱包 ID: " + walletId); |
|
|
|
} |
|
|
|
|
|
|
|
if (!expectedMarket.equals(receivedMarket)) { |
|
|
|
String marketName = marketMapper.getMarketNameById(expectedMarket); |
|
|
|
throw new IllegalArgumentException("钱包 ID=" + walletId + " 对应的到账地区应为:" + marketName + "(" + expectedMarket + ")"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |