Explorar o código

Merge branch 'package' of GameCenter/game-center into dev

zhimo hai 5 meses
pai
achega
a986528dc2

+ 1 - 1
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/AdsOrderDetailTotalVO.java

@@ -24,7 +24,7 @@ public class AdsOrderDetailTotalVO {
      * 回传金额
      */
     @ApiModelProperty(notes = "回传金额")
-    private Long backMoney;
+    private BigDecimal backMoney;
 
 
 }

+ 1 - 1
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/AdsOrderDetailVO.java

@@ -209,7 +209,7 @@ public class AdsOrderDetailVO {
      * 回传金额
      */
     @ApiModelProperty(notes = "回传金额")
-    private Long backMoney;
+    private BigDecimal backMoney;
 
     /**
      * 回传信息

+ 27 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AdsOrderDetailServiceImpl.java

@@ -912,6 +912,33 @@ public class AdsOrderDetailServiceImpl implements IAdsOrderDetailService {
                 			back_money,
                 			'tencent_h5' as back_table_name
                 		FROM dm_ad_tencent.t_game_tencent_order
+                		UNION ALL
+                      SELECT
+                          id,
+                          order_no as order_id,
+                          back_status,
+                          back_msg,
+                          back_money,
+                          'oceanengine_app' as back_table_name
+                      FROM dm_ad_byte.t_game_oceanengine_app_order_log
+                         UNION ALL
+                      SELECT
+                          id,
+                          order_id,
+                          is_back as  back_status,
+                          back_msg,
+                           back_money,
+                          'tencent_app' as back_table_name
+                      FROM dm_ad_tencent.t_game_tencent_app_order
+                         UNION ALL
+                     SELECT
+                         id,
+                         order_id,
+                         is_back as back_status,
+                         back_msg,
+                          back_money,
+                         'tencent_app_api' as back_table_name
+                     FROM dm_ad_tencent.t_game_tencent_app_api_order
                 	) l on a.order_id = l.order_id
                 	LEFT JOIN (
                 		SELECT

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

@@ -3803,9 +3803,9 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 			a.source_system as g_source_system,
                 			d.boss_server_id as g_boss_server_id,
                 			c.super_game_id as g_super_game_id,
-                			count(distinct IF(Date(NOW()) = dt,user_id,NULL)) as ba1_active_num, -- 今日活跃人数
-                			count(distinct IF(date_add(Date(NOW()),-1)=dt,user_id,NULL)) as ba2_active_num, -- 昨日活跃人数
-                			count(distinct IF(date_add(Date(NOW()),-2)=dt,user_id,NULL)) as ba3_active_num -- 前日活跃人数
+                			count(distinct IF(Date(NOW()) = dt,association_user_id,NULL)) as ba1_active_num, -- 今日活跃人数
+                			count(distinct IF(date_add(Date(NOW()),-1)=dt,association_user_id,NULL)) as ba2_active_num, -- 昨日活跃人数
+                			count(distinct IF(date_add(Date(NOW()),-2)=dt,association_user_id,NULL)) as ba3_active_num -- 前日活跃人数
                 		from dm_game_order.t_game_server a
                 		left join game_dw.dw_active_log b on a.source_system = b.source_system and a.server_id = b.server_id and a.game_id = b.game_id
                 		LEFT JOIN (
@@ -4124,9 +4124,9 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 			a.source_system as g_source_system,
                 			d.boss_server_id as g_boss_server_id,
                 			c.super_game_id as g_super_game_id,
-                			count(distinct IF(Date(NOW()) = dt,user_id,NULL)) as ba1_active_num, -- 今日活跃人数
-                			count(distinct IF(date_add(Date(NOW()),-1)=dt,user_id,NULL)) as ba2_active_num, -- 昨日活跃人数
-                			count(distinct IF(date_add(Date(NOW()),-2)=dt,user_id,NULL)) as ba3_active_num -- 前日活跃人数
+                			count(distinct IF(Date(NOW()) = dt,association_user_id,NULL)) as ba1_active_num, -- 今日活跃人数
+                			count(distinct IF(date_add(Date(NOW()),-1)=dt,association_user_id,NULL)) as ba2_active_num, -- 昨日活跃人数
+                			count(distinct IF(date_add(Date(NOW()),-2)=dt,association_user_id,NULL)) as ba3_active_num -- 前日活跃人数
                 		from dm_game_order.t_game_server a
                 		left join game_dw.dw_active_log b on a.source_system = b.source_system and a.server_id = b.server_id and a.game_id = b.game_id
                 		LEFT JOIN (

+ 1 - 1
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/SDKApplication.java

@@ -23,7 +23,7 @@ public class SDKApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(SDKApplication.class, args);
-        System.out.println("赞象SDK服务启动成功 <新游戏梦回解决订单中CP订单id不正确的问题> ( ´・・)ノ(._.`) \n" +
+        System.out.println("赞象SDK服务启动成功 <解决玩家被重复买量, AgentLog数据错误的问题> ( ´・・)ノ(._.`) \n" +
                 " ___________ _   __\n" +
                 "/  ___|  _  \\ | / /\n" +
                 "\\ `--.| | | | |/ / \n" +

+ 5 - 4
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/IUserAgentLogService.java

@@ -3,6 +3,7 @@ package com.zanxiang.game.module.sdk.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zanxiang.game.module.mybatis.entity.User;
 import com.zanxiang.game.module.mybatis.entity.UserAgentLog;
+import reactor.util.function.Tuple3;
 
 /**
  * @author : lingfeng
@@ -22,10 +23,10 @@ public interface IUserAgentLogService extends IService<UserAgentLog> {
     /**
      * 代理更新日志
      *
-     * @param user       用户
-     * @param newAgentId 新代理id
-     * @param newChannel 新渠道
+     * @param oldAgentChannel 用户信息
+     * @param newAgentId      新代理id
+     * @param newChannel      新渠道
      * @return boolean
      */
-    boolean agentUpdateLog(User user, Long newAgentId, String newChannel);
+    boolean agentUpdateLog(Tuple3<Long, Long, String> oldAgentChannel, Long newAgentId, String newChannel);
 }

