| 
					
				 | 
			
			
				@@ -1,5 +1,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.zanxiang.game.data.serve.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.zanxiang.erp.base.ErpServer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.zanxiang.erp.base.rpc.ISysUserRpc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.game.data.serve.pojo.dto.RoleCombatRankingDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.game.data.serve.pojo.dto.RoleRechargeRankingDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.game.data.serve.pojo.enums.OrderByEnum; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -7,6 +9,7 @@ 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.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.dubbo.config.annotation.DubboReference; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.nutz.dao.Cnd; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.nutz.dao.Dao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.nutz.dao.Sqls; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -18,6 +21,7 @@ import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @author tianhua 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -31,6 +35,9 @@ public class RoleManageServiceImpl implements IRoleManageService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private Dao dao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @DubboReference(providedBy = ErpServer.SERVER_DUBBO_NAME) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private ISysUserRpc sysUserRpc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 角色充值排行榜 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param dto RoleRechargeRankingDTO 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -86,11 +93,6 @@ public class RoleManageServiceImpl implements IRoleManageService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (dto.getCustomerServerId() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             criA.where().andEquals("customer_server_id", dto.getCustomerServerId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //查询总记录数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Sql countSql = Sqls.create(""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                """ + criA); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //给充值时间查询条件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Criteria criTodayAmount = Cnd.cri(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //查询充值成功的 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -99,6 +101,13 @@ public class RoleManageServiceImpl implements IRoleManageService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //充值时间限制 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             criTodayAmount.where().andBetween("DATE(pay_time)", dto.getRechargeBeginDate(), dto.getRechargeEndDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //分页对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //查询总记录数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Sql countSql = Sqls.create(getCountNumSql(criA, criTodayAmount)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        countSql.setCallback(Sqls.callback.integer()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dao.execute(countSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pager.setRecordCount(countSql.getInt()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //主表添加排序条件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtils.isBlank(dto.getSortType())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             dto.setSortType(OrderByEnum.DESC.getOrderType()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -108,14 +117,12 @@ public class RoleManageServiceImpl implements IRoleManageService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             criA.getOrderBy().orderBy(dto.getSortFiled(), dto.getSortType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //分页对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //创建sql 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Sql sql = Sqls.create(getRoleRechargeRankingSql(criA, criTodayAmount)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sql.setCallback(Sqls.callback.maps()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sql.setPager(pager); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         dao.execute(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Map> list = sql.getList(Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Map> list = sql.getList(Map.class).stream().map(map -> getNameById(map)).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //返回结果 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return new Page<>(list, pager); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -127,10 +134,40 @@ public class RoleManageServiceImpl implements IRoleManageService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return Page<List<Map<String, Object>>> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Page<List<Map<String, Object>>> getRoleCombatRanking(RoleCombatRankingDTO dto) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Page<Map> getRoleCombatRanking(RoleCombatRankingDTO dto) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 通过id获取 GS、运营、客服人员、投手名字 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param dataMap dataMap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return String 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Map<String, Object> getNameById(Map<String, Object> dataMap){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //投手名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (dataMap.get("put_user_id") != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dataMap.put("put_user_name", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sysUserRpc.getById(Long.valueOf((String) dataMap.get("put_user_id"))).getData().getNickname()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //运营人员名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (dataMap.get("oper_user_id") != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dataMap.put("oper_user_name", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sysUserRpc.getById(Long.valueOf((String) dataMap.get("oper_user_id"))).getData().getNickname()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //GS人员名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (dataMap.get("gs_id") != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dataMap.put("gs_name", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sysUserRpc.getById(Long.valueOf((String) dataMap.get("gs_id"))).getData().getNickname()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //客服人员名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (dataMap.get("customer_service_id") != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dataMap.put("customer_service_name", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sysUserRpc.getById(Long.valueOf((String) dataMap.get("customer_service_id"))).getData().getNickname()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return dataMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 查询角色充值排行榜sql 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param criA 主表查询条件 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -188,12 +225,31 @@ public class RoleManageServiceImpl implements IRoleManageService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	    i.user_reg_game_name as user_reg_game_name, -- 玩家注册游戏名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	    i.agent_id as agent_id, -- 玩家注册渠道id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	    IF(i.agent_id = 0 , '自然量', i.agent_name) as agent_name, -- 玩家注册渠道名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	    i.put_user_id as put_user_id, -- 投手id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	    i.user_active_time as user_active_time, -- 玩家最近活跃时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	    i.user_last_recharge_game_id as user_last_recharge_game_id, -- 玩家最近充值游戏id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	    i.user_last_recharge_game_name as user_last_recharge_game_name, -- 玩家最近充值游戏名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 		i.user_pay_time as user_pay_time, -- 玩家最近充值时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 		TIMESTAMPDIFF(SECOND, i.user_create_time, i.user_pay_time) as user_reg_pay_time, -- 玩家注册充值时间差(秒) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                		TIMESTAMPDIFF(SECOND, i.user_pay_time, NOW()) as user_pay_until_now -- 玩家最近充值距今(秒) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		TIMESTAMPDIFF(SECOND, i.user_pay_time, NOW()) as user_pay_until_now, -- 玩家最近充值距今(秒) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.is_send_mail as is_send_mail, -- 是否发送邮件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.send_gift_id as send_gift_id, -- 最新发送礼包id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.is_change_game_type as is_change_game_type, -- 是否转端 1-是;0-否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.is_add_corp_wechat as is_add_corp_wechat, -- 是否添加企微 1-是; 0-否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.add_corp_user_id as add_corp_user_id, -- 企微号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.user_wechat as user_wechat, -- 客户微信号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.user_phone as user_phone, -- 客户手机号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.is_remove_game as is_remove_game, -- 是否退游 1-是;0-否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.is_wake_up as is_wake_up, -- 是否唤醒 1-是;0-否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.remark as remark, -- 备注 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.gs_id as gs_id, -- GS_ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.customer_service_id as customer_service_id, -- 客服ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.oper_user_id as oper_user_id, -- 运营ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.create_time as create_time, -- 创建时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.create_by as create_by, -- 创建者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.update_time as update_time, -- 更新时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.update_by as update_by, -- 更新者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.is_delete as is_delete -- 是否删除 1-删除;0-正常 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	FROM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 		SELECT 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -298,7 +354,7 @@ public class RoleManageServiceImpl implements IRoleManageService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	) p on a.source_system = p.source_system AND a.role_id = p.role_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 		SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                		    -- 角色所在区服名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			-- 区服名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 			source_system , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 			game_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 			server_id, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -321,6 +377,7 @@ public class RoleManageServiceImpl implements IRoleManageService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	        k.game_name as user_reg_game_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	        i.agent_id as agent_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	        IF(i.agent_id = 0 , '自然量', j.agent_name) as agent_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        j.pitcher_id as put_user_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	        l.active_time as user_active_time, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	        m.user_last_recharge_game_id as user_last_recharge_game_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	        n.game_name as user_last_recharge_game_name, -- 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -351,7 +408,8 @@ public class RoleManageServiceImpl implements IRoleManageService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 				-- 渠道名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 				source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 				id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                				agent_name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				agent_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				pitcher_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 			FROM dm_game_order.t_pitcher_agent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 		) j ON i.agent_id = j.id AND i.source_system  = j.source_system 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 		LEFT JOIN ( 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -405,15 +463,340 @@ public class RoleManageServiceImpl implements IRoleManageService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 			FROM dm_game_order.t_game 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 		) n ON m.user_last_recharge_game_id = n.id AND m.source_system = n.source_system 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 	) i on a.source_system = i.source_system AND a.association_user_id = i.association_user_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		    -- 操作表相关数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		    source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		    user_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		    role_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		    server_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		    game_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			is_send_mail, -- 是否发送邮件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            send_gift_id, -- 最新发送礼包id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            is_change_game_type, -- 是否转端 1-是;0-否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            is_add_corp_wechat, -- 是否添加企微 1-是; 0-否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            add_corp_user_id, -- 企微号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            user_wechat, -- 客户微信号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            user_phone, -- 客户手机号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            is_remove_game, -- 是否退游 1-是;0-否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            is_wake_up, -- 是否唤醒 1-是;0-否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            remark, -- 备注 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            gs_id, -- GS_ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            customer_service_id, -- 客服ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            oper_user_id, -- 运营ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            create_time, -- 创建时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            create_by, -- 创建者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            update_time, -- 更新时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            update_by, -- 更新者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            is_delete -- 是否删除 1-删除;0-正常 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		FROM dm_game_order.t_role_operate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	) j on a.source_system = j.source_system AND a.association_user_id = j.user_id AND 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	a.role_id = j.role_id AND a.server_id = j.server_id AND a.game_id = j.game_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ) a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 """ + criA; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private String getCountNumSql(Criteria criA) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 查询记录数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param criA 主表条件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param criTodayAmount 今日充值条件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return String 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String getCountNumSql(Criteria criA, Criteria criTodayAmount) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                """; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	COUNT(1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                FROM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		a.association_user_id as association_user_id, -- 来源的用户id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		a.source_system as source_system, -- sdk来源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		a.role_id as role_id, -- 角色id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		a.role_name as role_name, -- 角色名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		a.create_time as role_create_time, -- 角色创建时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		a.os as os, -- 角色操作系统 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		b.role_level as role_level, -- 角色等级 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		b.combat_num as combat_num, -- 角色攻击力 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		IFNULL(c.amount, 0) as amount, -- 角色累计充值金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		IFNULL(c.amount_count, 0) as amount_count, -- 角色累计充值次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		ROUND(IF(c.amount_count > 0, c.amount / c.amount_count, 0), 2) as avg_amount, -- 平均单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		(CASE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			WHEN c.amount >= 0 and c.amount < 2000 THEN '1' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			WHEN c.amount >= 2000 and c.amount < 5000 THEN '2' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			WHEN c.amount >= 5000 and c.amount < 10000 THEN '3' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			WHEN c.amount >= 10000 and c.amount < 20000 THEN '4' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			WHEN c.amount >= 20000 and c.amount < 50000 THEN '5' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			WHEN c.amount >= 50000 THEN '6' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			ELSE '0' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			END) as vip_level, -- 角色vip等级 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		a.game_id as role_reg_game_id, -- 角色注册游戏id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		d.game_name as role_reg_game_name, -- 角色注册游戏名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		d.classify as role_reg_game_classify, -- 角色注册游戏类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		IFNULL(d.parent_id, a.game_id) as role_reg_parent_game_id, -- 角色注册游戏的父游戏id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		IFNULL(e.parent_game_name, d.game_name) as role_reg_parent_game_name, -- 角色注册游戏的父游戏名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		a.server_id as server_id, -- 角色所在区服id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		q.server_name as server_name, -- 角色所在区服名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		IFNULL(f.real_amount, 0) as role_last_amount, -- 角色最近充值金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		f.pay_time as role_last_pay_time, -- 角色最近充值时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		g.active_time as role_active_time, -- 角色最近活跃时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		IFNULL(h.real_amount, 0) as role_first_amount, -- 角色首次充值金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		p.today_amount as today_amount, -- 角色当天充值金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		TIMESTAMPDIFF(SECOND, a.create_time, f.pay_time) as role_reg_pay_time, -- 角色创建充值时间差(秒) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		TIMESTAMPDIFF(SECOND, f.pay_time, NOW()) as role_pay_until_now, -- 角色最近充值距今(秒) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		a.user_id as user_id, -- 玩家id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	    i.username as username, -- 玩家名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	    i.nickname as nickname, -- 玩家昵称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	    i.reg_mobile as reg_mobile, -- 玩家注册手机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	    i.reg_email as reg_email, -- 玩家注册邮箱 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	    i.user_create_time as user_create_time, -- 玩家注册时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	    i.user_reg_game_id as user_reg_game_id, -- 玩家注册游戏id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	    i.user_reg_game_name as user_reg_game_name, -- 玩家注册游戏名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	    i.agent_id as agent_id, -- 玩家注册渠道id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	    IF(i.agent_id = 0 , '自然量', i.agent_name) as agent_name, -- 玩家注册渠道名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	    i.user_active_time as user_active_time, -- 玩家最近活跃时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	    i.user_last_recharge_game_id as user_last_recharge_game_id, -- 玩家最近充值游戏id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	    i.user_last_recharge_game_name as user_last_recharge_game_name, -- 玩家最近充值游戏名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		i.user_pay_time as user_pay_time, -- 玩家最近充值时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		TIMESTAMPDIFF(SECOND, i.user_create_time, i.user_pay_time) as user_reg_pay_time, -- 玩家注册充值时间差(秒) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		TIMESTAMPDIFF(SECOND, i.user_pay_time, NOW()) as user_pay_until_now, -- 玩家最近充值距今(秒) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.is_send_mail as is_send_mail, -- 是否发送邮件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.send_gift_id as send_gift_id, -- 最新发送礼包id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.is_change_game_type as is_change_game_type, -- 是否转端 1-是;0-否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.is_add_corp_wechat as is_add_corp_wechat, -- 是否添加企微 1-是; 0-否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.add_corp_user_id as add_corp_user_id, -- 企微号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.user_wechat as user_wechat, -- 客户微信号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.user_phone as user_phone, -- 客户手机号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.is_remove_game as is_remove_game, -- 是否退游 1-是;0-否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.is_wake_up as is_wake_up, -- 是否唤醒 1-是;0-否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.remark as remark, -- 备注 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.gs_id as gs_id, -- GS_ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.customer_service_id as customer_service_id, -- 客服ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.oper_user_id as oper_user_id, -- 运营ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.put_user_id as put_user_id, -- 投手ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.create_time as create_time, -- 创建时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.create_by as create_by, -- 创建者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.update_time as update_time, -- 更新时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.update_by as update_by, -- 更新者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		j.is_delete as is_delete -- 是否删除 1-删除;0-正常 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	FROM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		FROM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				-- 角色所在子游戏id、区服id、合服id、角色id、角色名、角色创建时间、角色操作系统os(取创建时间最早的信息) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				b.association_user_id , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				a.source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				a.user_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				a.game_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				a.server_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				a.role_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				a.role_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				a.create_time, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				a.os, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				ROW_NUMBER()over(partition by a.role_id , a.source_system order by a.create_time asc, a.user_id asc) as num 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		) a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		WHERE num = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	) a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			-- 角色等级、角色攻击力(取最新的信息) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			role_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			role_level, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			combat_num, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			ROW_NUMBER()over(partition by role_id , source_system order by update_time desc, user_id desc) as num 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		FROM dm_game_order.t_game_user_role 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	) b on a.source_system = b.source_system AND a.role_id = b.role_id AND b.num = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	) c on a.source_system = c.source_system AND a.role_id = c.role_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			-- 游戏名称、游戏类型、父游戏id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			game_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			classify, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			parent_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		FROM dm_game_order.t_game 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	) d on a.source_system = d.source_system AND a.game_id = d.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			-- 父游戏名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			game_name as parent_game_name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		FROM dm_game_order.t_game 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	) e on d.source_system = e.source_system AND d.parent_id = e.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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	) f on a.source_system = f.source_system AND a.role_id = f.role_id AND f.num = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		-- 角色最近活跃时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			role_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			active_time, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			ROW_NUMBER()over(partition by role_id , source_system order by active_time desc) as num 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		FROM dm_game_order.t_active_log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	) g on a.source_system = g.source_system AND a.role_id = g.role_id AND g.num = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			-- 角色首次充值金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			role_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			real_amount, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			ROW_NUMBER()over(partition by role_id , source_system order by pay_time asc) as num 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		FROM dm_game_order.t_game_order  WHERE status =2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	) h on a.source_system = h.source_system AND a.role_id = h.role_id AND h.num = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			-- 角色当天充值金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			role_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			SUM(real_amount) as today_amount 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		FROM dm_game_order.t_game_order 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                """ + criTodayAmount + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		GROUP BY role_id ,source_system 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	) p on a.source_system = p.source_system AND a.role_id = p.role_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			-- 区服名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			source_system , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			game_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			server_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			server_name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		FROM dm_game_order.t_game_server 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	) q on a.source_system = q.source_system AND a.game_id = q.game_id AND a.server_id = q.server_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		-- 玩家信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		-- 玩家ID、玩家账号、玩家昵称、注册电话、注册邮箱、注册时间、注册游戏、注册渠道 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			i.source_system as source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        i.association_user_id as association_user_id, -- 来源用户id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        i.id as id, -- 玩家id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        i.username as username, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        i.nickname as nickname, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        i.reg_mobile as reg_mobile, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        i.reg_email as reg_email, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        i.user_create_time as user_create_time, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        i.user_reg_game_id as user_reg_game_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        k.game_name as user_reg_game_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        i.agent_id as agent_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        IF(i.agent_id = 0 , '自然量', j.agent_name) as agent_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        l.active_time as user_active_time, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        m.user_last_recharge_game_id as user_last_recharge_game_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	        n.game_name as user_last_recharge_game_name, -- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			m.pay_time as user_pay_time -- 玩家最近充值时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		FROM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			FROM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					association_user_id, -- 来源用户id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					id , -- 玩家id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					username , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					nickname , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					reg_mobile , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					reg_email , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					create_time as user_create_time, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					game_id as user_reg_game_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					agent_id , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					ROW_NUMBER()over(partition by association_user_id, source_system order by create_time desc, id asc) as num 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				FROM dm_game_order.t_game_user 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			) z WHERE z.num = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		) i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				-- 渠道名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				agent_name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			FROM dm_game_order.t_pitcher_agent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		) j ON i.agent_id = j.id AND i.source_system  = j.source_system 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				-- 玩家注册游戏名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				game_name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			FROM dm_game_order.t_game 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		) k ON i.user_reg_game_id = k.id AND i.source_system = k.source_system 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			-- 玩家最近活跃时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				association_user_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				b.source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				b.active_time, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				ROW_NUMBER()over(partition by association_user_id, b.source_system order by active_time desc) as num 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			FROM dm_game_order.t_game_user a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			RIGHT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					user_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					active_time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				FROM dm_game_order.t_active_log 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			) b ON a.source_system = b.source_system AND a.id = b.user_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		) l ON i.association_user_id = l.association_user_id AND i.source_system = l.source_system AND l.num = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			-- 玩家最近充值游戏、玩家最近充值时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				association_user_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				b.*, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				ROW_NUMBER()over(partition by association_user_id, b.source_system order by pay_time desc) as num 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			FROM dm_game_order.t_game_user a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			RIGHT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				-- 玩家最近充值游戏id、最近充值时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					user_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					game_id as user_last_recharge_game_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                					pay_time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				FROM dm_game_order.t_game_order 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				WHERE status = 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			) b on a.id = b.user_id AND a.source_system = b.source_system 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		) m on i.association_user_id = m.association_user_id AND i.source_system = m.source_system AND m.num = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				-- 玩家最近充值游戏名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				source_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                				game_name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			FROM dm_game_order.t_game 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		) n ON m.user_last_recharge_game_id = n.id AND m.source_system = n.source_system 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	) i on a.source_system = i.source_system AND a.association_user_id = i.association_user_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		SELECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                			* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                		FROM dm_game_order.t_role_operate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	) j on a.source_system = j.source_system AND a.association_user_id = j.user_id AND 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                	a.role_id = j.role_id AND a.server_id = j.server_id AND a.game_id = j.game_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ) a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                """ + criA; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |