Browse Source

游戏中奖修改

kk 2 months ago
parent
commit
1c393a9f4d

+ 116 - 9
game-business/src/main/java/com/game/business/controller/AppGameBettingController.java

@@ -1,13 +1,11 @@
 package com.game.business.controller;
 package com.game.business.controller;
 
 
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.IdUtil;
+import com.alibaba.fastjson.JSON;
 import com.game.business.domain.*;
 import com.game.business.domain.*;
 import com.game.business.task.AppAgentGameBettingTask;
 import com.game.business.task.AppAgentGameBettingTask;
-import com.game.business.vo.AppGameBettingCountVO;
-import com.game.business.vo.AppGameBettingDetailsCountVO;
+import com.game.business.vo.*;
 import com.game.business.service.*;
 import com.game.business.service.*;
-import com.game.business.vo.AppGameBettingVO;
-import com.game.business.vo.AppUserGameBettingCountVO;
 import com.game.common.annotation.Anonymous;
 import com.game.common.annotation.Anonymous;
 import com.game.common.constant.finance.FinTranType1;
 import com.game.common.constant.finance.FinTranType1;
 import com.game.common.constant.finance.FinTranType2;
 import com.game.common.constant.finance.FinTranType2;
@@ -80,6 +78,10 @@ public class AppGameBettingController extends BaseController{
             return HttpRet.fail("用户ID为空。");
             return HttpRet.fail("用户ID为空。");
         }
         }
 
 
+        if(gameBetting.getBettingGameType() == null){
+            return HttpRet.fail("游戏投注类型为空");
+        }
+
         AppGameClassify appGameClassify = appGameClassifyService.selectAppGameClassifyById(gameBetting.getClassId());
         AppGameClassify appGameClassify = appGameClassifyService.selectAppGameClassifyById(gameBetting.getClassId());
         if(appGameClassify == null){
         if(appGameClassify == null){
             return HttpRet.fail("游戏平台不存在。");
             return HttpRet.fail("游戏平台不存在。");
@@ -102,12 +104,32 @@ public class AppGameBettingController extends BaseController{
             return HttpRet.fail("游戏已封盘,无法下单。");
             return HttpRet.fail("游戏已封盘,无法下单。");
         }
         }
 
 
-        AppGameItem appGameItem = appGameItemService.selectAppGameItemByGameIdAndItemLocation(appGame.getId(), gameBetting.getBettingItem());
-        if(appGameItem == null){
-            return HttpRet.fail("游戏选项不存在,无法下单。");
+        // 单选
+        if(gameBetting.getBettingGameType() == 0){
+            AppGameItem appGameItem = appGameItemService.selectAppGameItemByGameIdAndItemLocation(appGame.getId(), gameBetting.getBettingItem());
+            if(appGameItem == null){
+                return HttpRet.fail("游戏选项不存在,无法下单。");
+            }
+
+            gameBetting.setBettingMultiple(Double.parseDouble(appGameItem.getItemMultiple() + ""));
+        // 多选
+        }else if(gameBetting.getBettingGameType() == 1 || gameBetting.getBettingGameType() == 2){
+            List<AppGameItemBettingVO> itemList = JSON.parseArray(gameBetting.getBettingItem(), AppGameItemBettingVO.class);
+            if(itemList == null || itemList.isEmpty()){
+                return HttpRet.fail("游戏选项不存在,无法下单。");
+            }
+            for(AppGameItemBettingVO item : itemList){
+                AppGameItem appGameItem = appGameItemService.selectAppGameItemByGameIdAndItemLocation(appGame.getId(), item.getBettingItem());
+                if(appGameItem == null){
+                    return HttpRet.fail("游戏选项不存在,无法下单。");
+                }
+            }
+            // 写死的倍数
+            if(gameBetting.getBettingGameType() == 1){
+                gameBetting.setBettingMultiple(getMultiple(itemList.size()));
+            }
         }
         }
 
 
-        gameBetting.setBettingMultiple(appGameItem.getItemMultiple());
 //        String[] timeArry = appGame.getGameTime().substring(0, 5).split(":");
 //        String[] timeArry = appGame.getGameTime().substring(0, 5).split(":");
 //        int m = Integer.parseInt(timeArry[1]);
 //        int m = Integer.parseInt(timeArry[1]);
 //
 //
@@ -335,11 +357,96 @@ public class AppGameBettingController extends BaseController{
     @Anonymous
     @Anonymous
     @PostMapping(value = "/listHistory")
     @PostMapping(value = "/listHistory")
     @ApiOperation(value = "游戏投注记录", notes = "游戏投注记录")
     @ApiOperation(value = "游戏投注记录", notes = "游戏投注记录")
-    public HttpRetPageArr<AppUserGameBettingCountVO> listHistory(@RequestParam(name = "gameId") Long gameId , @RequestParam(name = "bettingType", required = false) Integer bettingType)
+    public HttpRetPageArr<AppUserGameBettingCountVO> listHistory(@RequestParam(name = "gameId") Long gameId , @RequestParam(name = "bettingType", required = false) Integer bettingType
+            , @RequestParam(name = "bettingGameType", required = false) Integer bettingGameType)
     {
     {
         startPage();
         startPage();
         Long userId = SecurityUtils.getUserId();
         Long userId = SecurityUtils.getUserId();
         List<AppUserGameBettingCountVO> list = appGameBettingService.getUserCount(gameId, userId, bettingType);
         List<AppUserGameBettingCountVO> list = appGameBettingService.getUserCount(gameId, userId, bettingType);
+
+        if(bettingGameType == null){
+            bettingGameType = 0;
+        }
+        if(bettingType == null){
+            bettingType = 0;
+        }
+
+        if(list != null && !list.isEmpty()){
+
+            if(bettingGameType == 0){
+                for (int i = 0; i < list.size(); i++) {
+                    AppUserGameBettingCountVO appUserGameBettingCountVO = list.get(i);
+                    List<AppUserGameBettingDetailsCountVO> detailsCountVOList = appGameBettingService.getUserBettingItemCount(gameId, appUserGameBettingCountVO.getGameDate(), userId, bettingType);
+                    if(detailsCountVOList == null){
+                        detailsCountVOList  = new ArrayList<>();
+                    }
+                    appUserGameBettingCountVO.setDetailsCountVOList(detailsCountVOList);
+                }
+            }else if(bettingGameType == 1){
+                for (int i = 0; i < list.size(); i++) {
+
+                    AppUserGameBettingCountVO appUserGameBettingCountVO = list.get(i);
+                    List<AppGameBetting> bettingList = appGameBettingService.getUserBettingItem(gameId, appUserGameBettingCountVO.getGameDate(), userId, bettingType);
+                    if(bettingList == null){
+                        bettingList  = new ArrayList<>();
+                    }
+                    Map<String, AppUserGameBettingDetailsCountVO> itemMap = new HashMap<>();
+                    for (int j = 0; j < bettingList.size(); j++) {
+                        AppGameBetting appGameBetting =  bettingList.get(j);
+                        List<AppGameItemBettingVO> itemList = JSON.parseArray(appGameBetting.getBettingItem(), AppGameItemBettingVO.class);
+
+                        for(AppGameItemBettingVO item : itemList){
+                            if(itemMap.containsKey(item.getBettingItem())){
+                                AppUserGameBettingDetailsCountVO appUserGameBettingDetailsCountVO = itemMap.get(item.getBettingItem());
+                                appUserGameBettingDetailsCountVO.setOrderAmount(appUserGameBettingDetailsCountVO.getOrderAmount() + item.getBettingAmount());
+                                if(appGameBetting.getIsWinning() == 1){
+                                    appUserGameBettingDetailsCountVO.setWinAmount(appUserGameBettingDetailsCountVO.getWinAmount() + (item.getBettingAmount() * getMultiple(itemList.size())));
+                                }else if(appGameBetting.getIsWinning() == 2){
+                                    appUserGameBettingDetailsCountVO.setLoseAmount(appUserGameBettingDetailsCountVO.getLoseAmount() + item.getBettingAmount());
+                                }
+                                itemMap.put(item.getBettingItem(), appUserGameBettingDetailsCountVO);
+                            }else{
+                                AppUserGameBettingDetailsCountVO appUserGameBettingDetailsCountVO = new AppUserGameBettingDetailsCountVO();
+                                appUserGameBettingDetailsCountVO.setBettingTtem(item.getBettingItem());
+                                appUserGameBettingDetailsCountVO.setOrderAmount(appUserGameBettingDetailsCountVO.getOrderAmount() + item.getBettingAmount());
+                                if(appGameBetting.getIsWinning() == 1){
+                                    appUserGameBettingDetailsCountVO.setWinAmount(appUserGameBettingDetailsCountVO.getWinAmount() + item.getBettingAmount() * getMultiple(itemList.size()));
+                                }else if(appGameBetting.getIsWinning() == 2){
+                                    appUserGameBettingDetailsCountVO.setLoseAmount(appUserGameBettingDetailsCountVO.getLoseAmount() + item.getBettingAmount());
+                                }
+                                itemMap.put(item.getBettingItem(), appUserGameBettingDetailsCountVO);
+                            }
+                        }
+                    }
+                    List<AppUserGameBettingDetailsCountVO> detailsCountVOList = new ArrayList<>();
+                    Set<String> set = itemMap.keySet();
+                    Iterator<String> iterator = set.iterator();
+                    while (iterator.hasNext()){
+                        AppUserGameBettingDetailsCountVO appUserGameBettingDetailsCountVO = itemMap.get(iterator.next());
+                        detailsCountVOList.add(appUserGameBettingDetailsCountVO);
+                    }
+                    appUserGameBettingCountVO.setDetailsCountVOList(detailsCountVOList);
+                }
+            }
+        }
         return HttpRetPageArr.success("查询成功",getDataTable(list));
         return HttpRetPageArr.success("查询成功",getDataTable(list));
     }
     }
+
+    private double getMultiple(int size){
+        double itemMultiple;
+        switch (size){
+            case 1:
+                itemMultiple = 8.5;
+                break;
+            case 2:
+                itemMultiple = 4.0;
+                break;
+            case 3:
+                itemMultiple = 2.0;
+                break;
+            default:
+                itemMultiple = 1.0;
+        }
+        return itemMultiple;
+    }
 }
 }

