Selaa lähdekoodia

1. 日志配置,支持error级别
2. 支持二维码验证接口
3. 设置企微callback

刘立冬 2 kuukautta sitten
vanhempi
commit
1b60c8f04a

+ 9 - 4
risk-control-core/src/main/java/com/tzld/piaoquan/risk/control/service/impl/QwLoginServiceImpl.java

@@ -1,19 +1,18 @@
 package com.tzld.piaoquan.risk.control.service.impl;
 
 import com.alibaba.fastjson.JSON;
-import com.tzld.piaoquan.risk.control.common.base.CommonResponse;
 import com.tzld.piaoquan.risk.control.config.QywxConfig;
 import com.tzld.piaoquan.risk.control.model.qywx.QwCommonResModel;
 import com.tzld.piaoquan.risk.control.model.qywx.QwInitResponseModel;
 import com.tzld.piaoquan.risk.control.model.qywx.QwLoginCheckCode;
 import com.tzld.piaoquan.risk.control.model.qywx.QwLoginQRCodeModel;
 import com.tzld.piaoquan.risk.control.service.QwLoginService;
-import com.tzld.piaoquan.risk.control.service.qywx.Constant;
 import com.tzld.piaoquan.risk.control.util.HttpClientUtil;
 import com.tzld.piaoquan.risk.control.util.HttpPoolClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
