Преглед на файлове

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

zhimo преди 1 седмица
родител
ревизия
2ea33a4df7

+ 7 - 0
game-back/game-back-base/src/main/java/com/zanxiang/game/back/base/rpc/ITencentMiniGameBackRpc.java

@@ -7,6 +7,8 @@ import com.zanxiang.game.back.base.pojo.dto.TencentUserDTO;
 import com.zanxiang.game.back.base.pojo.vo.OrderBackQueryRpcVO;
 import com.zanxiang.module.util.pojo.ResultVO;
 
+import java.util.Map;
+
 /**
  * 腾讯小游戏回传(文档中的方案 B)
  * 文档地址:https://docs.qq.com/doc/DRkpGUU5jSFVxQVFN
@@ -47,4 +49,9 @@ public interface ITencentMiniGameBackRpc {
      * 角色回传-媒体SDK
      */
     ResultVO<Boolean> callBackRole(TencentRoleRegisterRpcDTO dto);
+
+    /**
+     * 根据openId匹配监测链接
+     */
+    ResultVO<Map<String, Object>> getCallBackByOpenId(Long gameId, String wechatOpenid);
 }

+ 1 - 1
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/GameBackApplication.java

@@ -18,7 +18,7 @@ public class GameBackApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(GameBackApplication.class, args);
-        System.out.println("星广联投回传逻辑对接-01 (´・・)ノ(._.`)  \n" +
+        System.out.println("微信小游戏投腾讯广告新增openId监测链接匹配 (´・・)ノ(._.`)  \n" +
                 " ______  __     __     \n" +
                 "/_____/\\/__/\\ /__/\\    \n" +
                 "\\:::__\\/\\ \\::\\\\:.\\ \\   \n" +

+ 13 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/rpc/impl/TencentMiniGameBackRpcImpl.java

@@ -26,6 +26,7 @@ import org.springframework.data.redis.core.RedisTemplate;
 import java.time.LocalDateTime;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -394,4 +395,16 @@ public class TencentMiniGameBackRpcImpl implements ITencentMiniGameBackRpc {
         }
         return ResultVO.ok(gameTencentMiniGameRoleRegisterService.callback(roleRegisterLog));
     }
+
+    @Override
+    public ResultVO<Map<String, Object>> getCallBackByOpenId(Long gameId, String wechatOpenid) {
+        Map<String, Object> map = null;
+        try {
+            map = gameTencentMiniGameCallbackService.getCallBackByOpenId(gameId, wechatOpenid);
+        } catch (Exception e) {
+            log.error("微信小游投腾讯匹配监测链接异常, gameId : {}, wechatOpenid : {}, e : {} ",
+                    gameId, wechatOpenid, e.getMessage(), e);
+        }
+        return ResultVO.ok(map);
+    }
 }

+ 2 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/IGameTencentMiniGameCallbackService.java

@@ -13,4 +13,6 @@ public interface IGameTencentMiniGameCallbackService extends IService<GameTencen
     boolean callback(Map<String, Object> paramMap);
 
     String getCallBackUrl(Long gameId, String wechatOpenid, String clickId, LocalDateTime registerTime, boolean matchTime);
+
+    Map<String, Object> getCallBackByOpenId(Long gameId, String wechatOpenid);
 }

+ 24 - 4
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentMiniGameCallbackServiceImpl.java

@@ -33,10 +33,7 @@ import org.springframework.stereotype.Service;
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
@@ -223,4 +220,27 @@ public class GameTencentMiniGameCallbackServiceImpl extends ServiceImpl<GameTenc
             }
         });
     }
+
+    @Override
+    public Map<String, Object> getCallBackByOpenId(Long gameId, String wechatOpenid) {
+        //查询监测链接
+        GameTencentMiniGameCallback tencentMiniGameCallback = super.getOne(
+                new LambdaQueryWrapper<GameTencentMiniGameCallback>()
+                        .eq(GameTencentMiniGameCallback::getGameId, gameId)
+                        .eq(GameTencentMiniGameCallback::getWechatOpenid, wechatOpenid)
+                        .orderByDesc(GameTencentMiniGameCallback::getClickTime)
+                        .last("limit 1"));
+        //没有匹配上
+        if (tencentMiniGameCallback == null) {
+            return null;
+        }
+        Map<String, Object> map = new HashMap<>(5);
+        map.put("id", tencentMiniGameCallback.getId());
+        map.put("gameId", tencentMiniGameCallback.getGameId());
+        map.put("accountId", tencentMiniGameCallback.getAccountId());
+        map.put("agentKey", tencentMiniGameCallback.getAgentKey());
+        map.put("adgroupId", tencentMiniGameCallback.getAdgroupId());
+        map.put("impressionId", tencentMiniGameCallback.getImpressionId());
+        return map;
+    }
 }