|
@@ -7,12 +7,14 @@ import com.zanxiang.game.back.serve.pojo.dto.GameTencentCallbackDTO;
|
|
|
import com.zanxiang.game.back.serve.pojo.entity.GameBackPolicy;
|
|
|
import com.zanxiang.game.back.serve.pojo.entity.GameTencentMiniGameBackLog;
|
|
|
import com.zanxiang.game.back.serve.pojo.entity.GameTencentMiniGameCallback;
|
|
|
+import com.zanxiang.game.back.serve.pojo.entity.GameTencentMiniGameUser;
|
|
|
import com.zanxiang.game.back.serve.pojo.enums.ActionTypeEnum;
|
|
|
import com.zanxiang.game.back.serve.pojo.enums.BackStatusEnum;
|
|
|
import com.zanxiang.game.back.serve.pojo.enums.BackTypeEnum;
|
|
|
import com.zanxiang.game.back.serve.service.IGameBackPolicyService;
|
|
|
import com.zanxiang.game.back.serve.service.IGameTencentMiniGameBackLogService;
|
|
|
import com.zanxiang.game.back.serve.service.IGameTencentMiniGameCallbackService;
|
|
|
+import com.zanxiang.game.back.serve.service.IGameTencentMiniGameUserService;
|
|
|
import com.zanxiang.game.module.base.ServerInfo;
|
|
|
import com.zanxiang.game.module.base.pojo.vo.AgentRpcVO;
|
|
|
import com.zanxiang.game.module.base.rpc.IAgentRpc;
|
|
@@ -53,6 +55,9 @@ public class GameTencentMiniGameCallbackServiceImpl extends ServiceImpl<GameTenc
|
|
|
@Autowired
|
|
|
private IGameBackPolicyService gameBackPolicyService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IGameTencentMiniGameUserService gameTencentMiniGameUserService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private IGameTencentMiniGameBackLogService gameTencentMiniGameBackLogService;
|
|
|
|
|
@@ -82,7 +87,7 @@ public class GameTencentMiniGameCallbackServiceImpl extends ServiceImpl<GameTenc
|
|
|
//监测链接执行注册回传
|
|
|
try {
|
|
|
this.linkCallBack(callback, agent);
|
|
|
- }catch (Exception e){
|
|
|
+ } catch (Exception e) {
|
|
|
log.error(e.getMessage(), e);
|
|
|
}
|
|
|
return true;
|
|
@@ -90,12 +95,12 @@ public class GameTencentMiniGameCallbackServiceImpl extends ServiceImpl<GameTenc
|
|
|
|
|
|
private void linkCallBack(GameTencentMiniGameCallback callback, AgentRpcVO agent) {
|
|
|
//渠道参数判断
|
|
|
- if (agent == null || agent.getBackPolicyId() == null){
|
|
|
+ if (agent == null || agent.getBackPolicyId() == null) {
|
|
|
return;
|
|
|
}
|
|
|
//查询策略, 判断是否开启监测链接回传
|
|
|
GameBackPolicy gameBackPolicy = gameBackPolicyService.getById(agent.getBackPolicyId());
|
|
|
- if (!Objects.equals(gameBackPolicy.getLinkCallBack(), Boolean.TRUE)){
|
|
|
+ if (!Objects.equals(gameBackPolicy.getLinkCallBack(), Boolean.TRUE)) {
|
|
|
return;
|
|
|
}
|
|
|
//参数校验, 判断是否符合回传条件
|
|
@@ -104,6 +109,14 @@ public class GameTencentMiniGameCallbackServiceImpl extends ServiceImpl<GameTenc
|
|
|
log.error("监测链接回传参数不全, id : {}", callback.getId());
|
|
|
return;
|
|
|
}
|
|
|
+ //判断是否是新用户, 已注册的老用户不回传
|
|
|
+ if (gameTencentMiniGameUserService.count(new LambdaQueryWrapper<GameTencentMiniGameUser>()
|
|
|
+ .eq(GameTencentMiniGameUser::getGameId, callback.getGameId())
|
|
|
+ .eq(GameTencentMiniGameUser::getWechatAppId, callback.getWechatAppId())
|
|
|
+ .eq(GameTencentMiniGameUser::getWechatOpenid, callback.getWechatOpenid())
|
|
|
+ ) > 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
//线程锁, 防止重复请求
|
|
|
String lockKey = com.zanxiang.game.back.base.ServerInfo.SERVER_NAME + ":tencentMiniLinkCallBack:"
|
|
|
+ callback.getGameId() + ":" + callback.getAccountId() + ":"
|