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")