|  | @@ -1,5 +1,7 @@
 | 
	
		
			
				|  |  |  package com.zanxiang.game.data.serve.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import java.time.LocalDateTime;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  import com.alibaba.fastjson2.JSON;
 | 
	
		
			
				|  |  |  import com.zanxiang.erp.base.ErpServer;
 | 
	
		
			
				|  |  |  import com.zanxiang.erp.base.rpc.ISysUserRpc;
 | 
	
	
		
			
				|  | @@ -369,7 +371,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |              //客户手机号
 | 
	
		
			
				|  |  |              criA.where().andEquals("user_phone", dto.getPhone());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if(dto.getUserPhoneStatus()!=null){
 | 
	
		
			
				|  |  | +        if (dto.getUserPhoneStatus() != null) {
 | 
	
		
			
				|  |  |              //客服手机号绑定状态
 | 
	
		
			
				|  |  |              criA.where().andEquals("user_phone_status", dto.getUserPhoneStatus());
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -440,17 +442,17 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |              criA.where().andBetween("DATE(role_last_pay_time)", dto.getRoleLastPayTimeMin(), dto.getRoleLastPayTimeMax());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if (StringUtils.isNotBlank(dto.getIpCity())){
 | 
	
		
			
				|  |  | -            criA.where().andEquals("ip_city",dto.getIpCity());
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getIpCity())) {
 | 
	
		
			
				|  |  | +            criA.where().andEquals("ip_city", dto.getIpCity());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if(StringUtils.isNotBlank(dto.getIpProv())){
 | 
	
		
			
				|  |  | -            criA.where().andEquals("ip_prov",dto.getIpProv());
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getIpProv())) {
 | 
	
		
			
				|  |  | +            criA.where().andEquals("ip_prov", dto.getIpProv());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if (StringUtils.isNotBlank(dto.getLoginIpCity())){
 | 
	
		
			
				|  |  | -            criA.where().andEquals("login_ip_city",dto.getLoginIpCity());
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getLoginIpCity())) {
 | 
	
		
			
				|  |  | +            criA.where().andEquals("login_ip_city", dto.getLoginIpCity());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if(StringUtils.isNotBlank(dto.getLoginIpProv())){
 | 
	
		
			
				|  |  | -            criA.where().andEquals("login_ip_prov",dto.getLoginIpProv());
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getLoginIpProv())) {
 | 
	
		
			
				|  |  | +            criA.where().andEquals("login_ip_prov", dto.getLoginIpProv());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return criA;
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -906,6 +908,99 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public Page<Map> levelListOfPage(RoleLevelParamDTO dto) {
 | 
	
		
			
				|  |  | +        //创建查询条件
 | 
	
		
			
				|  |  | +        Criteria criA = getSqlByQuery(dto);
 | 
	
		
			
				|  |  | +        //分页对象
 | 
	
		
			
				|  |  | +        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
 | 
	
		
			
				|  |  | +        //查询总记录数
 | 
	
		
			
				|  |  | +        Sql countSql = Sqls.create(getLevelListCountSql(criA));
 | 
	
		
			
				|  |  | +        countSql.setCallback(Sqls.callback.integer());
 | 
	
		
			
				|  |  | +        dao.execute(countSql);
 | 
	
		
			
				|  |  | +        pager.setRecordCount(countSql.getInt());
 | 
	
		
			
				|  |  | +        //列表sql
 | 
	
		
			
				|  |  | +        String levelListSql = getLevelListSql(criA);
 | 
	
		
			
				|  |  | +        Sql sql = Sqls.create(levelListSql);
 | 
	
		
			
				|  |  | +        sql.setCallback(Sqls.callback.maps());
 | 
	
		
			
				|  |  | +        sql.setPager(pager);
 | 
	
		
			
				|  |  | +        dao.execute(sql);
 | 
	
		
			
				|  |  | +        //查询结果
 | 
	
		
			
				|  |  | +        List<Map> list = sql.getList(Map.class);
 | 
	
		
			
				|  |  | +        return new Page<>(list, pager);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private Criteria getSqlByQuery(RoleLevelParamDTO dto) {
 | 
	
		
			
				|  |  | +        Criteria criA = Cnd.cri();
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getServerName())) {
 | 
	
		
			
				|  |  | +            //区服名称
 | 
	
		
			
				|  |  | +            criA.where().andLike("server_name", dto.getServerName());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if(CollectionUtils.isNotEmpty(dto.getServerId())){
 | 
	
		
			
				|  |  | +            //区服id
 | 
	
		
			
				|  |  | +            criA.where().andInStrList("server_id", dto.getServerId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getGameName())) {
 | 
	
		
			
				|  |  | +            //游戏名称
 | 
	
		
			
				|  |  | +            criA.where().andLike("game_name", dto.getGameName());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if(CollectionUtils.isNotEmpty(dto.getGameId())){
 | 
	
		
			
				|  |  | +            //游戏id
 | 
	
		
			
				|  |  | +            criA.where().andInList("game_id", dto.getGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getRoleId())) {
 | 
	
		
			
				|  |  | +            //角色id
 | 
	
		
			
				|  |  | +            criA.where().andEquals("role_id", dto.getRoleId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getRoleName())) {
 | 
	
		
			
				|  |  | +            //角色名称
 | 
	
		
			
				|  |  | +            criA.where().andLike("role_name", dto.getRoleName());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //角色等级区间筛选
 | 
	
		
			
				|  |  | +        if (dto.getRoleLevelMin() != null) {
 | 
	
		
			
				|  |  | +            criA.where().andGTE("role_level", dto.getRoleLevelMin());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dto.getRoleLevelMax() != null) {
 | 
	
		
			
				|  |  | +            criA.where().andLTE("role_level", dto.getRoleLevelMax());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //角色创建时间
 | 
	
		
			
				|  |  | +        if (dto.getCreateTimeMin() != null && dto.getCreateTimeMax() != null) {
 | 
	
		
			
				|  |  | +            criA.where().andBetween("create_time", dto.getCreateTimeMin(), dto.getCreateTimeMax());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //等级上报时间
 | 
	
		
			
				|  |  | +        if (dto.getLevelTimeMin() != null && dto.getLevelTimeMax() != null) {
 | 
	
		
			
				|  |  | +            criA.where().andBetween("level_time", dto.getLevelTimeMin(), dto.getLevelTimeMax());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return criA;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private String getLevelListSql(Criteria criA) {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                select
 | 
	
		
			
				|  |  | +                    role_id,
 | 
	
		
			
				|  |  | +                    user_id,
 | 
	
		
			
				|  |  | +                    game_id,
 | 
	
		
			
				|  |  | +                    role_level,
 | 
	
		
			
				|  |  | +                    server_id,
 | 
	
		
			
				|  |  | +                    role_name,
 | 
	
		
			
				|  |  | +                    role_vip,
 | 
	
		
			
				|  |  | +                    create_time,
 | 
	
		
			
				|  |  | +                    level_time,
 | 
	
		
			
				|  |  | +                    server_name,
 | 
	
		
			
				|  |  | +                    game_name
 | 
	
		
			
				|  |  | +                    from ads_role_level_log
 | 
	
		
			
				|  |  | +                """ + criA;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private String getLevelListCountSql(Criteria criA) {
 | 
	
		
			
				|  |  | +        return """
 | 
	
		
			
				|  |  | +                select
 | 
	
		
			
				|  |  | +                    count(1)
 | 
	
		
			
				|  |  | +                    from ads_role_level_log
 | 
	
		
			
				|  |  | +                """ + criA;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 补充查询发送消息任务结果sql
 |