瀏覽代碼

Merge remote-tracking branch 'origin/package' into package

lth 1 年之前
父節點
當前提交
27e3d75a22

+ 8 - 2
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/oceanengine/MiniGameCallback.java

@@ -1,19 +1,23 @@
 package com.zanxiang.game.back.serve.oceanengine;
 
+import com.zanxiang.module.util.JsonUtil;
 import com.zanxiang.module.util.encryption.ShaUtil;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
 
 import java.util.Arrays;
+import java.util.Map;
 import java.util.concurrent.ThreadLocalRandom;
 
+@Slf4j
 @Component
 public class MiniGameCallback {
     private static final ThreadLocalRandom RANDOM = ThreadLocalRandom.current();
@@ -29,11 +33,13 @@ public class MiniGameCallback {
 
         String params = "timestamp=" + time + "&nonce=" + nonce + "&signature=" + signature;
         url = url.contains("?") ? (url + "&" + params) : (url + "?" + params);
-        ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class);
+        log.error("头条小游戏回传参数,url: {}, body{}", url, JsonUtil.toString(request));
+        ResponseEntity<Map> response = restTemplate.postForEntity(url, request, Map.class);
+        log.error("头条小游戏回传完成:{}", JsonUtil.toString(response.getBody()));
         if (response.getStatusCode().is2xxSuccessful()) {
             return;
         }
-        throw new OceanengineCallbackException(response.getStatusCodeValue(), response.getBody());
+        throw new OceanengineCallbackException(response.getStatusCodeValue(), JsonUtil.toString(response.getBody()));
     }
 
     @Getter

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

@@ -8,6 +8,7 @@ import com.zanxiang.game.back.serve.pojo.entity.GameTencentMiniGameUser;
 import com.zanxiang.game.back.serve.pojo.enums.BackStatusEnum;
 import com.zanxiang.game.back.serve.service.IGameTencentMiniGameOrderService;
 import com.zanxiang.game.back.serve.service.IGameTencentMiniGameUserService;
+import com.zanxiang.module.util.JsonUtil;
 import com.zanxiang.module.util.pojo.ResultVO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboService;