+ 3 - 2
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/AgentServiceImpl.java

@@ -8,7 +8,6 @@ import com.github.sd4324530.jtuple.Tuple2;
 import com.zanxiang.game.back.base.ServerInfo;
 import com.zanxiang.game.back.base.pojo.dto.TencentAppApiUserAgentQueryRpcDTO;
 import com.zanxiang.game.back.base.rpc.ITencentAppApiBackRpc;
-import com.zanxiang.game.back.base.rpc.ITencentUserActionBackRpc;
 import com.zanxiang.game.module.base.pojo.enums.GameCategoryEnum;
 import com.zanxiang.game.module.mybatis.entity.*;
 import com.zanxiang.game.module.mybatis.mapper.AgentMapper;
@@ -96,6 +95,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
             if (agent == null) {
                 return;
             }
+            //保存旧的渠道信息
+            Tuple3<Long, Long, String> oldAgentChannel = Tuples.of(user.getId(), user.getAgentId(), user.getChannel());
             //更新用户信息
             user.setAgentId(agent.getId());
             user.setUpdateTime(LocalDateTime.now());
@@ -107,7 +108,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
             }
             userService.updateById(user);
             //添加渠道变更记录
-            userAgentLogService.agentUpdateLog(user, agent.getId(), channel);
+            userAgentLogService.agentUpdateLog(oldAgentChannel, agent.getId(), channel);
             //回传用户信息
             callBackService.userCallBack(user, tuple3.getT2());
             //注册信息埋点数据发送到卡夫卡

+ 3 - 1
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/CpPushDataServiceImpl.java

