Ver código fonte

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

zhimo 1 ano atrás
pai
commit
81fefe99b0

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

@@ -23,7 +23,7 @@ public class ManageApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(ManageApplication.class, args);
-        System.out.println("赞象Manage服务启动成功 <客服系统, 新增授权接口4> ( ´・・)ノ(._.`) \n" +
+        System.out.println("赞象Manage服务启动成功 <测试小程序监听> ( ´・・)ノ(._.`) \n" +
                 "___  ___  ___   _   _   ___  _____  _____ \n" +
                 "|  \\/  | / _ \\ | \\ | | / _ \\|  __ \\|  ___|\n" +
                 "| .  . |/ /_\\ \\|  \\| |/ /_\\ \\ |  \\/| |__  \n" +

+ 37 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/TestController.java

@@ -0,0 +1,37 @@
+package com.zanxiang.game.module.manage.controller;
+
+import com.zanxiang.game.module.manage.pojo.vo.VipLevelChoiceVO;
+import com.zanxiang.game.module.manage.service.IAppletCheckService;
+import com.zanxiang.module.util.pojo.ResultVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author : lingfeng
+ * @time : 2024-01-23
+ * @description :
+ */
+@Api(tags = {"CP管理接口"})
+@RestController
+@RequestMapping("/test")
+@Slf4j
+public class TestController {
+
+    @Autowired
+    private IAppletCheckService appletCheckService;
+
+    @ApiOperation(value = "小程序监测测试接口")
+    @GetMapping(value = "/check/app")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = VipLevelChoiceVO.class, responseContainer = "list")})
+    public ResultVO<Void> vipLevelChoiceList() {
+        appletCheckService.payApplicationCheck();
+        return ResultVO.ok();
+    }
+}

+ 35 - 34
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/AppletCheckServiceImpl.java

