فهرست منبع

修改内容:头条条件字段、角色充值排行榜、玩家日志

lth 1 سال پیش
والد
کامیت
9d52463532

+ 12 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PromotionDayDTO.java

@@ -128,4 +128,16 @@ public class PromotionDayDTO extends BasePage {
     @ApiModelProperty(notes = "排序方式:升序asc;降序desc")
     private String sortType;
 
+    /**
+     * 首日充值金额(最大值)
+     */
+    @ApiModelProperty(notes = "首日充值金额(最大值)")
+    private Long firstRechargeAmountMax;
+
+    /**
+     * 首日充值金额(最小值)
+     */
+    @ApiModelProperty(notes = "首日充值金额(最小值)")
+    private Long firstRechargeAmountMin;
+
 }

+ 12 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/PromotionDayTotalDTO.java

@@ -115,4 +115,16 @@ public class PromotionDayTotalDTO {
     @ApiModelProperty(value = "游戏应用类型")
     private Long classify;
 
+    /**
+     * 首日充值金额(最大值)
+     */
+    @ApiModelProperty(notes = "首日充值金额(最大值)")
+    private Long firstRechargeAmountMax;
+
+    /**
+     * 首日充值金额(最小值)
+     */
+    @ApiModelProperty(notes = "首日充值金额(最小值)")
+    private Long firstRechargeAmountMin;
+
 }

+ 3 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PlayerDataServiceImpl.java

@@ -383,6 +383,9 @@ public class PlayerDataServiceImpl implements IPlayerDataService {
         if (dto.getType() != null) {
             cri.where().andEquals("log_type", dto.getType());
         }
+        if (StringUtils.isNotBlank(dto.getIp())) {
+            cri.where().andEquals("ip", dto.getIp());
+        }
         //分页
         Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
         //获取记录数

+ 14 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PromotionDayServiceImpl.java

@@ -272,6 +272,13 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
         if (StringUtils.isNotBlank(dto.getSourceSystem())) {
             cri.where().andEquals("source_system", dto.getSourceSystem());
         }
+        //首日充值金额筛选
+        if (dto.getFirstRechargeAmountMin() != null) {
+            cri.where().andGTE("first_new_user_amount", dto.getFirstRechargeAmountMin());
+        }
+        if (dto.getFirstRechargeAmountMax() != null) {
+            cri.where().andLTE("first_new_user_amount", dto.getFirstRechargeAmountMax());
+        }
         //创建sql
         Sql promotionDayTotalSql = Sqls.create(promotionDayTotalSql() + cri);
         //设置回传对象
@@ -806,6 +813,13 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
             cri.where().andEquals("source_system", dto.getSourceSystem());
         }
         if (needGroupBy) {
+            //只作用于主表查询,首日充值金额筛选
+            if (dto.getFirstRechargeAmountMin() != null) {
+                cri.where().andGTE("first_new_user_amount", dto.getFirstRechargeAmountMin());
+            }
+            if (dto.getFirstRechargeAmountMax() != null) {
+                cri.where().andLTE("first_new_user_amount", dto.getFirstRechargeAmountMax());
+            }
             //拼接分组条件
             cri.getGroupBy().groupBy("promotion_id");
         }

+ 211 - 190
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/RoleManageServiceImpl.java

