From f375a9f9dbe754e6bb69d10ee182c5bc776f0a27 Mon Sep 17 00:00:00 2001 From: Chopper Date: Fri, 28 Jan 2022 16:13:56 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=89=A3=E5=87=8F?= =?UTF-8?q?=E5=89=8D=EF=BC=8C=E5=BA=93=E5=AD=98=E5=88=A4=E5=AE=9A=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E9=97=AE=E9=A2=98=EF=BC=8C=E8=BF=9B=E8=A1=8C=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/lili/event/impl/StockUpdateExecute.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/consumer/src/main/java/cn/lili/event/impl/StockUpdateExecute.java b/consumer/src/main/java/cn/lili/event/impl/StockUpdateExecute.java index ec18b31f..eb8ed3d7 100644 --- a/consumer/src/main/java/cn/lili/event/impl/StockUpdateExecute.java +++ b/consumer/src/main/java/cn/lili/event/impl/StockUpdateExecute.java @@ -154,14 +154,11 @@ public class StockUpdateExecute implements OrderStatusChangeEvent { * @param stocks */ private void checkStocks(List stocks, OrderDetailVO order) { - for (int i = 0; i < stocks.size(); i++) { - if (null == stocks.get(i)) { - initSkuCache(order.getOrderItems()); - initPromotionCache(order.getOrderItems()); - return; - } - + if (order.getOrderItems().size() == stocks.size()) { + return; } + initSkuCache(order.getOrderItems()); + initPromotionCache(order.getOrderItems()); } /** From 64dbe6708ac1c751d47a4b2dc1e2370968e2f07c Mon Sep 17 00:00:00 2001 From: Chopper Date: Tue, 8 Feb 2022 16:11:27 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=9F=AD=E4=BF=A1=E6=A8=A1=E7=89=88?= =?UTF-8?q?=E6=BC=94=E7=A4=BA=E7=AB=99=E7=82=B9=E6=93=8D=E4=BD=9C=E9=99=90?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sms/SmsTemplateManagerController.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/manager-api/src/main/java/cn/lili/controller/sms/SmsTemplateManagerController.java b/manager-api/src/main/java/cn/lili/controller/sms/SmsTemplateManagerController.java index f9beef26..9b9aa0e5 100644 --- a/manager-api/src/main/java/cn/lili/controller/sms/SmsTemplateManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/sms/SmsTemplateManagerController.java @@ -1,5 +1,6 @@ package cn.lili.controller.sms; +import cn.lili.common.aop.annotation.DemoSite; import cn.lili.common.enums.ResultUtil; import cn.lili.common.vo.PageVO; import cn.lili.common.vo.ResultMessage; @@ -29,21 +30,24 @@ public class SmsTemplateManagerController { @ApiOperation(value = "新增短信模板") @PostMapping + @DemoSite public ResultMessage save(@Valid SmsTemplate smsTemplate) { smsTemplateService.addSmsTemplate(smsTemplate); return ResultUtil.success(); } @ApiOperation(value = "删除短信模板") - @ApiImplicitParam(name = "id", value = "短信模板ID", required = true, paramType = "path") - @DeleteMapping("/{id}") - public ResultMessage delete(@PathVariable("id") String id) { - smsTemplateService.deleteSmsTemplate(id); + @ApiImplicitParam(name = "templateCode", value = "短信模板CODE", required = true, paramType = "query") + @DeleteMapping + @DemoSite + public ResultMessage delete(String templateCode) { + smsTemplateService.deleteSmsTemplate(templateCode); return ResultUtil.success(); } @ApiOperation(value = "查询短信模板状态") @PutMapping("/querySmsSign") + @DemoSite public ResultMessage querySmsSign() { smsTemplateService.querySmsTemplate(); return ResultUtil.success(); @@ -51,6 +55,7 @@ public class SmsTemplateManagerController { @ApiOperation(value = "修改短信模板") @PutMapping("/modifySmsTemplate") + @DemoSite public ResultMessage modifySmsTemplate(@Valid SmsTemplate smsTemplate) { smsTemplateService.modifySmsTemplate(smsTemplate); return ResultUtil.success(); From a4ee4df71bc5320a8400b2794ff07d995cc875e3 Mon Sep 17 00:00:00 2001 From: zhenghao <1321288662@qq.com> Date: Wed, 9 Feb 2022 12:56:38 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=A2=84=E5=AD=98?= =?UTF-8?q?=E6=AC=BE=E4=BA=8B=E5=8A=A1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- framework/pom.xml | 6 +++++ .../kit/plugin/wallet/WalletPlugin.java | 22 +++++++++++++++---- pom.xml | 1 + 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/framework/pom.xml b/framework/pom.xml index 7b6af4cb..5990b777 100644 --- a/framework/pom.xml +++ b/framework/pom.xml @@ -143,6 +143,12 @@ jasypt-spring-boot-starter ${jasypt-version} + + + org.redisson + redisson + ${redisson} + com.aliyun diff --git a/framework/src/main/java/cn/lili/modules/payment/kit/plugin/wallet/WalletPlugin.java b/framework/src/main/java/cn/lili/modules/payment/kit/plugin/wallet/WalletPlugin.java index 56dad469..86c31727 100644 --- a/framework/src/main/java/cn/lili/modules/payment/kit/plugin/wallet/WalletPlugin.java +++ b/framework/src/main/java/cn/lili/modules/payment/kit/plugin/wallet/WalletPlugin.java @@ -19,6 +19,9 @@ import cn.lili.modules.wallet.entity.dto.MemberWalletUpdateDTO; import cn.lili.modules.wallet.entity.enums.DepositServiceTypeEnum; import cn.lili.modules.wallet.service.MemberWalletService; import lombok.extern.slf4j.Slf4j; +import org.redisson.Redisson; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -57,9 +60,11 @@ public class WalletPlugin implements Payment { @Autowired private CashierSupport cashierSupport; + @Autowired + private RedissonClient redisson; + @Override public ResultMessage h5pay(HttpServletRequest request, HttpServletResponse response, PayParam payParam) { - savePaymentLog(payParam); return ResultUtil.success(ResultCode.PAY_SUCCESS); } @@ -113,9 +118,18 @@ public class WalletPlugin implements Payment { * @param payParam 支付参数 */ private void savePaymentLog(PayParam payParam) { - //获取支付收银参数 - CashierParam cashierParam = cashierSupport.cashierParam(payParam); - this.callBack(payParam, cashierParam); + //同一个会员如果在不同的客户端使用预存款支付,会存在同时支付,无法保证预存款的正确性,所以对会员加锁 + RLock lock = redisson.getLock(UserContext.getCurrentUser().getId() + ""); + lock.lock(); + try { + //获取支付收银参数 + CashierParam cashierParam = cashierSupport.cashierParam(payParam); + this.callBack(payParam, cashierParam); + } catch (Exception e) { + throw e; + } finally { + lock.unlock(); + } } @Override diff --git a/pom.xml b/pom.xml index 30e18428..003e84e7 100644 --- a/pom.xml +++ b/pom.xml @@ -29,6 +29,7 @@ 3.0.0 2.9.10 1.18.22 + 3.5.5 4.5.18 3.11.1 2.0.8