Pārlūkot izejas kodu

修改内容:玩家游戏角色列表

lth 1 gadu atpakaļ
vecāks
revīzija
93e38fd32e

+ 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;
-
     /**
      * 充值次数
      */

+ 133 - 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());
+
+        //默认排序
+        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 null;
+        return new Page<>(list, pager);
     }
 
     /**
@@ -400,4 +514,22 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
                 """;
     }
 
+    /**
+     * 玩家角色列表查询sql
+     * @return String
+     */
+    private String getUserRoleDataListSql() {
+        return """
+                """;
+    }
+
+    /**
+     * 玩家角色列表查询sql(总记录数)
+     * @return String
+     */
+    private String getUserRoleDataListCountSql() {
+        return """
+                """;
+    }
+
 }

+ 26 - 2
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/RoleManageServiceImpl.java

@@ -229,6 +229,17 @@ public class RoleManageServiceImpl implements IRoleManageService {
         countSql.setCallback(Sqls.callback.integer());
         dao.execute(countSql);
         pager.setRecordCount(countSql.getInt());
+        //排序条件
+        if (StringUtils.isBlank(dto.getSortType())) {
+            dto.setSortType(OrderByEnum.DESC.getOrderType());
+        }
+        if (StringUtils.isNotBlank(dto.getSortFiled())) {
+            cri.getOrderBy().orderBy(dto.getSortFiled(), dto.getSortType());
+        } else {
+            //默认排序
+            cri.getOrderBy().orderBy("merge_time", dto.getSortType());
+            cri.getOrderBy().orderBy("server_combat_num", dto.getSortType());
+        }
         //查询出区服相关数据
         Sql sql = Sqls.create(getRoleCombatRankServerDataSqlD() + cri);
         sql.setCallback(Sqls.callback.maps());
@@ -308,8 +319,8 @@ public class RoleManageServiceImpl implements IRoleManageService {
 
     /**
      * 原始服-父游戏
-     * @param dto
-     * @return
+     * @param dto RoleCombatRankingDTO
+     * @return Page<Map>
      */
     private Page<Map> getOriginParentData(RoleCombatRankingDTO dto) {
         //查询条件
@@ -338,6 +349,17 @@ public class RoleManageServiceImpl implements IRoleManageService {
         countSql.setCallback(Sqls.callback.integer());
         dao.execute(countSql);
         pager.setRecordCount(countSql.getInt());
+        //排序条件
+        if (StringUtils.isBlank(dto.getSortType())) {
+            dto.setSortType(OrderByEnum.DESC.getOrderType());
+        }
+        if (StringUtils.isNotBlank(dto.getSortFiled())) {
+            cri.getOrderBy().orderBy(dto.getSortFiled(), dto.getSortType());
+        } else {
+            //默认排序
+            cri.getOrderBy().orderBy("dt", dto.getSortType());
+            cri.getOrderBy().orderBy("server_combat_num", dto.getSortType());
+        }
         //区服数据
         Sql sql = Sqls.create(getRoleCombatRankServerDataSqlB() + cri);
         sql.setCallback(Sqls.callback.maps());
@@ -1130,6 +1152,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     MAX(boss_server_id) as boss_server_id, -- 合服ID
                     MAX(boss_server_name) as boss_server_name, -- 合服名
                     MAX(merge_time) as merge_time , -- 合服时间
+                    MAX(sum_server_count) as sum_server_count, -- 合服次数
                     SUM(server_combat_num) as server_combat_num, -- 区服战力
                     SUM(new_user_count) as new_user_count, -- 新用户人数
                     SUM(create_role_count) as create_role_count, -- 创角人数
@@ -1166,6 +1189,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 		MAX(boss_server_id) as boss_server_id, -- 合服ID
                 		MAX(boss_server_name) as boss_server_name, -- 合服名
                 		MAX(merge_time) as merge_time , -- 合服时间
+                		MAX(sum_server_count) as sum_server_count, -- 合服次数
                 		MAX(server_combat_num) as server_combat_num, -- 区服战力
                 		MAX(new_user_count) as new_user_count, -- 新用户人数
                 		MAX(create_role_count) as create_role_count, -- 创角人数