Procházet zdrojové kódy

Merge branch '20251119-wyp-weCom' into test

wangyunpeng před 2 dny
rodič
revize
7f537a1947

+ 7 - 0
api-module/src/main/java/com/tzld/piaoquan/api/common/Constant.java

@@ -0,0 +1,7 @@
+package com.tzld.piaoquan.api.common;
+
+public class Constant {
+
+    public static String loginStatusKey = "login:status:uuid:{uuid}";
+
+}

+ 3 - 3
api-module/src/main/java/com/tzld/piaoquan/api/controller/wecom/thirdpart/WeComThirdPartyAccountController.java

@@ -28,9 +28,9 @@ public class WeComThirdPartyAccountController {
         return CommonResponse.success(service.getQrCode(id));
     }
 
-    @GetMapping("/getNeedCheckCode")
-    public CommonResponse<Boolean> getNeedCheckCode(@RequestParam String uuid) {
-        return CommonResponse.success(service.getNeedCheckCode(uuid));
+    @GetMapping("/checkLogin")
+    public CommonResponse<Integer> checkLogin(@RequestParam String uuid) {
+        return CommonResponse.success(service.checkLogin(uuid));
     }
 
     @PostMapping("/setCheckCode")

+ 4 - 0
api-module/src/main/java/com/tzld/piaoquan/api/model/param/wecom/thirdpart/SetCallbackUrlRequest.java

@@ -1,8 +1,12 @@
 package com.tzld.piaoquan.api.model.param.wecom.thirdpart;
 
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 @Data
+@AllArgsConstructor
+@NoArgsConstructor
 public class SetCallbackUrlRequest {
     private String uuid;
     private String url;

+ 1 - 1
api-module/src/main/java/com/tzld/piaoquan/api/model/vo/contentplatform/AccountQrCodeVO.java

@@ -12,5 +12,5 @@ public class AccountQrCodeVO {
     @ApiModelProperty(value = "登录二维码key")
     private String Key;
     @ApiModelProperty(value = "过期时间")
-    private Long Ttl;
+    private Long ttl;
 }

+ 1 - 1
api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/WeComThirdPartyAccountService.java

@@ -13,7 +13,7 @@ public interface WeComThirdPartyAccountService {
 
     AccountQrCodeVO getQrCode(Long id);
 
-    Boolean getNeedCheckCode(String uuid);
+    Integer checkLogin(String uuid);
 
     void setCheckCode(CheckCodeRequest param);
 

+ 9 - 3
api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/impl/WeComThirdPartyAccountServiceImpl.java

@@ -2,6 +2,7 @@ package com.tzld.piaoquan.api.service.wecom.thirdparty.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
+import com.tzld.piaoquan.api.common.Constant;
 import com.tzld.piaoquan.api.common.enums.ExceptionEnum;
 import com.tzld.piaoquan.api.common.enums.wecom.ThirdPartWeComStaffStatusEnum;
 import com.tzld.piaoquan.api.common.exception.CommonException;
@@ -26,6 +27,7 @@ import com.tzld.piaoquan.growth.common.utils.RedisUtils;
 import com.tzld.piaoquan.growth.common.utils.page.Page;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -53,6 +55,9 @@ public class WeComThirdPartyAccountServiceImpl implements WeComThirdPartyAccount
     @Autowired
     private RedisUtils redisUtils;
 
+    @Value("${wecom.thirdpart.callback.url:https://test-tp-open.piaoquantv.com/wecom/thirdparty/callback}")
+    private String callbackUrl;
+
     @Override
     public AccountQrCodeVO getQrCode(Long id) {
         InitRequest initRequest = new InitRequest();
@@ -69,6 +74,7 @@ public class WeComThirdPartyAccountServiceImpl implements WeComThirdPartyAccount
         CommonResponse<InitResponse> initResponse =
                 JSONObject.parseObject(initResponseStr, new TypeReference<CommonResponse<InitResponse>>() {});
         String uuid = initResponse.getData().getUuid();
+        apiClient.setCallbackUrl(new SetCallbackUrlRequest(uuid, callbackUrl));
         String qrCodeResponseStr = apiClient.getQrCode(new UuidRequest(uuid));
         CommonResponse<QrCodeResponse> qrCodeResponse =
                 JSONObject.parseObject(qrCodeResponseStr, new TypeReference<CommonResponse<QrCodeResponse>>() {});
@@ -85,9 +91,9 @@ public class WeComThirdPartyAccountServiceImpl implements WeComThirdPartyAccount
     }
 
     @Override
-    public Boolean getNeedCheckCode(String uuid) {
-        String needVerifyCode = "needVerifyCode:uuid:" + uuid;
-        return redisUtils.containsKey(needVerifyCode);
+    public Integer checkLogin(String uuid) {
+        String loginStatusKey = Constant.loginStatusKey.replace("{uuid}", uuid);
+        return redisUtils.getInteger(loginStatusKey);
     }
 
     @Override

+ 9 - 4
api-module/src/main/java/com/tzld/piaoquan/api/service/wecom/thirdparty/impl/WeComThirdPartyCallBackServiceImpl.java

@@ -1,6 +1,7 @@
 package com.tzld.piaoquan.api.service.wecom.thirdparty.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.tzld.piaoquan.api.common.Constant;
 import com.tzld.piaoquan.api.common.enums.wecom.WeComThirdPartyCallBackTypeEnum;
 import com.tzld.piaoquan.api.component.WeComThirdPartyApiClient;
 import com.tzld.piaoquan.api.model.param.wecom.thirdpart.UuidRequest;
@@ -43,11 +44,15 @@ public class WeComThirdPartyCallBackServiceImpl implements WeComThirdPartyCallBa
     private void handle(WeComThirdPartyCallBackParam param, WeComThirdPartyCallBackTypeEnum typeEnum) {
         if (typeEnum == WeComThirdPartyCallBackTypeEnum.LOGIN_SUCCESS) {
             weComThirdPartyService.getRunClientByUuid(new UuidRequest(param.getUuid()));
+            String loginStatusKey = Constant.loginStatusKey.replace("{uuid}", param.getUuid());
+            redisUtils.set(loginStatusKey, String.valueOf(typeEnum.getVal()), 3600);
             return;
-        }
-        if (typeEnum == WeComThirdPartyCallBackTypeEnum.NEED_VERIFY_CODE) {
-            String needVerifyCode = "needVerifyCode:uuid:" + param.getUuid();
-            redisUtils.set(needVerifyCode, "1", 120);
+        } else if (typeEnum == WeComThirdPartyCallBackTypeEnum.SCAN_CODE
+                || typeEnum == WeComThirdPartyCallBackTypeEnum.CONFIRM_SCAN_CODE
+                || typeEnum == WeComThirdPartyCallBackTypeEnum.CANCEL_SCAN_CODE
+                || typeEnum == WeComThirdPartyCallBackTypeEnum.NEED_VERIFY_CODE) {
+            String loginStatusKey = Constant.loginStatusKey.replace("{uuid}", param.getUuid());
+            redisUtils.set(loginStatusKey, String.valueOf(typeEnum.getVal()), 300);
             return;
         }
         JSONObject json = JSONObject.parseObject(param.getJson());