|
@@ -830,6 +830,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
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, -- 平均单价
|
|
|
+ IFNULL(w.vip_level,
|
|
|
(CASE
|
|
|
WHEN c.amount >= 0 and c.amount < 2000 THEN '1'
|
|
|
WHEN c.amount >= 2000 and c.amount < 5000 THEN '2'
|
|
@@ -838,7 +839,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
WHEN c.amount >= 20000 and c.amount < 50000 THEN '5'
|
|
|
WHEN c.amount >= 50000 THEN '6'
|
|
|
ELSE '0'
|
|
|
- END) as vip_level, -- 角色vip等级
|
|
|
+ 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, -- 角色注册游戏类型
|
|
@@ -1199,6 +1200,21 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
FROM dm_game_order.t_game
|
|
|
) b on a.source_system = b.source_system AND a.game_id = b.id
|
|
|
) u on a.source_system = u.source_system AND a.role_id = u.role_id AND d.super_game_id = u.super_game_id AND u.num =1
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ -- vip等级
|
|
|
+ source_system ,
|
|
|
+ super_game_id ,
|
|
|
+ parent_game_id ,
|
|
|
+ recharge_money_min ,
|
|
|
+ recharge_money_max ,
|
|
|
+ vip_level ,
|
|
|
+ is_delete
|
|
|
+ FROM dm_game_order.t_game_vip
|
|
|
+ WHERE is_delete = 0
|
|
|
+ ) w on d.source_system = w.source_system AND IFNULL(d.parent_id, a.game_id) = w.parent_game_id
|
|
|
+ AND IFNULL(d.super_game_id, a.game_id) = w.super_game_id
|
|
|
+ AND c.amount >= w.recharge_money_min AND c.amount < recharge_money_max
|
|
|
) a
|
|
|
""" + criA;
|
|
|
}
|
|
@@ -1227,6 +1243,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
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, -- 平均单价
|
|
|
+ IFNULL(w.vip_level,
|
|
|
(CASE
|
|
|
WHEN c.amount >= 0 and c.amount < 2000 THEN '1'
|
|
|
WHEN c.amount >= 2000 and c.amount < 5000 THEN '2'
|
|
@@ -1235,7 +1252,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
WHEN c.amount >= 20000 and c.amount < 50000 THEN '5'
|
|
|
WHEN c.amount >= 50000 THEN '6'
|
|
|
ELSE '0'
|
|
|
- END) as vip_level, -- 角色vip等级
|
|
|
+ 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, -- 角色注册游戏类型
|
|
@@ -1480,19 +1497,19 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
) 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 as update_time,
|
|
|
- ROW_NUMBER()over(partition by association_user_id, b.source_system order by b.active_time desc) as num
|
|
|
- FROM dm_game_order.t_game_user a
|
|
|
- LEFT JOIN (
|
|
|
- SELECT
|
|
|
- source_system ,
|
|
|
- user_id,
|
|
|
- active_time
|
|
|
- FROM game_dw.dw_active_log
|
|
|
- ) b ON a.source_system = b.source_system AND a.id = b.user_id
|
|
|
+ SELECT
|
|
|
+ association_user_id,
|
|
|
+ b.source_system,
|
|
|
+ b.active_time as update_time,
|
|
|
+ ROW_NUMBER()over(partition by association_user_id, b.source_system order by b.active_time desc) as num
|
|
|
+ FROM dm_game_order.t_game_user a
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ source_system ,
|
|
|
+ user_id,
|
|
|
+ active_time
|
|
|
+ FROM game_dw.dw_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 (
|
|
|
-- 玩家最近充值游戏、玩家最近充值时间
|
|
@@ -1576,26 +1593,41 @@ public class RoleManageServiceImpl implements IRoleManageService {
|
|
|
WHERE is_delete = 0
|
|
|
) t on a.source_system = t.source_system AND a.server_id = t.server_id AND d.super_game_id = t.game_id
|
|
|
LEFT JOIN(
|
|
|
- SELECT
|
|
|
- a.source_system,
|
|
|
- a.role_id,
|
|
|
- a.role_name,
|
|
|
- a.role_level,
|
|
|
- a.combat_num ,
|
|
|
- a.game_id ,
|
|
|
- b.parent_game_id,
|
|
|
- b.super_game_id ,
|
|
|
- ROW_NUMBER()over(partition by a.source_system , a.role_id, b.parent_game_id order by a.role_level desc,a.combat_num desc) as num
|
|
|
- FROM dm_game_order.t_game_user_role a
|
|
|
- LEFT JOIN (
|
|
|
- SELECT
|
|
|
- source_system,
|
|
|
- id,
|
|
|
- IFNULL(parent_id, id) as parent_game_id,
|
|
|
- IFNULL(super_game_id, id) as super_game_id
|
|
|
- FROM dm_game_order.t_game
|
|
|
- ) b on a.source_system = b.source_system AND a.game_id = b.id
|
|
|
- ) u on a.source_system = u.source_system AND a.role_id = u.role_id AND d.super_game_id = u.super_game_id AND u.num =1
|
|
|
+ SELECT
|
|
|
+ a.source_system,
|
|
|
+ a.role_id,
|
|
|
+ a.role_name,
|
|
|
+ a.role_level,
|
|
|
+ a.combat_num ,
|
|
|
+ a.game_id ,
|
|
|
+ b.parent_game_id,
|
|
|
+ b.super_game_id ,
|
|
|
+ ROW_NUMBER()over(partition by a.source_system , a.role_id, b.parent_game_id order by a.role_level desc,a.combat_num desc) as num
|
|
|
+ FROM dm_game_order.t_game_user_role a
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ source_system,
|
|
|
+ id,
|
|
|
+ IFNULL(parent_id, id) as parent_game_id,
|
|
|
+ IFNULL(super_game_id, id) as super_game_id
|
|
|
+ FROM dm_game_order.t_game
|
|
|
+ ) b on a.source_system = b.source_system AND a.game_id = b.id
|
|
|
+ ) u on a.source_system = u.source_system AND a.role_id = u.role_id AND d.super_game_id = u.super_game_id AND u.num =1
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ -- vip等级
|
|
|
+ source_system ,
|
|
|
+ super_game_id ,
|
|
|
+ parent_game_id ,
|
|
|
+ recharge_money_min ,
|
|
|
+ recharge_money_max ,
|
|
|
+ vip_level ,
|
|
|
+ is_delete
|
|
|
+ FROM dm_game_order.t_game_vip
|
|
|
+ WHERE is_delete = 0
|
|
|
+ ) w on d.source_system = w.source_system AND IFNULL(d.parent_id, a.game_id) = w.parent_game_id
|
|
|
+ AND IFNULL(d.super_game_id, a.game_id) = w.super_game_id
|
|
|
+ AND c.amount >= w.recharge_money_min AND c.amount < recharge_money_max
|
|
|
) a
|
|
|
""" + criA;
|
|
|
}
|