From e00d6f413e9bae9dd135544bc55f4941b4a5ed1e Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Tue, 25 Jun 2024 14:02:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=BB=E9=94=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/AccountRechargeServiceImpl.java | 107 +++++++++--------- 1 file changed, 56 insertions(+), 51 deletions(-) diff --git a/src/main/java/cn/com/tenlion/operator/service/accountrecharge/impl/AccountRechargeServiceImpl.java b/src/main/java/cn/com/tenlion/operator/service/accountrecharge/impl/AccountRechargeServiceImpl.java index 9a7c766..670dfad 100644 --- a/src/main/java/cn/com/tenlion/operator/service/accountrecharge/impl/AccountRechargeServiceImpl.java +++ b/src/main/java/cn/com/tenlion/operator/service/accountrecharge/impl/AccountRechargeServiceImpl.java @@ -53,6 +53,8 @@ import java.util.*; @Service public class AccountRechargeServiceImpl extends DefaultBaseService implements IAccountRechargeService { + private final Object lock = new Object(); + @Autowired private IAccountRechargeDao accountRechargeDao; @@ -277,64 +279,67 @@ public class AccountRechargeServiceImpl extends DefaultBaseService implements IA @Override public AccountRechargePayDTO saveAccount(String thirdParty, AccountRechargeVO accountRechargeVO) { - String userId = StringUtils.isEmpty(accountRechargeVO.getUserId()) ? userUtil.getUserId(null) : accountRechargeVO.getUserId(); - // 查看该用户今日的记录, 超过50条不能再创建 - Integer count = accountRechargeDao.getTodayByAccountId(userId); - if (count > 50) { - throw new SaveException("禁止操作"); - } - accountRechargeVO.setThirdParty(thirdParty); - accountRechargeVO.setAccountId(userId); - accountRechargeVO.setRechargeCheck("0"); - accountRechargeVO.setReconciliationStatus("0"); - Integer totalMoney = PayUtil.buiderMoney(accountRechargeVO.getRechargeMoney()); + AccountRechargePayDTO payDTO = new AccountRechargePayDTO(); + synchronized (lock) { + String userId = StringUtils.isEmpty(accountRechargeVO.getUserId()) ? userUtil.getUserId(null) : accountRechargeVO.getUserId(); + // 查看该用户今日的记录, 超过50条不能再创建 + Integer count = accountRechargeDao.getTodayByAccountId(userId); + if (count > 50) { + throw new SaveException("禁止操作"); + } + accountRechargeVO.setThirdParty(thirdParty); + accountRechargeVO.setAccountId(userId); + accountRechargeVO.setRechargeCheck("0"); + accountRechargeVO.setReconciliationStatus("0"); + Integer totalMoney = PayUtil.buiderMoney(accountRechargeVO.getRechargeMoney()); /* if (totalMoney < 10 || totalMoney > 200000) { // 最大2000块,最小1毛 throw new SaveException("金额输入错误"); }*/ - AccountRechargePayDTO payDTO = new AccountRechargePayDTO(); - Map params = HashMapUtil.beanToMap(accountRechargeVO); - if ("微信".equals(thirdParty)) { - String accountRechargeId = getUUID("wx"); - params.put("rechargeType", "2"); - params.put("accountRechargeId", accountRechargeId); - params.put("rechargeFinalTime", DateUtil.getTime()); + Map params = HashMapUtil.beanToMap(accountRechargeVO); + if ("微信".equals(thirdParty)) { - String brcode = WXPay.createPay(accountRechargeId, totalMoney, ProjectConfigUtil.getText("RechargePayTitle")); + String accountRechargeId = getUUID("wx"); + params.put("rechargeType", "2"); + params.put("accountRechargeId", accountRechargeId); + params.put("rechargeFinalTime", DateUtil.getTime()); - payDTO.setAccountRechargeId(accountRechargeId); - payDTO.setThirdParty(thirdParty); - payDTO.setThirdPartyPayUrl(brcode); + String brcode = WXPay.createPay(accountRechargeId, totalMoney, ProjectConfigUtil.getText("RechargePayTitle")); + + payDTO.setAccountRechargeId(accountRechargeId); + payDTO.setThirdParty(thirdParty); + payDTO.setThirdPartyPayUrl(brcode); + } + + if ("支付宝".equals(thirdParty)) { + + String accountRechargeId = getUUID("zfb"); + params.put("rechargeType", "2"); + params.put("accountRechargeId", accountRechargeId); + params.put("rechargeFinalTime", DateUtil.getTime()); + + String brcode = ALiPay.createPay(accountRechargeId, totalMoney, ProjectConfigUtil.getText("RechargePayTitle")); + + payDTO.setAccountRechargeId(accountRechargeId); + payDTO.setThirdParty(thirdParty); + payDTO.setThirdPartyPayUrl(brcode); + } + + if ("对公转账".equals(thirdParty)) { + String accountRechargeId = getUUID("oto"); + params.put("rechargeType", "1"); + params.put("accountRechargeId", accountRechargeId); + + payDTO.setAccountRechargeId(accountRechargeId); + } + String currentDate = DateUtil.getTime(); + params.put("creator", userId); + params.put("gmtCreate", currentDate); + params.put("modifier", userId); + params.put("gmtModified", currentDate); + params.put("isDelete", 0); + accountRechargeDao.save(params); } - - if ("支付宝".equals(thirdParty)) { - - String accountRechargeId = getUUID("zfb"); - params.put("rechargeType", "2"); - params.put("accountRechargeId", accountRechargeId); - params.put("rechargeFinalTime", DateUtil.getTime()); - - String brcode = ALiPay.createPay(accountRechargeId, totalMoney, ProjectConfigUtil.getText("RechargePayTitle")); - - payDTO.setAccountRechargeId(accountRechargeId); - payDTO.setThirdParty(thirdParty); - payDTO.setThirdPartyPayUrl(brcode); - } - - if ("对公转账".equals(thirdParty)) { - String accountRechargeId = getUUID("oto"); - params.put("rechargeType", "1"); - params.put("accountRechargeId", accountRechargeId); - - payDTO.setAccountRechargeId(accountRechargeId); - } - String currentDate = DateUtil.getTime(); - params.put("creator", userId); - params.put("gmtCreate", currentDate); - params.put("modifier", userId); - params.put("gmtModified", currentDate); - params.put("isDelete", 0); - accountRechargeDao.save(params); return payDTO; }