@@ -554,13 +554,15 @@ public class CpPushDataServiceImpl implements ICpPushDataService {
         if (agent == null) {
             return Collections.emptyMap();
         }
+        //保存旧的渠道信息
+        Tuple3<Long, Long, String> oldAgentChannel = Tuples.of(user.getId(), user.getAgentId(), user.getChannel());
         //更新用户信息
         user.setAgentId(agent.getId());
         user.setChannel(userData.getChannel());
         user.setUpdateTime(LocalDateTime.now());
         userService.updateById(user);
         //添加渠道变更记录
-        userAgentLogService.agentUpdateLog(user, agent.getId(), userData.getChannel());
+        userAgentLogService.agentUpdateLog(oldAgentChannel, agent.getId(), userData.getChannel());
         //回传用户信息
         callBackService.userCallBack(user, tuple3.getT2());
         //渠道变更信息埋点数据发送到卡夫卡

+ 10 - 8
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/UserAgentLogServiceImpl.java

@@ -6,9 +6,11 @@ import com.zanxiang.game.module.mybatis.entity.User;
 import com.zanxiang.game.module.mybatis.entity.UserAgentLog;
 import com.zanxiang.game.module.mybatis.mapper.UserAgentLogMapper;
 import com.zanxiang.game.module.sdk.service.IUserAgentLogService;
+import com.zanxiang.module.util.JsonUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.logging.log4j.util.Strings;
 import org.springframework.stereotype.Service;
+import reactor.util.function.Tuple3;
 
 import java.time.LocalDateTime;
 
@@ -35,15 +37,15 @@ public class UserAgentLogServiceImpl extends ServiceImpl<UserAgentLogMapper, Use
     }
 
     @Override
-    public boolean agentUpdateLog(User user, Long newAgentId, String newChannel) {
+    public boolean agentUpdateLog(Tuple3<Long, Long, String> oldAgentChannel, Long newAgentId, String newChannel) {
         if (newAgentId == null || Strings.isBlank(newChannel)) {
             return Boolean.FALSE;
         }
         try {
-            return super.save(this.transform(user, newAgentId, newChannel));
+            return super.save(this.transform(oldAgentChannel, newAgentId, newChannel));
         } catch (Exception e) {
-            log.error("用户渠道更新记录保存异常, userId : {}, newAgentId : {}, newChannel : {}, e : {}",
-                    user.getId(), newAgentId, newChannel, e.getMessage());
+            log.error("用户渠道更新记录保存异常, oldAgentChannel : {}, newAgentId : {}, newChannel : {}, e : {}",
+                    JsonUtil.toString(oldAgentChannel), newAgentId, newChannel, e.getMessage());
         }
         return Boolean.FALSE;
     }
@@ -58,11 +60,11 @@ public class UserAgentLogServiceImpl extends ServiceImpl<UserAgentLogMapper, Use
                 .build();
     }
 
-    private UserAgentLog transform(User user, Long newAgentId, String newChannel) {
+    private UserAgentLog transform(Tuple3<Long, Long, String> oldAgentChannel, Long newAgentId, String newChannel) {
         return UserAgentLog.builder()
-                .userId(user.getId())
-                .oldAgentId(Agent.DEFAULT_AGENT.equals(user.getAgentId()) ? null : user.getAgentId())
-                .oldChannel(Agent.DEFAULT_AGENT.equals(user.getAgentId()) ? null : user.getChannel())
+                .userId(oldAgentChannel.getT1())
+                .oldAgentId(Agent.DEFAULT_AGENT.equals(oldAgentChannel.getT2()) ? null : oldAgentChannel.getT2())
+                .oldChannel(Agent.DEFAULT_AGENT.equals(oldAgentChannel.getT2()) ? null : oldAgentChannel.getT3())
                 .newAgentId(newAgentId)
                 .newChannel(newChannel)
                 .createTime(LocalDateTime.now())