From 5e27b81a357628574ed385fd71c0526dbbb731ad Mon Sep 17 00:00:00 2001 From: khalil Date: Sat, 11 Jan 2025 02:17:38 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=81=E7=A4=BC-=E9=92=B1=E5=8C=85-=E6=89=A3?= =?UTF-8?q?=E9=92=BB-=E5=90=88=E5=B9=B6=E9=80=BB=E8=BE=91=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lucky/SuperLuckyIncomeAllotService.java | 2 +- .../service/purse/UserPurseService.java | 57 ++----------------- 2 files changed, 5 insertions(+), 54 deletions(-) diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/SuperLuckyIncomeAllotService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/SuperLuckyIncomeAllotService.java index 013fd3b80..9f484bca2 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/SuperLuckyIncomeAllotService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/lucky/SuperLuckyIncomeAllotService.java @@ -70,7 +70,7 @@ public class SuperLuckyIncomeAllotService { public void send(long senderUid, Long receiverUid, Long roomUid, BigDecimal income, BillObjTypeEnum billObjTypeEnum, int giftId, int everyGiftNum, long giftTotalGoldNum, Date sendGiftTime) { - userPurseService.addGoldWithTx(receiverUid, income.doubleValue(), billObjTypeEnum, + userPurseService.addGoldWithoutTx(receiverUid, income.doubleValue(), billObjTypeEnum, (userPurse)-> billRecordService.insertGiftSendBillRecord(receiverUid, senderUid, roomUid, null, billObjTypeEnum, income.doubleValue(), giftId, everyGiftNum, giftTotalGoldNum, sendGiftTime, userPurse)); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/purse/UserPurseService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/purse/UserPurseService.java index 88a4745fb..21350e576 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/purse/UserPurseService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/purse/UserPurseService.java @@ -147,37 +147,10 @@ public class UserPurseService extends ServiceImpl { return SpringContextHolder.getBean(UserPurseService.class).subDiamond(uid, diamondNum, objTypeEnum, BusiStatus.PURSEMONEYNOTENOUGH, billConsumer); } - //@Frozen + @Frozen //@Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") public UserPurse subDiamondWithoutTx(Long uid, Double diamondNum, BillObjTypeEnum objTypeEnum, BusiStatus busiStatus, Consumer billConsumer) { - if (diamondNum <= 0d) { - throw new ServiceException(BusiStatus.AMOUNT_PARAM_ERROR); - } - - String desc = objTypeEnum.getDesc(); - UserPurse after = withLock(uid, RedisKey.lock_user_diamond, userPurse-> { - double restDiamond = DoubleUtil.sub(userPurse.getDiamonds(), diamondNum); - if (restDiamond < 0d){ - throw new ServiceException(busiStatus); - } - log.info("subDiamond 操作前,buss:{},userPurse:{}", desc, gson.toJson(userPurse)); - int ret = baseMapper.updateMinusDiamonds(uid,diamondNum); - boolean result = SqlHelper.retBool(ret); - if(!result) { - throw new ServiceException(BusiStatus.SERVERBUSY); - } - userPurse.setDiamonds(DoubleUtil.sub(userPurse.getDiamonds(), diamondNum)); - log.info("subDiamond 操作后,buss:{},userPurse:{}", desc, gson.toJson(userPurse)); - return userPurse; - }); - - if (null != billConsumer) { - billConsumer.accept(after); - } else { - billRecordService.insertGeneralBillRecord(uid, objTypeEnum, diamondNum, after); - } - - return after; + return subDiamond(uid, diamondNum, objTypeEnum, busiStatus, billConsumer); } @Frozen @@ -295,30 +268,8 @@ public class UserPurseService extends ServiceImpl { } //@Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public UserPurse addGoldWithTx(Long uid, Double goldNum, BillObjTypeEnum objTypeEnum, Consumer billConsumer) { - if (goldNum <= 0d) { - throw new ServiceException(BusiStatus.AMOUNT_PARAM_ERROR); - } - String desc = objTypeEnum.getDesc(); - UserPurse after = withLock(uid, RedisKey.lock_user_gold, userPurse -> { - log.info("addGold 操作前,buss:{},userPurse:{}", desc, gson.toJson(userPurse)); - int ret = baseMapper.updateAddGolds(uid,goldNum); - boolean result = SqlHelper.retBool(ret); - if(!result) { - throw new ServiceException(BusiStatus.SERVERBUSY); - } - userPurse.setGolds(DoubleUtil.add(goldNum, userPurse.getGolds())); - log.info("addGold 操作后,buss:{},userPurse:{}", desc, gson.toJson(userPurse)); - return userPurse; - }); - - if (null != billConsumer) { - billConsumer.accept(after); - } else { - billRecordService.insertGeneralBillRecord(uid, objTypeEnum, goldNum, after); - } - - return after; + public UserPurse addGoldWithoutTx(Long uid, Double goldNum, BillObjTypeEnum objTypeEnum, Consumer billConsumer) { + return addGold(uid, goldNum, objTypeEnum, billConsumer); } //@Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager")