浏览代码

Merge branch 'dev' of GameCenter/game-center into master

shishaosong 1 年之前
父节点
当前提交
26692a15f8
共有 16 个文件被更改,包括 1033 次插入287 次删除
  1. 36 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/GameListController.java
  2. 7 1
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/RoleCombatRankingDTO.java
  3. 7 1
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/RoleRechargeRankingDTO.java
  4. 41 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GameListVO.java
  5. 0 6
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PlayerRoleDataVO.java
  6. 9 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IGameListService.java
  7. 111 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameListServiceImpl.java
  8. 222 1
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PlayerDataServiceImpl.java
  9. 551 243
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/RoleManageServiceImpl.java
  10. 9 2
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameGiftAddParam.java
  11. 5 2
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameGiftListParam.java
  12. 4 11
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/vo/GameGiftListVO.java
  13. 18 12
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/GameGiftServiceImpl.java
  14. 2 2
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/RoleAssignRecordServiceImpl.java
  15. 8 2
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/RoleGiftRecordServiceImpl.java
  16. 3 4
      game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/entity/GameGift.java

+ 36 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/GameListController.java

@@ -0,0 +1,36 @@
+package com.zanxiang.game.data.serve.controller;
+
+import com.zanxiang.erp.security.annotation.PreAuthorize;
+import com.zanxiang.game.data.serve.pojo.vo.GameListVO;
+import com.zanxiang.game.data.serve.service.IGameListService;
+import com.zanxiang.module.util.pojo.ResultVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author tianhua
+ * @time 2023/9/25
+ * @Description 游戏列表接口 查看所有游戏、父游戏、超父游戏列表(ZX_ONE)
+ **/
+@Api(tags = {"游戏展示列表"})
+@RestController
+@RequestMapping("/gameList")
+@Slf4j
+public class GameListController {
+
+    @Autowired
+    private IGameListService gameListService;
+
+    @ApiOperation(value = "所有游戏列表")
+    @PreAuthorize(permissionKey = "gameData:gameList:game")
+    @GetMapping("/list")
+    public ResultVO<GameListVO> getGameDataDay() {
+        return ResultVO.ok(gameListService.getGameList());
+    }
+
+}

+ 7 - 1
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/RoleCombatRankingDTO.java

@@ -30,9 +30,15 @@ public class RoleCombatRankingDTO extends BasePage {
     /**
      * 主游戏ID
      */
-    @ApiModelProperty(value = "主游戏ID")
+    @ApiModelProperty(value = "主游戏ID(父游戏)")
     private Long parentGameId;
 
+    /**
+     * 超父游戏ID
+     */
+    @ApiModelProperty(value = "超父游戏ID(超父游戏)")
+    private Long superParentGameId;
+
     /**
      * 区服ID(列表)
      */

+ 7 - 1
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/RoleRechargeRankingDTO.java

@@ -49,7 +49,13 @@ public class RoleRechargeRankingDTO extends BasePage {
      * 区服ID(列表)
      */
     @ApiModelProperty(value = "区服ID(列表)")
-    private List<Long> serverIds;
+    private List<String> serverIds;
+
+    /**
+     * 是否合服
+     */
+    @ApiModelProperty(value = "是否合服:true -> 合服 ; false -> 不合服")
+    private Boolean isMergeServer;
 
     /**
      * 角色名

+ 41 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/GameListVO.java

@@ -0,0 +1,41 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author tianhua
+ * @time 2023/9/25
+ * @Description 游戏列表VO
+ **/
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class GameListVO {
+
+    /**
+     * 游戏列表
+     */
+    @ApiModelProperty(value = "游戏列表")
+    private List<Map> gameList;
+
+    /**
+     * 父游戏列表
+     */
+    @ApiModelProperty(value = "父游戏列表")
+    private List<Map> parentGameList;
+
+    /**
+     * 超父游戏列表
+     */
+    @ApiModelProperty(value = "超父游戏列表")
+    private List<Map> superGameList;
+
+}

+ 0 - 6
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PlayerRoleDataVO.java

@@ -152,12 +152,6 @@ public class PlayerRoleDataVO {
     @ApiModelProperty(notes = "充值金额")
     private BigDecimal rechargeMoney;
 
-    /**
-     * 平台币余额
-     */
-    @ApiModelProperty(notes = "平台币余额")
-    private BigDecimal platformCoin;
-
     /**
      * 充值次数
      */

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IGameListService.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.service;
+
+import com.zanxiang.game.data.serve.pojo.vo.GameListVO;
+
+public interface IGameListService {
+
+    GameListVO getGameList();
+
+}

+ 111 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameListServiceImpl.java

@@ -0,0 +1,111 @@
+package com.zanxiang.game.data.serve.service.impl;
+
+import com.zanxiang.game.data.serve.pojo.vo.GameListVO;
+import com.zanxiang.game.data.serve.service.IGameListService;
+import lombok.extern.slf4j.Slf4j;
+import org.nutz.dao.Dao;
+import org.nutz.dao.Sqls;
+import org.nutz.dao.sql.Sql;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * @author tianhua
+ * @time 2023/9/25
+ * @Description
+ **/
+@Service
+@Slf4j
+public class GameListServiceImpl implements IGameListService {
+
+    @Autowired
+    private Dao dao;
+
+    @Override
+    public GameListVO getGameList() {
+        //查询游戏列表
+        Sql gameListSql = Sqls.create("""
+                SELECT
+                	id,
+                	game_name,
+                	parent_game_id,
+                	parent_game_name,
+                	super_game_id,
+                	super_game_name
+                FROM (
+                	SELECT
+                		a.source_system ,
+                		a.id,
+                		a.game_name,
+                		IFNULL(a.parent_id, a.id) as parent_game_id ,
+                		IFNULL(b.game_name, a.game_name ) as parent_game_name,
+                		IFNULL(a.super_game_id, a.id) as super_game_id ,
+                		IFNULL(c.name, a.game_name ) as super_game_name
+                	FROM dm_game_order.t_game a
+                	LEFT JOIN dm_game_order.t_game b
+                	on a.source_system = b.source_system AND a.parent_id = b.id
+                	LEFT JOIN dm_game_order.t_game_super c
+                	on a.source_system = c.source_system AND a.super_game_id = c.id
+                ) a
+                WHERE a.source_system = 'ZX_ONE'
+                GROUP BY id, game_name, parent_game_id, source_system, parent_game_name, super_game_id, super_game_name;
+                """);
+        gameListSql.setCallback(Sqls.callback.maps());
+        dao.execute(gameListSql);
+
+        //查询父游戏列表
+        Sql parentGameListSql = Sqls.create("""
+                SELECT
+                	parent_game_id,
+                	parent_game_name,
+                	super_game_id,
+                	super_game_name
+                FROM (
+                	SELECT
+                		a.source_system ,
+                		IFNULL(a.parent_id, a.id) as parent_game_id ,
+                		IFNULL(b.game_name, a.game_name ) as parent_game_name,
+                		IFNULL(a.super_game_id, a.id) as super_game_id ,
+                		IFNULL(c.name, a.game_name ) as super_game_name
+                	FROM dm_game_order.t_game a
+                	LEFT JOIN dm_game_order.t_game b
+                	on a.source_system = b.source_system AND a.parent_id = b.id
+                	LEFT JOIN dm_game_order.t_game_super c
+                	on a.source_system = c.source_system AND a.super_game_id = c.id
+                ) a
+                WHERE a.source_system = 'ZX_ONE'
+                GROUP BY parent_game_id, source_system, parent_game_name, super_game_id, super_game_name;
+                """);
+        parentGameListSql.setCallback(Sqls.callback.maps());
+        dao.execute(parentGameListSql);
+
+        //查询超父游戏列表
+        Sql superGameListSql = Sqls.create("""
+                SELECT
+                	super_game_id,
+                	super_game_name
+                FROM (
+                	SELECT
+                		a.source_system ,
+                		IFNULL(a.super_game_id, a.id) as super_game_id ,
+                		IFNULL(b.name, a.game_name ) as super_game_name
+                	FROM dm_game_order.t_game a
+                	LEFT JOIN dm_game_order.t_game_super b
+                	on a.source_system = b.source_system AND a.super_game_id = b.id
+                ) a
+                WHERE a.source_system = 'ZX_ONE'
+                GROUP BY super_game_id, source_system, super_game_name;
+                """);
+        superGameListSql.setCallback(Sqls.callback.maps());
+        dao.execute(superGameListSql);
+
+        return GameListVO.builder()
+                .gameList(gameListSql.getList(Map.class))
+                .parentGameList(parentGameListSql.getList(Map.class))
+                .superGameList(superGameListSql.getList(Map.class))
+                .build();
+    }
+
+}

+ 222 - 1
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PlayerDataServiceImpl.java

@@ -196,8 +196,122 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
      */
     @Override
     public Page<PlayerRoleDataVO> getPlayerRoleDataList(PlayerRoleDataListDTO dto) {
+        //查询条件
+        Criteria cri = Cnd.cri();
+        if (dto.getUserId() != null) {
+            cri.where().andEquals("user_id", dto.getUserId());
+        }
+        if (StringUtils.isNotBlank(dto.getUserName())) {
+            //玩家账号
+            cri.where().andEquals("user_name", dto.getUserName());
+        }
+        if (StringUtils.isNotBlank(dto.getNickname())) {
+            //玩家昵称
+            cri.where().andLike("nickName", dto.getNickname());
+        }
+        if (StringUtils.isNotBlank(dto.getRegIp())) {
+            //玩家注册IP
+            cri.where().andEquals("reg_ip", dto.getRegIp());
+        }
+        if (StringUtils.isNotBlank(dto.getServerName())) {
+            //游戏区服
+            cri.where().andLike("server_name", dto.getServerName());
+        }
+        if (StringUtils.isNotBlank(dto.getRoleName())) {
+            cri.where().andLike("role_name", dto.getRoleName());
+        }
+        if (dto.getCpId() != null) {
+            cri.where().andEquals("cp_id", dto.getCpId());
+        }
+        if (dto.getGameId() != null) {
+            cri.where().andEquals("game_id", dto.getGameId());
+        }
+        if (dto.getGameCategoryId() != null) {
+            //游戏应用类型
+            cri.where().andEquals("game_classify", dto.getGameCategoryId());
+        }
+        if (StringUtils.isNotBlank(dto.getAccountId())) {
+            //推广账号ID
+            cri.where().andEquals("account_id", dto.getAccountId());
+        }
+        if (dto.getChannelId() != null) {
+            //渠道ID
+            cri.where().andEquals("agent_id", dto.getChannelId());
+        }
+        if (StringUtils.isNotBlank(dto.getPitcherId())) {
+            cri.where().andEquals("pitcher_id", dto.getPitcherId());
+        }
+        if (StringUtils.isNotBlank(dto.getOs())) {
+            cri.where().andEquals("os", dto.getOs());
+        }
+        //判断是否充值
+        if (BooleanUtils.isFalse(dto.getIsRecharge())) {
+            //未充值 充值金额为0
+            cri.where().andEquals("recharge_money", 0);
+        }
+        if (BooleanUtils.isTrue(dto.getIsRecharge())) {
+            //充值金额大于0
+            cri.where().andNotEquals("recharge_money", 0);
+        }
+        if (dto.getVipLevel() != null) {
+            cri.where().andEquals("vip_level", dto.getVipLevel());
+        }
+        if (dto.getRoleLevelMin() != null) {
+            //玩家最小等级
+            cri.where().andGTE("role_level", dto.getRoleLevelMin());
+        }
+        if (dto.getRoleLevelMax() != null) {
+            //玩家最大等级
+            cri.where().andLTE("role_level", dto.getRoleLevelMax());
+        }
+        if (dto.getBeginDate() != null && dto.getEndDate() != null) {
+            //角色创建时间
+            cri.where().andBetween("DATE(role_create_time)", dto.getBeginDate(), dto.getEndDate());
+        }
+        if (dto.getRechargeBeginDate() != null && dto.getRechargeEndDate() != null) {
+            //最近充值时间
+            cri.where().andBetween("DATE(last_recharge_time)", dto.getRechargeBeginDate(), dto.getRechargeEndDate());
+        }
+        if (dto.getRegTimeBeginDate() != null && dto.getRegTimeEndDate() != null) {
+            //玩家注册时间
+            cri.where().andBetween("DATE(user_reg_time)", dto.getRegTimeBeginDate(), dto.getRegTimeEndDate());
+        }
+        if (dto.getRegPayIntervalTimeMin() != null) {
+            //充值到注册的最小间隔时间(分)
+            cri.where().andGTE("TIMESTAMPDIFF(MINUTE, user_reg_time, last_recharge_time)", dto.getRegPayIntervalTimeMin());
+        }
+        if (dto.getRegPayIntervalTimeMax() != null) {
+            //充值到注册的最大间隔时间(分)
+            cri.where().andLTE("TIMESTAMPDIFF(MINUTE, user_reg_time, last_recharge_time)", dto.getRegPayIntervalTimeMax());
+        }
+        //pager对象
+        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
+        //总记录数
+        Sql countSql = Sqls.create(getUserRoleDataListCountSql() + cri);
+        countSql.setCallback(Sqls.callback.integer());
+        dao.execute(countSql);
+        pager.setRecordCount(countSql.getInt());
 
-        return null;
+        //默认排序
+        if (StringUtils.isBlank(dto.getSortType())) {
+            dto.setSortType(OrderByEnum.DESC.getOrderType());
+        }
+        if (StringUtils.isBlank(dto.getSortFiled())) {
+            //默认游戏角色创建时间排序
+            cri.getOrderBy().orderBy("role_create_time", dto.getSortType());
+        } else {
+            cri.getOrderBy().orderBy(dto.getSortFiled(), dto.getSortFiled());
+        }
+        //查询sql
+        Sql sql = Sqls.create(getUserRoleDataListSql() + cri);
+        sql.setCallback(Sqls.callback.entities());
+        sql.setEntity(dao.getEntity(PlayerRoleDataVO.class));
+        sql.setPager(pager);
+        //执行sql 得到结果
+        dao.execute(sql);
+        List<PlayerRoleDataVO> list = sql.getList(PlayerRoleDataVO.class);
+
+        return new Page<>(list, pager);
     }
 
     /**
@@ -400,4 +514,111 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                 """;
     }
 
+    /**
+     * 玩家角色列表查询sql
+     * @return String
+     */
+    private String getUserRoleDataListSql() {
+        return """
+                SELECT
+                	*
+                FROM (
+                	SELECT
+                		a.source_system , -- SDK来源
+                		a.user_id , -- 玩家ID
+                		b.username , -- 玩家账号
+                		b.nickname , -- 玩家昵称
+                		b.ip , -- 玩家注册IP
+                		b.create_time , -- 玩家注册时间
+                		b.agent_id , -- 注册渠道ID
+                		IF(b.agent_id = 0, '自然量', c.agent_name) as agent_name , -- 注册渠道名
+                		c.pitcher_id , -- 投手ID
+                		d.zx_pitcher_name , -- 投手名
+                		c.account_id , -- 推广账号ID
+                		c.account_name , -- 推广账号名
+                		c.account_type , -- 推广账号类型
+                		a.game_id , -- 角色注册游戏ID
+                		e.game_name , -- 游戏名
+                		e.cp_id , -- cpID
+                		f.cp_name , -- cp名字
+                		e.classify , -- 游戏应用类型
+                		h.server_id , -- 角色注册区服ID
+                		h.server_name , -- 区服名
+                		h.origin_server_id , -- 原始区服ID
+                		h.origin_server_name , -- 原始区服名
+                		a.role_id , -- 角色ID
+                		a.role_name , -- 角色名
+                		a.role_level , -- 角色等级
+                		a.combat_num , -- 角色攻击力
+                		a.role_vip , -- 角色vip
+                		a.os , -- 角色操作系统
+                		a.create_time, -- 角色创建时间
+                		a.update_time, -- 角色最近更新时间
+                		g.pay_time, -- 角色最近充值时间
+                		TIMESTAMPDIFF(SECOND, b.create_time, g.pay_time) as pay_until_reg, -- 最近充值距注册时间差(秒)
+                		i.active_time, -- 玩家最近登陆时间
+                		j.amount , -- 角色充值金额
+                		j.amount_count -- 角色充值次数
+                	FROM dm_game_order.t_game_user_role a
+                	LEFT JOIN dm_game_order.t_game_user b on a.source_system = b.source_system AND a.user_id = b.id
+                	LEFT JOIN dm_game_order.t_pitcher_agent c on b.source_system = c.source_system AND b.agent_id = c.id
+                	LEFT JOIN dm_game_order.t_pitcher_map d on c.source_system = d.source_system AND c.pitcher_id = d.zx_pitcher_id
+                	LEFT JOIN dm_game_order.t_game e on a.source_system = e.source_system AND a.game_id = e.id
+                	LEFT JOIN dm_game_order.t_cp f on e.source_system = f.source_system AND e.cp_id = f.id
+                	LEFT JOIN (
+                		SELECT
+                			-- 角色最近充值时间、角色最近充值金额
+                			source_system,
+                			role_id,
+                			real_amount,
+                			pay_time,
+                			ROW_NUMBER()over(partition by role_id , source_system order by pay_time desc) as num
+                		FROM dm_game_order.t_game_order
+                		WHERE status =2
+                	) g on a.source_system = g.source_system AND a.role_id = g.role_id AND g.num = 1
+                	LEFT JOIN (
+                		SELECT
+                			a.source_system,
+                			a.game_id, -- 子游戏ID
+                			a.server_id, -- 区服ID
+                			a.server_name, -- 区服名(冠名后)
+                			ifnull(b.server_id,a.server_id) as origin_server_id, -- 原始区服ID
+                			ifnull(b.server_name,a.server_name) as origin_server_name -- 原始区服名
+                		from (
+                			SELECT
+                				a.game_id ,
+                				a.server_id ,
+                				a.server_name ,
+                				b.super_game_id,
+                				a.source_system
+                			FROM dm_game_order.t_game_server a
+                			LEFT JOIN dm_game_order.t_game b on a.source_system = b.source_system AND a.game_id = b.id
+                		)a LEFT JOIN dm_game_order.t_game_server_merge b
+                		on a.source_system = b.source_system AND a.super_game_id = b.game_id AND a.server_id = b.server_id
+                	) h on a.source_system = h.source_system AND a.server_id = h.server_id AND a.game_id = h.game_id
+                	LEFT JOIN game_dw.dw_active_log i on a.source_system = i.source_system AND a.user_id = i.user_id AND a.game_id = i.game_id
+                	LEFT JOIN (
+                		SELECT
+                			-- 累计充值金额、累计充值次数
+                	    	role_id,
+                	    	source_system,
+                	    	SUM(real_amount) as amount ,
+                	    	COUNT(user_id) as amount_count
+                		FROM dm_game_order.t_game_order
+                		WHERE status =2
+                		GROUP BY role_id , source_system
+                	) j on a.source_system = j.source_system AND a.role_id = j.role_id
+                ) a
+                """;
+    }
+
+    /**
+     * 玩家角色列表查询sql(总记录数)
+     * @return String
+     */
+    private String getUserRoleDataListCountSql() {
+        return """
+                """;
+    }
+
 }

文件差异内容过多而无法显示
+ 551 - 243
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/RoleManageServiceImpl.java


+ 9 - 2
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameGiftAddParam.java

@@ -20,8 +20,15 @@ public class GameGiftAddParam {
      * 游戏id
      */
     @NotNull
-    @ApiModelProperty("游戏id")
-    private Long gameId;
+    @ApiModelProperty("超父游戏id")
+    private Long superGameId;
+
+    /**
+     * 游戏id
+     */
+    @NotNull
+    @ApiModelProperty("父游戏id")
+    private Long parentGameId;
 
     /**
      * 礼包名称

+ 5 - 2
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameGiftListParam.java

@@ -13,6 +13,9 @@ public class GameGiftListParam extends BaseListDTO<GameGift> {
     @ApiModelProperty(notes = "礼包名称")
     private String giftName;
 
-    @ApiModelProperty(notes = "游戏id")
-    private Long gameId;
+    @ApiModelProperty(notes = "超父游戏id")
+    private Long superGameId;
+
+    @ApiModelProperty(notes = "父游戏id")
+    private Long parentGameId;
 }

+ 4 - 11
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/vo/GameGiftListVO.java

@@ -12,21 +12,14 @@ import java.time.LocalDateTime;
 @Builder
 @Data
 public class GameGiftListVO {
-
-    /**
-     * id
-     */
     @ApiModelProperty(notes = "id")
     private Long id;
 
-    /**
-     * 游戏id
-     */
-    @ApiModelProperty("游戏id")
-    private Long gameId;
+    @ApiModelProperty("父游戏id")
+    private Long parentGameId;
 
-    @ApiModelProperty("游戏名称")
-    private String gameName;
+    @ApiModelProperty("父游戏名称")
+    private String parentGameName;
 
     /**
      * 礼包名称

+ 18 - 12
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/GameGiftServiceImpl.java

@@ -49,13 +49,15 @@ public class GameGiftServiceImpl extends ServiceImpl<GameGiftMapper, GameGift> i
         LocalDateTime now = LocalDateTime.now();
         if (null == param.getId()) {
             int count = count(new LambdaQueryWrapper<GameGift>()
-                    .eq(GameGift::getGameId, param.getGameId())
+                    .eq(GameGift::getParentGameId, param.getParentGameId())
+                    .eq(GameGift::getSuperGameId, param.getSuperGameId())
                     .eq(GameGift::getGiftName, param.getGiftName()));
             if (count > 1) {
                 throw new BaseException("此游戏礼包名称重复");
             }
             GameGift gameGift = GameGift.builder()
-                    .gameId(param.getGameId())
+                    .parentGameId(param.getParentGameId())
+                    .superGameId(param.getSuperGameId())
                     .giftName(param.getGiftName())
                     .createBy(sysUserId)
                     .createTime(now)
@@ -66,14 +68,16 @@ public class GameGiftServiceImpl extends ServiceImpl<GameGiftMapper, GameGift> i
         } else {
             int count = count(new LambdaQueryWrapper<GameGift>()
                     .ne(GameGift::getId, param.getId())
-                    .eq(GameGift::getGameId, param.getGameId())
+                    .eq(GameGift::getParentGameId, param.getParentGameId())
+                    .eq(GameGift::getSuperGameId, param.getSuperGameId())
                     .eq(GameGift::getGiftName, param.getGiftName()));
             if (count > 1) {
                 throw new BaseException("此游戏礼包名称重复");
             }
             GameGift gameGift = GameGift.builder()
                     .id(param.getId())
-                    .gameId(param.getGameId())
+                    .parentGameId(param.getParentGameId())
+                    .superGameId(param.getSuperGameId())
                     .giftName(param.getGiftName())
                     .updateBy(sysUserId)
                     .updateTime(now)
@@ -85,16 +89,17 @@ public class GameGiftServiceImpl extends ServiceImpl<GameGiftMapper, GameGift> i
     @Override
     public List<GameGiftListVO> queryAll(GameGiftListParam param) {
         return list(new LambdaQueryWrapper<GameGift>()
-                .eq(null != param.getGameId(), GameGift::getGameId, param.getGameId())
+                .eq(null != param.getSuperGameId(), GameGift::getSuperGameId, param.getSuperGameId())
+                .eq(null != param.getParentGameId(), GameGift::getParentGameId, param.getParentGameId())
                 .like(StringUtils.isNotBlank(param.getGiftName()), GameGift::getGiftName, param.getGiftName())
                 .eq(GameGift::getIsDelete, 0))
                 .stream()
                 .map(item -> {
-                    GameDTO game = gameService.getById(item.getGameId());
+                    GameDTO game = gameService.getById(item.getParentGameId());
                     return GameGiftListVO.builder()
                             .id(item.getId())
-                            .gameId(item.getGameId())
-                            .gameName(null == game ? null : game.getName())
+                            .parentGameId(item.getParentGameId())
+                            .parentGameName(null == game ? null : game.getName())
                             .giftName(item.getGiftName())
                             .createBy(item.getCreateBy())
                             .createName(sysUserRpc.getById(item.getCreateBy()).getData().getNickname())
@@ -120,15 +125,16 @@ public class GameGiftServiceImpl extends ServiceImpl<GameGiftMapper, GameGift> i
     @Override
     public IPage<GameGiftListVO> listOfPage(GameGiftListParam param) {
         return page(param.toPage(), new LambdaQueryWrapper<GameGift>()
-                .eq(null != param.getGameId(), GameGift::getGameId, param.getGameId())
+                .eq(null != param.getSuperGameId(), GameGift::getSuperGameId, param.getSuperGameId())
+                .eq(null != param.getParentGameId(), GameGift::getParentGameId, param.getParentGameId())
                 .like(StringUtils.isNotBlank(param.getGiftName()), GameGift::getGiftName, param.getGiftName())
                 .eq(GameGift::getIsDelete, 0))
                 .convert(item -> {
-                    GameDTO game = gameService.getById(item.getGameId());
+                    GameDTO game = gameService.getById(item.getParentGameId());
                     return GameGiftListVO.builder()
                             .id(item.getId())
-                            .gameId(item.getGameId())
-                            .gameName(null == game ? null : game.getName())
+                            .parentGameId(item.getParentGameId())
+                            .parentGameName(null == game ? null : game.getName())
                             .giftName(item.getGiftName())
                             .createBy(item.getCreateBy())
                             .createName(sysUserRpc.getById(item.getCreateBy()).getData().getNickname())

+ 2 - 2
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/RoleAssignRecordServiceImpl.java

@@ -157,13 +157,13 @@ public class RoleAssignRecordServiceImpl extends ServiceImpl<RoleAssignRecordMap
     public IPage<RoleAssignRecordListVO> listOfPage(RoleAssignRecordListParam param) {
         Agent agent = agentService.getById(param.getRegAgentId());
         GameDTO game = gameService.getById(param.getGameId());
+        Long superGameId = null == game.getSuperGameId() ? param.getGameId():game.getSuperGameId();
         GameServer gameServer = gameServerService.getOne(new LambdaQueryWrapper<GameServer>()
-                .eq(GameServer::getGameId, param.getGameId())
+                .eq(GameServer::getGameId, superGameId)
                 .eq(GameServer::getServerId, param.getServerId()));
         GameUserRole role = gameUserRoleService.getOne(new LambdaQueryWrapper<GameUserRole>()
                 .eq(GameUserRole::getGameId, param.getGameId())
                 .eq(GameUserRole::getServerId, param.getServerId())
-                .eq(GameUserRole::getUserId, param.getUserId())
                 .eq(GameUserRole::getRoleId, param.getRoleId()));
 
         return page(param.toPage(), new LambdaQueryWrapper<RoleAssignRecord>()

+ 8 - 2
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/RoleGiftRecordServiceImpl.java

@@ -9,11 +9,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zanxiang.erp.base.ErpServer;
 import com.zanxiang.erp.base.rpc.ISysUserRpc;
 import com.zanxiang.erp.security.util.SecurityUtil;
+import com.zanxiang.game.module.manage.pojo.dto.GameDTO;
 import com.zanxiang.game.module.manage.pojo.params.RoleGiftRecordAddParam;
 import com.zanxiang.game.module.manage.pojo.params.RoleGiftRecordListParam;
 import com.zanxiang.game.module.manage.pojo.vo.RoleGiftRecordListVO;
 import com.zanxiang.game.module.manage.pojo.vo.RoleMailRecordListVO;
 import com.zanxiang.game.module.manage.service.IGameGiftService;
+import com.zanxiang.game.module.manage.service.IGameService;
 import com.zanxiang.game.module.manage.service.IRoleOperateService;
 import com.zanxiang.game.module.mybatis.entity.*;
 import com.zanxiang.game.module.mybatis.entity.RoleGiftRecord;
@@ -45,6 +47,8 @@ public class RoleGiftRecordServiceImpl extends ServiceImpl<RoleGiftRecordMapper,
     private IRoleOperateService roleOperateService;
     @Autowired
     private IGameGiftService gameGiftService;
+    @Autowired
+    private IGameService gameService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -108,13 +112,15 @@ public class RoleGiftRecordServiceImpl extends ServiceImpl<RoleGiftRecordMapper,
 
     @Override
     public IPage<RoleGiftRecordListVO> listOfPage(RoleGiftRecordListParam param) {
+        GameDTO gameDTO = gameService.getById(param.getGameId());
+        Long parentGameId = null == gameDTO.getParentId() ? param.getGameId():gameDTO.getParentId();
         List<Long> gameGiftIdList = gameGiftService.list(new LambdaQueryWrapper<GameGift>()
-                        .eq(GameGift::getGameId, param.getGameId())
+                        .eq(GameGift::getParentGameId, parentGameId)
                         .like(StringUtils.isNotBlank(param.getGiftName()), GameGift::getGiftName, param.getGiftName()))
                 .stream()
                 .map(GameGift::getId)
                 .collect(Collectors.toList());
-        if (CollectionUtils.isEmpty(gameGiftIdList)){
+        if (CollectionUtils.isEmpty(gameGiftIdList)) {
             return new Page<>();
         }
         return page(param.toPage(), new LambdaQueryWrapper<RoleGiftRecord>()

+ 3 - 4
game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/entity/GameGift.java

@@ -30,10 +30,9 @@ public class GameGift implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
-    /**
-     * 游戏id
-     */
-    private Long gameId;
+    private Long superGameId;
+
+    private Long parentGameId;
 
     /**
      * 礼包名称

部分文件因为文件数量过多而无法显示