+ 7 - 2
game-business/src/main/java/com/game/business/domain/AppGameBetting.java

@@ -61,15 +61,20 @@ public class AppGameBetting {
     @ApiModelProperty(value = "投注类型:0:余额 1:金币")
     @ApiModelProperty(value = "投注类型:0:余额 1:金币")
     private Integer bettingType;
     private Integer bettingType;
 
 
+    @Excel(name = "投注游戏类型 0:单选 1:多选")
+    @TableField(value = "betting_game_type")
+    @ApiModelProperty(value = "投注游戏类型 0:单选 1:写死多选:2:自由多选")
+    private Integer bettingGameType;
+
     @Excel(name = "投注选项")
     @Excel(name = "投注选项")
     @TableField(value = "betting_item")
     @TableField(value = "betting_item")
-    @ApiModelProperty(value = "投注选项")
+    @ApiModelProperty(value = "投注选项(单选:为游戏选项值,多选:为字符串json格式{bettingItem:1,bettingAmount:10.0,bettingCount:1,bettingMultiple:1.0})")
     private String bettingItem;
     private String bettingItem;
 
 
     @Excel(name = "投注选项倍数")
     @Excel(name = "投注选项倍数")
     @TableField(value = "betting_multiple")
     @TableField(value = "betting_multiple")
     @ApiModelProperty(value = "投注选项倍数")
     @ApiModelProperty(value = "投注选项倍数")
-    private Integer bettingMultiple;
+    private Double bettingMultiple;
 
 
     @Excel(name = "投注金额")
     @Excel(name = "投注金额")
     @TableField(value = "betting_amount")
     @TableField(value = "betting_amount")

+ 2 - 0
game-business/src/main/java/com/game/business/mapper/AppGameBettingMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.game.business.domain.AppGameBetting;
 import com.game.business.domain.AppGameBetting;
 import com.game.business.vo.AppGameBettingDetailsCountVO;
 import com.game.business.vo.AppGameBettingDetailsCountVO;
 import com.game.business.vo.AppUserGameBettingCountVO;
 import com.game.business.vo.AppUserGameBettingCountVO;
+import com.game.business.vo.AppUserGameBettingDetailsCountVO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
 import java.util.List;
 import java.util.List;
@@ -13,4 +14,5 @@ public interface AppGameBettingMapper extends BaseMapper<AppGameBetting> {
 
 
     List<AppGameBettingDetailsCountVO> getCount(@Param(value = "strDate") String strDate, @Param(value = "userId") Long userId,  @Param(value = "bettingType") Integer bettingType);
     List<AppGameBettingDetailsCountVO> getCount(@Param(value = "strDate") String strDate, @Param(value = "userId") Long userId,  @Param(value = "bettingType") Integer bettingType);
     List<AppUserGameBettingCountVO> getUserCount(@Param(value = "gameId") Long gameId, @Param(value = "userId") Long userId, @Param(value = "bettingType") Integer bettingType);
     List<AppUserGameBettingCountVO> getUserCount(@Param(value = "gameId") Long gameId, @Param(value = "userId") Long userId, @Param(value = "bettingType") Integer bettingType);
+    List<AppUserGameBettingDetailsCountVO> getUserBettingItemCount(@Param(value = "gameId") Long gameId, @Param(value = "gameDate") String gameDate, @Param(value = "userId") Long userId, @Param(value = "bettingType") Integer bettingType);
 }
 }