@@ -25,6 +24,8 @@ public class QwLoginServiceImpl implements QwLoginService {
     private static final HttpPoolClient httpPoolClientDefault = HttpClientUtil.create(10000, 10000, 2000, 5000, 5, 10000);
     @Autowired
     private QywxConfig qywxConfig; // 注入配置类
+    @Value("${qwcallback.url}")
+    private String qwCallbackUrl;
     private static final Logger LOGGER = LoggerFactory.getLogger(QwLoginServiceImpl.class);
 
     @Override
@@ -52,6 +53,7 @@ public class QwLoginServiceImpl implements QwLoginService {
         String url = qywxConfig.getDomain() + qywxConfig.getPath("login-checkcode");
         Optional<String> response =  httpPoolClientDefault.postJson(url, JSON.toJSONString(checkQrcode));
         System.out.println("checkQRCode,response: " + response);
+        LOGGER.info("checkQRCode,response: {}", response);
         if (response.isPresent()) {
             QwCommonResModel<Object> model = QwCommonResModel.parseResponse(response.get(), Object.class);
             return model.getErrcode();
@@ -84,19 +86,22 @@ public class QwLoginServiceImpl implements QwLoginService {
     }
 
     private void setCallback(String uuid) {
-        String callbackUrl = Constant.TEST_CALLBACK_URL; // Replace with your actual callback URL
+//        String callbackUrl = Constant.TEST_CALLBACK_URL; // Replace with your actual callback URL
         String url = qywxConfig.getDomain() + qywxConfig.getPath("add-qwcallback");
         Map<String, Object> requestBody = new HashMap<>();
         requestBody.put("uuid", uuid);
-        requestBody.put("url", callbackUrl); // Add callback URL if available
+        requestBody.put("url", qwCallbackUrl); // Add callback URL if available
+        LOGGER.info("setCallback,uuid: {},url: {}", uuid, qwCallbackUrl);
         String params = JSON.toJSONString(requestBody);
         Optional<String> response = httpPoolClientDefault.postJson(url, params);
         if (response.isPresent()) {
             QwCommonResModel<Object> model = QwCommonResModel.parseResponse(response.get(), Object.class);
             System.out.println("setCallback success,response: " + response);
+            LOGGER.info("setCallback success,response: {}", response);
             if (model.getErrcode() == 0) {
                 System.out.println("Callback set successfully");
             } else {
+                LOGGER.error("Failed to set callback: {}", model.getErrmsg());
                 System.out.println("Failed to set callback: " + model.getErrmsg());
             }
         } else {

+ 3 - 1
risk-control-core/src/main/java/com/tzld/piaoquan/risk/control/service/qywx/Constant.java

@@ -6,7 +6,9 @@ public class Constant {
     public static String LOGIN_QRCODE_PATH = "wxwork/getQrCode";
     public static String LOGIN_QRCODE_CHECK = "wxwork/CheckCode";
     public static String ADD_QW_CALLBACK = "wxwork/SetCallbackUrl";
-    public static String TEST_CALLBACK_URL = "http://localhost:8080/risk-control/qw/callback";
+    public static String TEST_CALLBACK_URL = "http://testapi.piaoquantv.com/risk-control/qw/callback";
+    public static String QW_CALLBACK_URL = "http://api.piaoquantv.com/risk-control/qw/callback";
+
     //聊天消息
     public static int RECV_MSG_CODE = 102000;
 

+ 4 - 6
risk-control-server/src/main/java/com/tzld/piaoquan/risk/control/controller/QwLoginController.java

@@ -44,13 +44,11 @@ public class QwLoginController {
 
     @PostMapping("/checkQRCode ")
     public CommonResponse<String> checkQRCode(@RequestBody QwLoginCheckCode checkCode) {
-        String url = Constant.QWDOMAIN + Constant.LOGIN_QRCODE_PATH;
-        String response =  httpPoolClientDefault.postJson(url, JSON.toJSONString(checkCode)).toString();
-        System.out.println("checkQRCode,response: " + response);
-        if (response.contains("qrcode_not need verify")) {
-            return CommonResponse.success("qrcode_not need verify");
-        } else {
+        int ret = qwLoginService.checkQRCode(checkCode);
+        if(ret == 0) {
             return CommonResponse.success();
+        } else {
+            return CommonResponse.error("failed");
         }
     }
 

+ 3 - 1
risk-control-server/src/main/resources/application-prod.yml

@@ -62,4 +62,6 @@ xxl:
       ip:
       port: 9999
       logpath: /datalog/weblog/${project.name}/xxl-job/
-      logretentiondays: 30
+      logretentiondays: 30
+qwcallback:
+  url: "http://api.piaoquantv.com/risk-control/qw/callback"  # 测试回调地址

+ 3 - 1
risk-control-server/src/main/resources/application-test.yml

@@ -63,4 +63,6 @@ xxl:
       ip:
       port: 9999
       logpath: /datalog/weblog/${project.name}/xxl-job/
-      logretentiondays: 30
+      logretentiondays: 30
+qwcallback:
+  url: "http://testapi.piaoquantv.com/risk-control/qw/callback"  # 测试回调地址

+ 15 - 0
risk-control-server/src/main/resources/logback-spring.xml

@@ -17,6 +17,8 @@
     <springProperty name="aliyun_log_accessKeySecret" source="aliyun.log.accessKeySecret"/>
     <springProperty name="aliyun_log_project" source="aliyun.log.project"/>
     <springProperty name="aliyun_log_logstore_info" source="aliyun.log.logstore.request"/>  <!-- 注入request-log-test -->
+    <springProperty name="aliyun_log_logstore_error" source="aliyun.log.logstore.error"/>
+
 
     <!-- 彩色日志 -->
     <!-- 彩色日志依赖的渲染类 -->
@@ -96,6 +98,18 @@
             <onMismatch>DENY</onMismatch>
         </filter>
     </appender>
+    <appender name="LOG_HUB_ERROR" class="com.aliyun.openservices.log.logback.LoghubAppender">
+        <endpoint>${aliyun_log_endpoint}</endpoint>
+        <accessKeyId>${aliyun_log_accessKeyId}</accessKeyId>
+        <accessKeySecret>${aliyun_log_accessKeySecret}</accessKeySecret>
+        <project>${aliyun_log_project}</project>
+        <logStore>${aliyun_log_logstore_error}</logStore>  <!-- 使用变量 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
 
     <!-- 时间滚动输出 level为 INFO 日志 -->
     <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
@@ -225,6 +239,7 @@
         <appender-ref ref="WARN_FILE" />
         <appender-ref ref="ERROR_FILE" />
         <appender-ref ref="LOG_HUB_INFO" />  <!-- 必须添加这一行 -->
+        <appender-ref ref="LOG_HUB_ERROR" />  <!-- 新增ERROR上报 -->
 
     </root>