@@ -780,11 +780,13 @@ public class RoleManageServiceImpl implements IRoleManageService {
                   		IFNULL(s.name, d.game_name) as role_reg_super_game_name, -- 角色注册的超父游戏名
                 		a.server_id as server_id, -- 角色所在区服id
                 		q.server_name as server_name, -- 角色所在区服名
+                		t.server_name as source_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.update_time as role_active_time, -- 角色最近活跃时间
+                		TIMESTAMPDIFF(SECOND, g.update_time, NOW()) as role_active_until_now, -- 角色最近活跃距今
                 		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, -- 角色创建充值时间差(秒)
@@ -1094,6 +1096,15 @@ public class RoleManageServiceImpl implements IRoleManageService {
                             name
                         FROM dm_game_order.t_game_super
                     ) s on d.source_system = s.source_system AND d.super_game_id = s.id
+                    LEFT JOIN (
+                        SELECT
+                            -- 原始服名
+                            source_system,
+                            game_id,
+                            server_id,
+                            server_name
+                        FROM dm_game_order.t_game_server_merge
+                    ) t on a.source_system = t.source_system AND a.server_id = t.server_id AND d.super_game_id = t.game_id
                 ) a
                 """ + criA;
     }
@@ -1107,9 +1118,8 @@ public class RoleManageServiceImpl implements IRoleManageService {
     private String getCountNumSql(Criteria criA, Criteria criTodayAmount) {
         return """
                 SELECT