+ 5 - 0
game-business/src/main/java/com/game/business/service/IAppGameBettingService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.game.business.domain.AppGameBetting;
 import com.game.business.domain.AppGameBetting;
 import com.game.business.vo.AppGameBettingDetailsCountVO;
 import com.game.business.vo.AppGameBettingDetailsCountVO;
 import com.game.business.vo.AppUserGameBettingCountVO;
 import com.game.business.vo.AppUserGameBettingCountVO;
+import com.game.business.vo.AppUserGameBettingDetailsCountVO;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -19,6 +20,10 @@ public interface IAppGameBettingService extends IService<AppGameBetting> {
 
 
     List<AppUserGameBettingCountVO> getUserCount(Long gameId, Long userId, Integer bettingType);
     List<AppUserGameBettingCountVO> getUserCount(Long gameId, Long userId, Integer bettingType);
 
 
+    List<AppUserGameBettingDetailsCountVO> getUserBettingItemCount(Long gameId, String gameDate, Long userId, Integer bettingType);
+
+    List<AppGameBetting> getUserBettingItem(Long gameId, String gameDate, Long userId, Integer bettingType);
+
     List<AppGameBetting> selectListByGameId(Long gameId, Long userId, Integer isWinning, String strDate, Integer bettingType);
     List<AppGameBetting> selectListByGameId(Long gameId, Long userId, Integer isWinning, String strDate, Integer bettingType);
 
 
     /**
     /**

+ 17 - 0
game-business/src/main/java/com/game/business/service/impl/AppGameBettingServiceImpl.java

@@ -8,6 +8,7 @@ import com.game.business.vo.AppGameBettingDetailsCountVO;
 import com.game.business.mapper.AppGameBettingMapper;
 import com.game.business.mapper.AppGameBettingMapper;
 import com.game.business.service.IAppGameBettingService;
 import com.game.business.service.IAppGameBettingService;
 import com.game.business.vo.AppUserGameBettingCountVO;
 import com.game.business.vo.AppUserGameBettingCountVO;
+import com.game.business.vo.AppUserGameBettingDetailsCountVO;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -53,6 +54,22 @@ public class AppGameBettingServiceImpl extends ServiceImpl<AppGameBettingMapper,
         return appGameBettingMapper.getUserCount(gameId, userId, bettingType);
         return appGameBettingMapper.getUserCount(gameId, userId, bettingType);
     }
     }
 
 
+    @Override
+    public List<AppUserGameBettingDetailsCountVO> getUserBettingItemCount(Long gameId, String gameDate, Long userId, Integer bettingType) {
+        return appGameBettingMapper.getUserBettingItemCount(gameId, gameDate, userId, bettingType);
+    }
+
+    @Override
+    public List<AppGameBetting> getUserBettingItem(Long gameId, String gameDate, Long userId, Integer bettingType) {
+        LambdaQueryWrapper<AppGameBetting> queryWrapper = Wrappers.lambdaQuery();;
+        queryWrapper.eq(AppGameBetting::getGameId, gameId);
+        queryWrapper.eq(AppGameBetting::getGameDate, gameDate);
+        queryWrapper.eq(AppGameBetting::getUserId, userId);
+        queryWrapper.eq(AppGameBetting::getBettingType, bettingType);
+        queryWrapper.eq(AppGameBetting::getBettingGameType, 1);
+        return appGameBettingMapper.selectList(queryWrapper);
+    }
+
     @Override
     @Override
     public List<AppGameBetting> selectListByGameId(Long gameId, Long userId, Integer isWinning, String strDate, Integer bettingType) {
     public List<AppGameBetting> selectListByGameId(Long gameId, Long userId, Integer isWinning, String strDate, Integer bettingType) {
         LambdaQueryWrapper<AppGameBetting> queryWrapper = Wrappers.lambdaQuery();;
         LambdaQueryWrapper<AppGameBetting> queryWrapper = Wrappers.lambdaQuery();;

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

@@ -6,9 +6,11 @@ import com.alibaba.fastjson2.JSONObject;
 import com.game.business.domain.*;
 import com.game.business.domain.*;
 import com.game.business.dto.AppItemCountDTO;
 import com.game.business.dto.AppItemCountDTO;
 import com.game.business.service.*;
 import com.game.business.service.*;
+import com.game.business.vo.AppGameItemBettingVO;
 import com.game.common.constant.finance.FinTranType1;
 import com.game.common.constant.finance.FinTranType1;
 import com.game.common.constant.finance.FinTranType2;
 import com.game.common.constant.finance.FinTranType2;
 import com.game.common.constant.finance.FinTranType3;
 import com.game.common.constant.finance.FinTranType3;
+import com.game.common.core.domain.HttpRet;
 import com.game.common.core.redis.RedisCache;
 import com.game.common.core.redis.RedisCache;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Async;
@@ -158,6 +160,7 @@ public class AppGameBettingTask {
         AppGameClassify appGameClassify = appGameClassifyService.getByCode(classCode);
         AppGameClassify appGameClassify = appGameClassifyService.getByCode(classCode);
         if(appGameClassify == null){
         if(appGameClassify == null){
 //            System.out.println("开奖游戏平台不存在:" + classCode);
 //            System.out.println("开奖游戏平台不存在:" + classCode);
+            return;
         }
         }
 
 
         List<AppGame> appGameList = appGameService.selectAppGameByClassId(appGameClassify.getId());
         List<AppGame> appGameList = appGameService.selectAppGameByClassId(appGameClassify.getId());
@@ -293,10 +296,36 @@ public class AppGameBettingTask {
             for(int j = 0; j < bettingItems.length; j++){
             for(int j = 0; j < bettingItems.length; j++){
                 String bettingItemStr = bettingItems[j];
                 String bettingItemStr = bettingItems[j];
 
 
-                if(!appGameBetting.getBettingItem().equals(bettingItemStr)){
-                    appGameBetting.setIsWinning(2);
-                    appGameBettingService.updateById(appGameBetting);
-                    continue;
+                double bettingAmount = appGameBetting.getBettingAmount() * appGameBetting.getBettingMultiple();
+
+                if(appGameBetting.getBettingGameType() == 0){
+                    if(!appGameBetting.getBettingItem().equals(bettingItemStr)){
+                        appGameBetting.setIsWinning(2);
+                        appGameBettingService.updateById(appGameBetting);
+                        continue;
+                    }
+                }else if(appGameBetting.getBettingGameType() == 1 || appGameBetting.getBettingGameType() == 2){
+                    List<AppGameItemBettingVO> itemList = JSON.parseArray(appGameBetting.getBettingItem(), AppGameItemBettingVO.class);
+                    if(itemList == null || itemList.isEmpty()){
+                        appGameBetting.setIsWinning(2);
+                        appGameBettingService.updateById(appGameBetting);
+                        continue;
+                    }
+                    List<String> bettingItemList = itemList.stream().map(AppGameItemBettingVO::getBettingItem).collect(Collectors.toList());
+                    if(!bettingItemList.contains(bettingItemStr)){
+                        appGameBetting.setIsWinning(2);
+                        appGameBettingService.updateById(appGameBetting);
+                        continue;
+                    }
+
+                    if(appGameBetting.getBettingGameType() == 2){
+                        for (int k = 0; k < itemList.size(); k++) {
+                            AppGameItemBettingVO appGameItemBettingVO = itemList.get(k);
+                            if(appGameItemBettingVO.getBettingItem().equals(bettingItemStr)){
+                                bettingAmount = appGameBetting.getBettingAmount() * appGameItemBettingVO.getBettingMultiple();
+                            }
+                        }
+                    }
                 }
                 }
 
 
                 AppUser appUser = appUserService.selectAppUserByUserid(appGameBetting.getUserId());
                 AppUser appUser = appUserService.selectAppUserByUserid(appGameBetting.getUserId());
@@ -306,8 +335,6 @@ public class AppGameBettingTask {
                     continue;
                     continue;
                 }
                 }
 
 
-                double bettingAmount = appGameBetting.getBettingAmount() * appGameBetting.getBettingMultiple();
-
                 // 更新用户余额
                 // 更新用户余额
                 if(appGameBetting.getBettingType() == 0){
                 if(appGameBetting.getBettingType() == 0){
                     appUser.setDiamondCoin(appUser.getDiamondCoin() + bettingAmount );
                     appUser.setDiamondCoin(appUser.getDiamondCoin() + bettingAmount );

+ 23 - 0
game-business/src/main/java/com/game/business/vo/AppGameItemBettingVO.java

@@ -0,0 +1,23 @@
+package com.game.business.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "游戏投注多选选项", description = "游戏投注多选选项")
+public class AppGameItemBettingVO {
+
+    @ApiModelProperty(value = "投注选项")
+    private String bettingItem;
+
+    @ApiModelProperty(value = "投注金额")
+    private Double bettingAmount;
+
+    @ApiModelProperty(value = "投注数量")
+    private Integer bettingCount;
+
+    @ApiModelProperty(value = "投注倍数")
+    private Double bettingMultiple;
+
+}

+ 4 - 0
game-business/src/main/java/com/game/business/vo/AppUserGameBettingCountVO.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 
 
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 
 
 @Data
 @Data
 @ApiModel(value = "游戏投注记录", description = "游戏投注记录")
 @ApiModel(value = "游戏投注记录", description = "游戏投注记录")
@@ -30,4 +31,7 @@ public class AppUserGameBettingCountVO {
 
 
     @ApiModelProperty(value = "当前开奖时间")
     @ApiModelProperty(value = "当前开奖时间")
     private Date gameRecordDate;
     private Date gameRecordDate;
+
+    @ApiModelProperty(value = "投注选项统计")
+    List<AppUserGameBettingDetailsCountVO> detailsCountVOList;
 }
 }

+ 23 - 0
game-business/src/main/java/com/game/business/vo/AppUserGameBettingDetailsCountVO.java

@@ -0,0 +1,23 @@
+package com.game.business.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "游戏投注记录明细", description = "游戏投注记录明细")
+public class AppUserGameBettingDetailsCountVO {
+
+    @ApiModelProperty(value = "投注选项")
+    private String bettingTtem;
+
+    @ApiModelProperty(value = "下单金额")
+    private double orderAmount;
+
+    @ApiModelProperty(value = "赢")
+    private double winAmount;
+
+    @ApiModelProperty(value = "输")
+    private double loseAmount;
+
+}

+ 11 - 0
game-business/src/main/resources/mapper/business/AppGameBettingMapper.xml

@@ -31,4 +31,15 @@
         where agl.is_lottery = 1
         where agl.is_lottery = 1
         order by tmp.gameDate desc
         order by tmp.gameDate desc
     </select>
     </select>
+
+    <select id="getUserBettingItemCount" resultType="com.game.business.vo.AppUserGameBettingDetailsCountVO">
+          select
+              betting_item as bettingTtem,
+              sum(betting_amount) as orderAmount,
+              sum(case when is_winning = 1 then (betting_amount * betting_multiple) else 0.00 end) as winAmount,
+              sum(case when is_winning = 2 then (betting_amount) else 0.00 end) as loseAmount
+          from app_game_betting where game_id = #{gameId} game_date = #{gameDate}
+          and user_id = #{userId} and betting_type = #{bettingType} and betting_game_type = 0
+          group by betting_item
+    </select>
 </mapper>
 </mapper>