|  | @@ -8,6 +8,7 @@ import com.zanxiang.game.data.serve.pojo.enums.OrderByEnum;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.data.serve.service.IRoleManageService;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.data.serve.utils.Page;
 | 
	
		
			
				|  |  |  import lombok.extern.slf4j.Slf4j;
 | 
	
		
			
				|  |  | +import org.apache.commons.collections4.CollectionUtils;
 | 
	
		
			
				|  |  |  import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  |  import org.apache.dubbo.config.annotation.DubboReference;
 | 
	
		
			
				|  |  |  import org.nutz.dao.Cnd;
 | 
	
	
		
			
				|  | @@ -52,6 +53,10 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |          if (dto.getGameId() != null) {
 | 
	
		
			
				|  |  |              criA.where().andEquals("role_reg_game_id", dto.getGameId());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        if (dto.getParentGameId() != null) {
 | 
	
		
			
				|  |  | +            //角色注册父游戏
 | 
	
		
			
				|  |  | +            criA.where().andEquals("role_reg_parent_game_id", dto.getParentGameId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          if (StringUtils.isNotBlank(dto.getSourceSystem())) {
 | 
	
		
			
				|  |  |              criA.where().andEquals("source_system", dto.getSourceSystem());
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -61,13 +66,13 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |          if (StringUtils.isNotBlank(dto.getRoleName())) {
 | 
	
		
			
				|  |  |              criA.where().andLike("role_name", dto.getRoleName());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if (dto.getServerIds() != null) {
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(dto.getServerIds())) {
 | 
	
		
			
				|  |  |              //区服列表查询
 | 
	
		
			
				|  |  |              criA.where().andInList("server_id", dto.getServerIds());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (dto.getCreateRoleBeginDate() != null && dto.getCreateRoleEndDate() != null) {
 | 
	
		
			
				|  |  |              //角色创建时间
 | 
	
		
			
				|  |  | -            criA.where().andBetween("role_create_time", dto.getCreateRoleBeginDate(), dto.getCreateRoleEndDate());
 | 
	
		
			
				|  |  | +            criA.where().andBetween("DATE(role_create_time)", dto.getCreateRoleBeginDate(), dto.getCreateRoleEndDate());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (dto.getVipLevel() != null) {
 | 
	
		
			
				|  |  |              criA.where().andEquals("vip_level", dto.getVipLevel());
 | 
	
	
		
			
				|  | @@ -76,7 +81,8 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |              criA.where().andEquals("is_send_mail", dto.getIsSendMail());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (dto.getIsChange() != null) {
 | 
	
		
			
				|  |  | -            criA.where().andEquals("is_change", dto.getIsChange());
 | 
	
		
			
				|  |  | +            //是否转端
 | 
	
		
			
				|  |  | +            criA.where().andEquals("is_change_game_type", dto.getIsChange());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (StringUtils.isNotBlank(dto.getWeChatCompany())) {
 | 
	
		
			
				|  |  |              criA.where().andLike("we_chat_company", dto.getWeChatCompany());
 | 
	
	
		
			
				|  | @@ -1323,6 +1329,8 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                  	MAX(role_count) as role_count, -- 角色数量
 | 
	
		
			
				|  |  |                  	MAX(total_num) as total_num, -- 总付费人数
 | 
	
		
			
				|  |  |                  	MAX(total_amount) as total_amount, -- 总付费金额
 | 
	
		
			
				|  |  | +                	ROUND(IF(MAX(total_num) > 0, MAX(total_amount) / MAX(total_num), 0), 2) as total_arppu, -- 总付费ARPPU
 | 
	
		
			
				|  |  | +                	ROUND(IF(MAX(create_role_count) > 0, MAX(total_num) / MAX(create_role_count), 0), 4) as amount_rate, -- 付费率
 | 
	
		
			
				|  |  |                  	MAX(ba1) as ba1, -- 今日付费金额
 | 
	
		
			
				|  |  |                  	MAX(ba1_num) as ba1_num, -- 今日付费人数
 | 
	
		
			
				|  |  |                  	MAX(ba1_count) as ba1_count, -- 今日付费次数
 | 
	
	
		
			
				|  | @@ -1361,6 +1369,8 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                      SUM(role_count) as role_count, -- 角色数量
 | 
	
		
			
				|  |  |                      SUM(total_num) as total_num, -- 总付费人数
 | 
	
		
			
				|  |  |                      SUM(total_amount) as total_amount, -- 总付费金额
 | 
	
		
			
				|  |  | +                    ROUND(IF(SUM(total_num) > 0, SUM(total_amount) / SUM(total_num), 0), 2) as total_arppu, -- 总付费ARPPU
 | 
	
		
			
				|  |  | +                    ROUND(IF(SUM(create_role_count) > 0, SUM(total_num) / SUM(create_role_count), 0), 4) as amount_rate, -- 付费率
 | 
	
		
			
				|  |  |                      SUM(ba1) as ba1, -- 今日付费金额
 | 
	
		
			
				|  |  |                      SUM(ba1_num) as ba1_num, -- 今日付费人数
 | 
	
		
			
				|  |  |                      SUM(ba1_count) as ba1_count, -- 今日付费次数
 | 
	
	
		
			
				|  | @@ -1431,6 +1441,8 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                      SUM(role_count) as role_count, -- 角色数量
 | 
	
		
			
				|  |  |                      SUM(total_num) as total_num, -- 总付费人数
 | 
	
		
			
				|  |  |                      SUM(total_amount) as total_amount, -- 总付费金额
 | 
	
		
			
				|  |  | +                    ROUND(IF(SUM(total_num) > 0, SUM(total_amount) / SUM(total_num), 0), 2) as total_arppu, -- 总付费ARPPU
 | 
	
		
			
				|  |  | +                    ROUND(IF(SUM(create_role_count) > 0, SUM(total_num) / SUM(create_role_count), 0), 4) as amount_rate, -- 付费率
 | 
	
		
			
				|  |  |                      SUM(ba1) as ba1, -- 今日付费金额
 | 
	
		
			
				|  |  |                      SUM(ba1_num) as ba1_num, -- 今日付费人数
 | 
	
		
			
				|  |  |                      SUM(ba1_count) as ba1_count, -- 今日付费次数
 | 
	
	
		
			
				|  | @@ -1497,6 +1509,8 @@ public class RoleManageServiceImpl implements IRoleManageService {
 | 
	
		
			
				|  |  |                      SUM(role_count) as role_count, -- 角色数量
 | 
	
		
			
				|  |  |                      SUM(total_num) as total_num, -- 总付费人数
 | 
	
		
			
				|  |  |                      SUM(total_amount) as total_amount, -- 总付费金额
 | 
	
		
			
				|  |  | +                    ROUND(IF(SUM(total_num) > 0, SUM(total_amount) / SUM(total_num), 0), 2) as total_arppu, -- 总付费ARPPU
 | 
	
		
			
				|  |  | +                    ROUND(IF(SUM(create_role_count) > 0, SUM(total_num) / SUM(create_role_count), 0), 4) as amount_rate, -- 付费率
 | 
	
		
			
				|  |  |                      SUM(ba1) as ba1, -- 今日付费金额
 | 
	
		
			
				|  |  |                      SUM(ba1_num) as ba1_num, -- 今日付费人数
 | 
	
		
			
				|  |  |                      SUM(ba1_count) as ba1_count, -- 今日付费次数
 |