|
@@ -226,6 +226,8 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
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, -- 角色所在区服名
|
|
|
+ r.server_id as merge_server_id, -- 角色所在合服id
|
|
|
+ r.server_name as merge_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, -- 角色最近活跃时间
|
|
@@ -315,12 +317,13 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
) 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
|
|
|
+ -- 游戏名称、游戏类型、父游戏id、超父游戏id
|
|
|
+ source_system,
|
|
|
+ id,
|
|
|
+ game_name,
|
|
|
+ classify,
|
|
|
+ parent_id,
|
|
|
+ super_game_id
|
|
|
FROM dm_game_order.t_game
|
|
|
) d on a.source_system = d.source_system AND a.game_id = d.id
|
|
|
LEFT JOIN (
|
|
@@ -369,158 +372,170 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
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,
|
|
|
- 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, --
|
|
|
- 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,
|
|
|
- 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 (
|
|
|
- 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
|
|
|
- -- 操作表相关数据
|
|
|
- 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
|
|
|
- LEFT JOIN (
|
|
|
+ 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 (
|
|
|
+ SELECT
|
|
|
+ -- 合服id、合服名称
|
|
|
+ source_system,
|
|
|
+ game_id,
|
|
|
+ source_server_ids,
|
|
|
+ server_id,
|
|
|
+ server_name
|
|
|
+ FROM dm_game_order.t_game_server_merge
|
|
|
+ WHERE is_merge = 0
|
|
|
+ ) r on a.source_system = r.source_system AND a.server_id = r.source_server_ids AND d.super_game_id = r.game_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,
|
|
|
+ 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,
|
|
|
+ m.pay_time as user_pay_time -- 玩家最近充值时间
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ *
|
|
|
+ FROM
|
|
|
+ (
|
|
|
SELECT
|
|
|
source_system,
|
|
|
- id,
|
|
|
- game_id,
|
|
|
- gift_name
|
|
|
- FROM dm_game_order.t_game_gift
|
|
|
- ) k on j.source_system = k.source_system AND j.send_gift_id = k.id AND j.game_id = k.game_id
|
|
|
- ) a
|
|
|
- """ + criA;
|
|
|
+ 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
|
|
|
+ -- 渠道名称、投手id
|
|
|
+ source_system,
|
|
|
+ id,
|
|
|
+ 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 (
|
|
|
+ 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
|
|
|
+ -- 操作表相关数据
|
|
|
+ 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
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ -- 礼包名
|
|
|
+ source_system,
|
|
|
+ id,
|
|
|
+ game_id,
|
|
|
+ gift_name
|
|
|
+ FROM dm_game_order.t_game_gift
|
|
|
+ ) k on j.source_system = k.source_system AND j.send_gift_id = k.id AND j.game_id = k.game_id
|
|
|
+ ) a
|
|
|
+ """ + criA;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -535,304 +550,344 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
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
|
|
|
- k.gift_name as gift_name, -- 礼包名
|
|
|
- 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
|
|
|
+ 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, -- 角色所在区服名
|
|
|
+ r.server_id as merge_server_id, -- 角色所在合服id
|
|
|
+ r.server_name as merge_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.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, -- 玩家最近充值距今(秒)
|
|
|
+ j.is_send_mail as is_send_mail, -- 是否发送邮件
|
|
|
+ j.send_gift_id as send_gift_id, -- 最新发送礼包id
|
|
|
+ k.gift_name as gift_name, -- 礼包名
|
|
|
+ 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
|
|
|
+ *
|
|
|
+ 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、超父游戏id
|
|
|
+ source_system,
|
|
|
+ id,
|
|
|
+ game_name,
|
|
|
+ classify,
|
|
|
+ parent_id,
|
|
|
+ super_game_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
|
|
|
- LEFT JOIN (
|
|
|
+ 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 (
|
|
|
+ SELECT
|
|
|
+ -- 合服id、合服名称
|
|
|
+ source_system,
|
|
|
+ game_id,
|
|
|
+ source_server_ids,
|
|
|
+ server_id,
|
|
|
+ server_name
|
|
|
+ FROM dm_game_order.t_game_server_merge
|
|
|
+ WHERE is_merge = 0
|
|
|
+ ) r on a.source_system = r.source_system AND a.server_id = r.source_server_ids AND d.super_game_id = r.game_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,
|
|
|
+ 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,\s
|
|
|
+ m.pay_time as user_pay_time -- 玩家最近充值时间
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ *
|
|
|
+ FROM
|
|
|
+ (
|
|
|
SELECT
|
|
|
source_system,
|
|
|
- id,
|
|
|
- game_id,
|
|
|
- gift_name
|
|
|
- FROM dm_game_order.t_game_gift
|
|
|
- ) k on j.source_system = k.source_system AND j.send_gift_id = k.id AND j.game_id = k.game_id
|
|
|
- ) a
|
|
|
- """ + criA;
|
|
|
+ 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
|
|
|
+ -- 渠道名称、投手id
|
|
|
+ source_system,
|
|
|
+ id,
|
|
|
+ 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 (
|
|
|
+ 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
|
|
|
+ -- 操作表相关数据
|
|
|
+ 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
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ -- 礼包名
|
|
|
+ source_system,
|
|
|
+ id,
|
|
|
+ game_id,
|
|
|
+ gift_name
|
|
|
+ FROM dm_game_order.t_game_gift
|
|
|
+ ) k on j.source_system = k.source_system AND j.send_gift_id = k.id AND j.game_id = k.game_id
|
|
|
+ ) a
|
|
|
+ """ + criA;
|
|
|
}
|
|
|
|
|
|
private String getRoleCombatRankingSql() {
|