-                	COUNT(1)
-                FROM
-                (
+                    COUNT(1)
+                FROM (
                     SELECT
                         a.association_user_id as association_user_id, -- 来源的用户id
                         a.source_system as source_system, -- sdk来源
@@ -1140,11 +1150,13 @@ public class RoleManageServiceImpl implements IRoleManageService {
                         IFNULL(s.name, d.game_name) as role_reg_super_game_name, -- 角色注册的超父游戏名
                         a.server_id as server_id, -- 角色所在区服id
                         q.server_name as server_name, -- 角色所在区服名
+                        t.server_name as source_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.update_time as role_active_time, -- 角色最近活跃时间
+                        TIMESTAMPDIFF(SECOND, g.update_time, NOW()) as role_active_until_now, -- 角色最近活跃距今
                         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, -- 角色创建充值时间差(秒)
@@ -1232,12 +1244,12 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     LEFT JOIN (
                         SELECT
                             -- 游戏名称、游戏类型、父游戏id、超父游戏id
-                                source_system,
-                                id,
-                                game_name,
-                                classify,
-                                parent_id,
-                                super_game_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 (
@@ -1261,12 +1273,12 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     ) 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,
-                                update_time,
-                                ROW_NUMBER() OVER(PARTITION BY role_id , source_system order by update_time desc) as num
-                            from dm_game_order.t_game_user_role
+                        SELECT
+                            source_system,
+                            role_id,
+                            update_time,
+                            ROW_NUMBER() OVER(PARTITION BY role_id , source_system order by update_time desc) as num
+                        from dm_game_order.t_game_user_role
                     ) g on a.source_system = g.source_system AND a.role_id = g.role_id AND g.num = 1
                     LEFT JOIN (
                         SELECT
@@ -1284,177 +1296,186 @@ public class RoleManageServiceImpl implements IRoleManageService {
                             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 (
-                           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.update_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
-                                   -- 渠道名称、投手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.update_time,
-                                   ROW_NUMBER()over(partition by association_user_id, b.source_system order by b.update_time desc) as num
-                               FROM dm_game_order.t_game_user a
-                               RIGHT JOIN (
-                                   SELECT
-                                       source_system ,
-                                       user_id,
-                                       update_time
-                                   FROM dm_game_order.t_game_user_role
-                               ) 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,
-                               gift_name
-                           FROM dm_game_order.t_game_gift
-                       ) k on j.source_system = k.source_system AND j.send_gift_id = k.id
-                       LEFT JOIN (
-                           SELECT
-                               source_system ,
-                               id,
-                               name
-                           FROM dm_game_order.t_game_super
-                       ) s on d.source_system = s.source_system AND d.super_game_id = s.id
-                   ) a
+                    """ + 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 (
+                        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.update_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
+                                -- 渠道名称、投手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.update_time,
+                                ROW_NUMBER()over(partition by association_user_id, b.source_system order by b.update_time desc) as num
+                            FROM dm_game_order.t_game_user a
+                            RIGHT JOIN (
+                                SELECT
+                                    source_system ,
+                                    user_id,
+                                    update_time
+                                FROM dm_game_order.t_game_user_role
+                            ) 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,
+                            gift_name
+                        FROM dm_game_order.t_game_gift
+                    ) k on j.source_system = k.source_system AND j.send_gift_id = k.id
+                    LEFT JOIN (
+                        SELECT
+                            source_system ,
+                            id,
+                            name
+                        FROM dm_game_order.t_game_super
+                    ) s on d.source_system = s.source_system AND d.super_game_id = s.id
+                    LEFT JOIN (
+                        SELECT
+                            -- 原始服名
+                            source_system,
+                            game_id,
+                            server_id,
+                            server_name
+                        FROM dm_game_order.t_game_server_merge
+                    ) t on a.source_system = t.source_system AND a.server_id = t.server_id AND d.super_game_id = t.game_id
+                ) a
                 """ + criA;
     }
 
@@ -1883,7 +1904,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 		server_id, -- 区服ID
                 		IFNULL(MAX(i.server_name), MAX(a.server_name)) as server_name, -- 区服名
                 		MIN(dt) as dt, -- 开服日期
-                		TIMESTAMPDIFF(DAY, MIN(dt), NOW()) start_day, -- 开服天数
+                		TIMESTAMPDIFF(DAY, DATE(MIN(dt)), DATE_ADD(Date(NOW()),1)) start_day, -- 开服天数
                 		boss_server_id, -- 合服ID
                 		MAX(boss_server_name) as boss_server_name, -- 合服名
                 		MAX(merge_time) as merge_time , -- 合服时间
@@ -2126,7 +2147,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     		server_id, -- 区服ID
                     		IFNULL(MAX(i.server_name), MAX(a.server_name)) as server_name, -- 区服名
                     		MIN(dt) as dt, -- 开服日期
-                    		TIMESTAMPDIFF(DAY, MIN(dt), NOW()) start_day, -- 开服天数
+                    		TIMESTAMPDIFF(DAY, DATE(MIN(dt)), DATE_ADD(Date(NOW()),1)) start_day, -- 开服天数
                     		boss_server_id, -- 合服ID
                     		MAX(boss_server_name) as boss_server_name, -- 合服名
                     		MAX(merge_time) as merge_time , -- 合服时间
@@ -2369,7 +2390,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 		boss_server_id as server_id, -- 合服ID
                 		IFNULL(MAX(h.server_name), MAX(a.boss_server_name)) as server_name, -- 合服名
                 		MIN(merge_time) as dt, -- 合服时间
-                		TIMESTAMPDIFF(DAY, MIN(merge_time), NOW()) start_day, -- 开服天数
+                		TIMESTAMPDIFF(DAY, DATE(MIN(merge_time)), DATE_ADD(Date(NOW()),1)) start_day, -- 开服天数
                 		MAX(sum_server_count) as sum_server_count, -- 合服次数
                 		IFNULL(MAX(h.is_merge), 0) as is_merge, -- 是否参与过合服
                 		MAX(b.main_server_id) as main_server_id, -- 主服ID
@@ -2664,7 +2685,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     		boss_server_id as server_id, -- 合服ID
                     		IFNULL(MAX(h.server_name), MAX(a.boss_server_name)) as server_name, -- 合服名
                     		MIN(merge_time) as dt, -- 合服时间
-                    		TIMESTAMPDIFF(DAY, MIN(merge_time), NOW()) start_day, -- 开服天数
+                    		TIMESTAMPDIFF(DAY, DATE(MIN(merge_time)), DATE_ADD(Date(NOW()),1)) start_day, -- 开服天数
                     		MAX(sum_server_count) as sum_server_count, -- 合服次数
                     		IFNULL(MAX(h.is_merge), 0) as is_merge, -- 是否参与过合服
                     		MAX(b.main_server_id) as main_server_id, -- 主服ID