@@ -33,6 +33,7 @@ import org.springframework.web.client.RestTemplate;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -71,35 +72,40 @@ public class AppletCheckServiceImpl implements IAppletCheckService {
             return;
         }
         payApplicationList.forEach(payApplication -> {
-            String accessToken = wxApiServiceRpc.getAccessToken(payApplication.getAppId(), payApplication.getAppSecret());
-            boolean checkResult = this.appletCheck(accessToken);
-            if (checkResult) {
-                return;
+            String accessToken = null;
+            try {
+                accessToken = wxApiServiceRpc.getAccessToken(payApplication.getAppId(), payApplication.getAppSecret());
+            } catch (Exception e) {
+                log.error("获取小程序token异常, appName : {}, e : {}", payApplication.getAppName(), e.getMessage());
+            }
+            log.error("小程序监测获取token, appName : {}, accessToken : {}", payApplication.getAppName(), accessToken);
+            if (Strings.isBlank(accessToken) || !this.appletCheck(accessToken)) {
+                log.error("小程序判定封停, appName : {}", payApplication.getAppName());
+                this.payApplicationCheck(payApplication);
             }
-            this.payApplicationCheck(payApplication);
         });
     }
 
     @Override
     public void payApplicationCheck(PayApplication payApplication) {
-        try {
-            //更新游戏支付盒子配置
-            this.gamePayWayUpdate(payApplication);
-        } catch (Exception e) {
-            log.error("支付应用异常更新游戏支付盒子失败, appName : {}, e : {}", payApplication.getAppName(), e.getMessage());
-        }
+//        try {
+//            //更新游戏支付盒子配置
+//            this.gamePayWayUpdate(payApplication);
+//        } catch (Exception e) {
+//            log.error("支付应用异常更新游戏支付盒子失败, appName : {}, e : {}", payApplication.getAppName(), e.getMessage());
+//        }
         try {
             //钉钉通知
             this.sendDingTalkMsg(payApplication);
         } catch (Exception e) {
             log.error("支付应用异常钉钉通知失败, appName : {}, e : {}", payApplication.getAppName(), e.getMessage());
         }
-        try {
-            //电话通知
-            this.sendPhoneTalkMsg(payApplication);
-        } catch (Exception e) {
-            log.error("支付应用异常电话通知失败, appName : {}, e : {}", payApplication.getAppName(), e.getMessage());
-        }
+//        try {
+//            //电话通知
+//            this.sendPhoneTalkMsg(payApplication);
+//        } catch (Exception e) {
+//            log.error("支付应用异常电话通知失败, appName : {}, e : {}", payApplication.getAppName(), e.getMessage());
+//        }
     }
 
     private void gamePayWayUpdate(PayApplication payApplication) {
@@ -132,7 +138,7 @@ public class AppletCheckServiceImpl implements IAppletCheckService {
     }
 
     private void sendDingTalkMsg(PayApplication payApplication) {
-        List<ListenCall> listenCallList = this.callListenUser(payApplication);
+        List<ListenCall> listenCallList = this.callListenUser();
         if (CollectionUtils.isEmpty(listenCallList)) {
             return;
         }
@@ -142,7 +148,7 @@ public class AppletCheckServiceImpl implements IAppletCheckService {
     }
 
     private void sendPhoneTalkMsg(PayApplication payApplication) {
-        List<ListenCall> listenCallList = this.callListenUser(payApplication);
+        List<ListenCall> listenCallList = this.callListenUser();
         if (CollectionUtils.isEmpty(listenCallList)) {
             return;
         }
@@ -151,23 +157,18 @@ public class AppletCheckServiceImpl implements IAppletCheckService {
         phoneNumSet.forEach(phoneNum -> this.phoneCall(phoneNum, content));
     }
 
-    private List<ListenCall> callListenUser(PayApplication payApplication) {
-        //支付应用被使用到的盒子
-        List<Integer> payBoxIdList = payBoxService.list(new LambdaQueryWrapper<PayBox>()
-                .eq(PayBox::getAppId, payApplication.getAppId())
-        ).stream().map(PayBox::getId).collect(Collectors.toList());
-        if (CollectionUtils.isEmpty(payBoxIdList)) {
-            return Collections.emptyList();
-        }
-        //盒子被使用到的游戏
-        Set<Long> gameIdSet = gamePayWayService.list(new LambdaQueryWrapper<GamePayWay>()
-                .in(GamePayWay::getPayBoxId, payBoxIdList)
-        ).stream().map(GamePayWay::getGameId).collect(Collectors.toSet());
-        if (CollectionUtils.isEmpty(gameIdSet)) {
+    private List<ListenCall> callListenUser() {
+        List<ListenCall> listenCallList = listenCallService.list(new LambdaQueryWrapper<ListenCall>()
+                //todo : 临时调试条件
+                .eq(ListenCall::getUserId, 220L)
+                .eq(ListenCall::getStatus, StatusEnum.YES.getCode()));
+        if (CollectionUtils.isEmpty(listenCallList)) {
             return Collections.emptyList();
         }
-        //游戏关联的监听人员
-        return listenCallService.list(new LambdaQueryWrapper<ListenCall>().in(ListenCall::getGameId, gameIdSet));
+        Collection<ListenCall> collection = listenCallList.stream()
+                .collect(Collectors.toMap(ListenCall::getUserId, Function.identity(), (existing, replacement) -> existing))
+                .values();
+        return new ArrayList<>(collection);
     }
 
     private boolean appletCheck(String token) {

+ 1 - 1
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/task/PayApplicationTask.java

@@ -27,7 +27,7 @@ public class PayApplicationTask {
     /**
      * 小程序每分钟检查
      */
-    @Scheduled(cron = "0 0/1 * * * ?")
+//    @Scheduled(cron = "0 0/1 * * * ?")
     public void payApplicationCheck() {
         String lockKey = "payApplicationCheck_lock";
         //上锁