@@ -26,6 +27,7 @@ public class TencentMiniGameBackRpcImpl implements ITencentMiniGameBackRpc {
 
     @Override
     public ResultVO<Boolean> backOrder(TencentOrderDTO dto) {
+        log.error("腾讯小游戏订单回传收到:{}", JsonUtil.toString(dto));
         GameTencentMiniGameOrder orderLog = GameTencentMiniGameOrder.builder()
                 .adAccountId(dto.getAdAccountId())
                 .gameId(dto.getGameId())
@@ -50,6 +52,7 @@ public class TencentMiniGameBackRpcImpl implements ITencentMiniGameBackRpc {
 
     @Override
     public ResultVO<Boolean> backUser(TencentUserDTO dto) {
+        log.error("腾讯小游戏用户回传收到:{}", JsonUtil.toString(dto));
         GameTencentMiniGameUser userLog = GameTencentMiniGameUser.builder()
                 .adAccountId(dto.getAdAccountId())
                 .gameId(dto.getGameId())

+ 3 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/rpc/impl/TencentUserActionBackRpcImpl.java

@@ -10,6 +10,7 @@ import com.zanxiang.game.back.serve.pojo.enums.BackStatusEnum;
 import com.zanxiang.game.back.serve.service.IGameBackPolicyService;
 import com.zanxiang.game.back.serve.service.IGameTencentOrderService;
 import com.zanxiang.game.back.serve.service.IGameTencentUserService;
+import com.zanxiang.module.util.JsonUtil;
 import com.zanxiang.module.util.pojo.ResultVO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboService;
@@ -28,6 +29,7 @@ public class TencentUserActionBackRpcImpl implements ITencentUserActionBackRpc {
 
     @Override
     public ResultVO<Boolean> backOrder(TencentOrderDTO dto) {
+        log.error("腾讯H5订单回传收到:{}", JsonUtil.toString(dto));
         //订单保存
         GameTencentOrder gameTencentOrder = GameTencentOrder.builder()
                 .adAccountId(dto.getAdAccountId())
@@ -53,6 +55,7 @@ public class TencentUserActionBackRpcImpl implements ITencentUserActionBackRpc {
 
     @Override
     public ResultVO<Boolean> backUser(TencentUserDTO dto) {
+        log.error("腾讯H5用户回传收到:{}", JsonUtil.toString(dto));
         GameTencentUser gameTencentUser = GameTencentUser.builder()
                 .adAccountId(dto.getAdAccountId())
                 .gameId(dto.getGameId())

+ 3 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/rpc/impl/TtMiniGameBackRpcImpl.java

@@ -8,6 +8,7 @@ import com.zanxiang.game.back.serve.pojo.entity.GameOceanengineUserLog;
 import com.zanxiang.game.back.serve.pojo.enums.BackStatusEnum;
 import com.zanxiang.game.back.serve.service.IGameOceanengineOrderLogService;
 import com.zanxiang.game.back.serve.service.IGameOceanengineUserLogService;
+import com.zanxiang.module.util.JsonUtil;
 import com.zanxiang.module.util.pojo.ResultVO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboService;
@@ -25,6 +26,7 @@ public class TtMiniGameBackRpcImpl implements ITtMiniGameBackRpc {
 
     @Override
     public ResultVO<Boolean> userActiveReport(TtUserActiveRpcDTO dto) {
+        log.error("头条小游戏用户回传收到:{}", JsonUtil.toString(dto));
         GameOceanengineUserLog userLog = GameOceanengineUserLog.builder()
                 .appId(dto.getWechatAppId())
                 .openId(dto.getWechatOpenId())
@@ -48,6 +50,7 @@ public class TtMiniGameBackRpcImpl implements ITtMiniGameBackRpc {
 
     @Override
     public ResultVO<Boolean> orderReport(TtOrderRpcDTO dto) {
+        log.error("头条小游戏订单回传收到:{}", JsonUtil.toString(dto));
         GameOceanengineOrderLog orderLog = GameOceanengineOrderLog.builder()
                 .appId(dto.getWechatAppId())
                 .openId(dto.getWechatOpenId())

+ 31 - 6
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentMiniGameBackLogServiceImpl.java

@@ -28,6 +28,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 @Slf4j
 @Service
@@ -85,8 +86,8 @@ public class GameTencentMiniGameBackLogServiceImpl extends ServiceImpl<GameTence
         TencentMiniGameBackRequest request = TencentMiniGameBackRequest.builder()
                 .actions(Collections.singletonList(TencentMiniGameBackRequest.Action.builder()
                         .action_time(DateUtil.localDateTimeToSecond(backLog.getActionTime()))
-                        .user_id(UserActionRpcDTO.UserIdRpcDTO.builder().wechatAppId(backLog.getWechatAppId()).wechatOpenid(backLog.getWechatOpenid()).build())
-                        .trace(UserActionRpcDTO.TraceRpcDTO.builder().clickId(backLog.getClickId()).build())
+                        .user_id(TencentMiniGameBackRequest.UserId.builder().wechat_app_id(backLog.getWechatAppId()).wechat_openid(backLog.getWechatOpenid()).build())
+                        .trace(TencentMiniGameBackRequest.Trace.builder().click_id(backLog.getClickId()).build())
                         .account_id(backLog.getAdAccountId())
                         .action_set_id(null)
                         .action_type(backLog.getActionType())
@@ -94,10 +95,14 @@ public class GameTencentMiniGameBackLogServiceImpl extends ServiceImpl<GameTence
                         .build()))
                 .build();
         try {
+            log.error("腾讯小游戏回传参数:{}", JsonUtil.toString(request));
             ResponseEntity<Map> response = restTemplate.postForEntity("http://tracking.e.qq.com/conv", request, Map.class);
+            log.error("腾讯小游戏回传完成:{}", JsonUtil.toString(response.getBody()));
             if (response.getStatusCode().is2xxSuccessful()) {
-                backLog.setBackStatus(BackStatusEnum.SUCCESS.getBackStatus());
-                return;
+                if (Objects.equals(response.getBody().get("code").toString(), "0")) {
+                    backLog.setBackStatus(BackStatusEnum.SUCCESS.getBackStatus());
+                    return;
+                }
             }
             backLog.setBackStatus(BackStatusEnum.FAILED.getBackStatus());
             backLog.setErrMsg(JsonUtil.toString(response.getBody()));
@@ -124,8 +129,8 @@ public class GameTencentMiniGameBackLogServiceImpl extends ServiceImpl<GameTence
 
             private Long action_time;
 
-            private UserActionRpcDTO.UserIdRpcDTO user_id;
-            private UserActionRpcDTO.TraceRpcDTO trace;
+            private UserId user_id;
+            private Trace trace;
 
             private Long account_id;
 
@@ -135,5 +140,25 @@ public class GameTencentMiniGameBackLogServiceImpl extends ServiceImpl<GameTence
 
             private Map<String, Object> action_param;
         }
+
+        @Data
+        @NoArgsConstructor
+        @AllArgsConstructor
+        @Builder
+        public static class UserId {
+
+            private String wechat_app_id;
+
+            private String wechat_openid;
+
+        }
+
+        @Data
+        @NoArgsConstructor
+        @AllArgsConstructor
+        @Builder
+        public static class Trace {
+            private String click_id;
+        }
     }
 }

+ 1 - 1
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/AgentController.java

@@ -49,7 +49,7 @@ public class AgentController {
                 throw new BaseException("头条广告账号必须填入回传的 token 和 url");
             }
             dto.setReportToken(dto.getReportToken().trim());
-            dto.setReportUrl(dto.getReportUrl());
+            dto.setReportUrl(dto.getReportUrl().trim());
         }
         if (dto.getPutStatus() == null) {
             dto.setPutStatus(Agent.PUT_STATUS_ING);

+ 2 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/AgentServiceImpl.java

@@ -104,6 +104,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
                 .accountId(param.getAccountId())
                 .gameId(param.getGameId())
                 .userActionSetId(param.getUserActionSetId())
+                .reportToken(param.getReportToken())
+                .reportUrl(param.getReportUrl())
                 .backPolicyId(param.getBackPolicyId())
                 .putStatus(param.getPutStatus())
                 .createTime(LocalDateTime.now())

+ 76 - 0
game-module/game-module-manage/src/main/resources/logback.xml

@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="false" scanPeriod="60 seconds" debug="false">
+    <!-- 日志存放路径 -->
+    <property name="log.path" value="${user.home}/logs"/>
+    <!-- 日志输出格式 -->
+    <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
+    :ss} %-5level ${springAppName:-} %thread %logger %msg%n"/>
+
+    <!-- 控制台输出 -->
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
+
+    <!-- 系统日志输出 -->
+    <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/info.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!-- 日志最大的历史 60天 -->
+            <maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>INFO</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/error.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!-- 日志最大的历史 60天 -->
+            <maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>ERROR</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 系统模块日志级别控制  -->
+    <logger name="com.zanxiang" level="info"/>
+    <!-- Spring日志级别控制  -->
+    <logger name="org.springframework" level="warn"/>
+
+    <root level="info">
+        <appender-ref ref="console"/>
+    </root>
+
+    <!--系统操作日志-->
+    <root level="info">
+        <appender-ref ref="file_info"/>
+        <appender-ref ref="file_error"/>
+    </root>
+
+</configuration>