Explorar el Código

update user amount

kk hace 1 mes
padre
commit
a381dbf25e

+ 11 - 8
game-business/src/main/java/com/game/business/controller/AppGameBettingController.java

@@ -2,6 +2,7 @@ package com.game.business.controller;
 
 import cn.hutool.core.util.IdUtil;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.game.business.domain.*;
 import com.game.business.task.AppAgentGameBettingTask;
 import com.game.business.vo.*;
@@ -20,6 +21,7 @@ import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.*;
@@ -63,8 +65,8 @@ public class AppGameBettingController extends BaseController{
     @Anonymous
     @PostMapping(value = "/create")
     @ApiOperation(value = "游戏下注", notes = "游戏下注")
-    public HttpRet<Double> betting(@RequestBody AppGameBetting gameBetting)
-    {
+    @DSTransactional
+    public HttpRet<Double> betting(@RequestBody AppGameBetting gameBetting) throws Exception {
 
         if(gameBetting.getClassId() == null){
             return HttpRet.fail("游戏平台ID为空。");
@@ -189,11 +191,6 @@ public class AppGameBettingController extends BaseController{
         // 插入投注记录
         appGameBettingService.save(gameBetting);
 
-        // 分佣
-        if(gameBetting.getBettingType() == 0){
-            appAgentGameBettingTask.agentGameBettingTask(gameBetting);
-        }
-
         FinTranRecord finTranRecord = new FinTranRecord();
 
         //finTranRecord.setAfterCoin(appUser.getCoin());
@@ -247,7 +244,13 @@ public class AppGameBettingController extends BaseController{
         finTranRecord.setProCount(0L);
 
         finTranRecord.setOrderId(gameBetting.getId());
-        finTranRecordService.insertFinTranRecord(finTranRecord);
+        //finTranRecordService.insertFinTranRecord(finTranRecord);
+        appUserService.updateUserAmount(finTranRecord);
+
+        // 分佣
+        if(gameBetting.getBettingType() == 0){
+            appAgentGameBettingTask.agentGameBettingTask(gameBetting);
+        }
 
         return HttpRet.success("下注成功", appUser.getDiamondCoin());
     }

+ 1 - 2
game-business/src/main/java/com/game/business/controller/AppGameLotteryController.java

@@ -128,8 +128,7 @@ public class AppGameLotteryController extends BaseController{
 
     @PostMapping("/addLottery")
     @ApiOperation(value = "手动开奖", notes = "手动开奖")
-    public HttpRet<Boolean> addLottery(@RequestBody AppGameLottery appGameLottery)
-    {
+    public HttpRet<Boolean> addLottery(@RequestBody AppGameLottery appGameLottery) throws Exception {
 
         Long userId = SecurityUtils.getUserId();
 

+ 10 - 7
game-business/src/main/java/com/game/business/task/AppAgentGameBettingTask.java

@@ -1,6 +1,7 @@
 package com.game.business.task;
 
 import cn.hutool.core.util.IdUtil;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.game.business.domain.*;
 import com.game.business.service.*;
 import com.game.common.constant.finance.FinTranType1;
@@ -45,7 +46,7 @@ public class AppAgentGameBettingTask {
     private IAppUserCountService appUserCountService;
 
     @Async("asyncExecutor")
-    public void agentGameBettingTask(AppGameBetting appGameBetting) {
+    public void agentGameBettingTask(AppGameBetting appGameBetting) throws Exception {
 
         List<AppUserGameRecordCount> recordCountList = new ArrayList<>();
 
@@ -116,8 +117,8 @@ public class AppAgentGameBettingTask {
 
     }
 
-    @Transactional
-    public void commissionHandler(List<AppGameCommission> gameRateList, AppGameBetting appGameBetting, List<AppUserGameRecordCount> recordCountList){
+    @DSTransactional
+    public void commissionHandler(List<AppGameCommission> gameRateList, AppGameBetting appGameBetting, List<AppUserGameRecordCount> recordCountList) throws Exception {
 
         // 升序排序
         Collections.sort(gameRateList, Comparator.comparing(AppGameCommission::getGameRate));
@@ -245,12 +246,13 @@ public class AppAgentGameBettingTask {
             finTranRecord.setProCount(0L);
 
             finTranRecord.setOrderId(appGameBetting.getId());
-            finTranRecordService.insertFinTranRecord(finTranRecord);
+            //finTranRecordService.insertFinTranRecord(finTranRecord);
+            appUserService.updateUserAmount(finTranRecord);
         }
     }
 
-    @Transactional
-    public void liveCommissionHandler(AppGameBetting appGameBetting, List<AppUserGameRecordCount> recordCountList){
+    @DSTransactional
+    public void liveCommissionHandler(AppGameBetting appGameBetting, List<AppUserGameRecordCount> recordCountList) throws Exception {
 
         if(appGameBetting.getIsLive() == 0){
             return;
@@ -350,7 +352,8 @@ public class AppAgentGameBettingTask {
         finTranRecord.setProCount(0L);
 
         finTranRecord.setOrderId(appGameBetting.getId());
-        finTranRecordService.insertFinTranRecord(finTranRecord);
+        //finTranRecordService.insertFinTranRecord(finTranRecord);
+        appUserService.updateUserAmount(finTranRecord);
 
     }
 }

+ 6 - 3
game-business/src/main/java/com/game/business/task/AppGameBettingTask.java

@@ -3,6 +3,7 @@ package com.game.business.task;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.game.business.domain.*;
 import com.game.business.dto.AppItemCountDTO;
 import com.game.business.service.*;
@@ -51,7 +52,7 @@ public class AppGameBettingTask {
     private IAppUserCountService appUserCountService;
 
     @Async("asyncExecutor")
-    public void gameDataTask(String message, String gameCodeFinal){
+    public void gameDataTask(String message, String gameCodeFinal) throws Exception {
 
         JSONArray dataArry = JSONArray.parseArray(message);
 
@@ -284,7 +285,8 @@ public class AppGameBettingTask {
         redisCache.setCacheObject("G:GameCount:" + gameId, JSON.toJSONString(nowItemCountList));
     }
 
-    public List<String> gameBettingTask(Long classId, Long gameId, String gameDate, String bettingItem){
+    @DSTransactional
+    public List<String> gameBettingTask(Long classId, Long gameId, String gameDate, String bettingItem) throws Exception {
         List<String> userIds = new ArrayList<>();
         List<AppGameBetting> list = appGameBettingService.getIsWinning(classId, gameId, gameDate, 0);
 
@@ -433,7 +435,8 @@ public class AppGameBettingTask {
             finTranRecord.setProCount(0L);
 
             finTranRecord.setOrderId(appGameBetting.getId());
-            finTranRecordService.insertFinTranRecord(finTranRecord);
+            //finTranRecordService.insertFinTranRecord(finTranRecord);
+            appUserService.updateUserAmount(finTranRecord);
         }
         return userIds;
     }

+ 6 - 4
game-business/src/main/java/com/game/business/task/AppGameLotteryTask.java

@@ -2,6 +2,7 @@ package com.game.business.task;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson2.JSONArray;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.game.business.domain.*;
 import com.game.business.dto.AppItemCountDTO;
 import com.game.business.service.*;
@@ -39,7 +40,7 @@ public class AppGameLotteryTask {
     @Autowired
     private RedisCache redisCache;
 
-    public void updateLottery(AppGameLottery appGameLottery){
+    public void updateLottery(AppGameLottery appGameLottery) throws Exception {
 
         updateItme(appGameLottery.getGameId(), appGameLottery.getGameLotterySucc());
 
@@ -64,7 +65,8 @@ public class AppGameLotteryTask {
         }
     }
 
-    private void gameBettingTask(AppGameLottery appGameLottery){
+    @DSTransactional
+    private void gameBettingTask(AppGameLottery appGameLottery) throws Exception {
         // 获取未开奖的投注记录
         List<AppGameBetting> list = appGameBettingService.getIsWinning(appGameLottery.getClassId(), appGameLottery.getGameId(), appGameLottery.getGameDate(), 0);
 
@@ -198,8 +200,8 @@ public class AppGameLotteryTask {
                 finTranRecord.setProCount(0L);
 
                 finTranRecord.setOrderId(appGameBetting.getId());
-                finTranRecordService.insertFinTranRecord(finTranRecord);
-
+                //finTranRecordService.insertFinTranRecord(finTranRecord);
+                appUserService.updateUserAmount(finTranRecord);
             }
         }
     }

+ 3 - 2
game-business/src/main/java/com/game/business/task/AppUserLiveDividedTask.java

@@ -88,7 +88,7 @@ public class AppUserLiveDividedTask {
     }
 
     @Transactional
-    public void liveRateHandler(List<AppUserAgent> liveRateList, AppUserLiveDivided item){
+    public void liveRateHandler(List<AppUserAgent> liveRateList, AppUserLiveDivided item) throws Exception {
 
         // 升序排序
         Collections.sort(liveRateList, Comparator.comparing(AppUserAgent::getLiveRate));
@@ -206,7 +206,8 @@ public class AppUserLiveDividedTask {
             finTranRecord.setProCount(0L);
 
             finTranRecord.setOrderId(item.getId());
-            finTranRecordService.insertFinTranRecord(finTranRecord);
+            //finTranRecordService.insertFinTranRecord(finTranRecord);
+            appUserService.updateUserAmount(finTranRecord);
         }
 
         AppUserLiveDivided appUserLiveDivided = new AppUserLiveDivided();