diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java b/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java index 922a4c43d..de8f8c64e 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java @@ -1903,26 +1903,59 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid client.put("company_name_acn", client.getString("company_name") + " (ABN " + client.getString("abn") + ")"); } - List clientRate = clientRateMapper.latestConfig(client.getIntValue("client_id"), null); - if (CollectionUtils.isEmpty(clientRate)) { +// List clientRate = clientRateMapper.latestConfig(client.getIntValue("client_id"), null); +// if (CollectionUtils.isEmpty(clientRate)) { +// throw new BadRequestException("The Partner's Rate is not config!"); +// } +// clientRate.forEach((p) -> { +// String rate_name = p.getString("rate_name"); +// if ("Wechat".equals(rate_name)) { +// client.put("wechat_rate", p.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); +// client.put("clean", "T+" + p.getString("clean_days")); +// client.put("clean_days", p.getString("clean_days")); +// } else if ("Alipay".equals(rate_name)) { +// client.put("alipay_rate", p.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); +// } else if ("Bestpay".equals(rate_name)) { +// client.put("bestpay_rate", p.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); +// } else if ("jd".equals(rate_name)) { +// client.put("jd_rate", p.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); +// } else if ("AlipayOnline".equals(rate_name)) { +// client.put("alipay_online_rate", p.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); +// } +// }); + + + JSONObject weChatRate = merchantInfoProvider.clientCurrentRate(client.getIntValue("client_id"), new Date(), "Wechat"); + if (weChatRate == null) { throw new BadRequestException("The Partner's Rate is not config!"); } - clientRate.forEach((p) -> { - String rate_name = p.getString("rate_name"); - if ("Wechat".equals(rate_name)) { - client.put("wechat_rate", p.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); - client.put("clean", "T+" + p.getString("clean_days")); - client.put("clean_days", p.getString("clean_days")); - } else if ("Alipay".equals(rate_name)) { - client.put("alipay_rate", p.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); - } else if ("Bestpay".equals(rate_name)) { - client.put("bestpay_rate", p.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); - } else if ("jd".equals(rate_name)) { - client.put("jd_rate", p.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); - } else if ("AlipayOnline".equals(rate_name)) { - client.put("alipay_online_rate", p.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); - } - }); + client.put("wechat_rate", weChatRate.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); + client.put("clean", "T+" + weChatRate.getString("clean_days")); + client.put("clean_days", weChatRate.getString("clean_days")); + + try { + JSONObject alipayRate = merchantInfoProvider.clientCurrentRate(client.getIntValue("client_id"), new Date(), "Alipay"); + if (alipayRate != null) { + client.put("alipay_rate", alipayRate.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); + } + + JSONObject bestPayRate = merchantInfoProvider.clientCurrentRate(client.getIntValue("client_id"), new Date(), "Bestpay"); + if (bestPayRate != null) { + client.put("bestpay_rate", bestPayRate.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); + } + + JSONObject jdRate = merchantInfoProvider.clientCurrentRate(client.getIntValue("client_id"), new Date(), "jd"); + if (jdRate != null) { + client.put("jd_rate", jdRate.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); + } + + JSONObject alipayOnlineRate = merchantInfoProvider.clientCurrentRate(client.getIntValue("client_id"), new Date(), "AlipayOnline"); + if (alipayOnlineRate != null) { + client.put("alipay_online_rate", alipayOnlineRate.getBigDecimal("rate_value").setScale(2, BigDecimal.ROUND_DOWN)); + } + } catch (Exception ignored) { + // do nothing + } JSONObject account = getBankAccountByClientId(client.getIntValue("client_id")); if (account == null || account.size() <= 0) {