From 5476f0366c2042d8b3858369fc0c149d57b2fb9f Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 24 七月 2025 17:47:27 +0800
Subject: [PATCH] 会员密码问题

---
 framework/src/main/java/cn/lili/modules/connect/serviceimpl/ConnectServiceImpl.java |   67 ++++++++++++++++++++++++++++++---
 1 files changed, 60 insertions(+), 7 deletions(-)

diff --git a/framework/src/main/java/cn/lili/modules/connect/serviceimpl/ConnectServiceImpl.java b/framework/src/main/java/cn/lili/modules/connect/serviceimpl/ConnectServiceImpl.java
index eac79b1..42dfb1d 100644
--- a/framework/src/main/java/cn/lili/modules/connect/serviceimpl/ConnectServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/connect/serviceimpl/ConnectServiceImpl.java
@@ -4,6 +4,7 @@
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
+import cn.lili.base.Result;
 import cn.lili.cache.Cache;
 import cn.lili.common.enums.ClientTypeEnum;
 import cn.lili.common.enums.ResultCode;
@@ -82,10 +83,12 @@
     @Autowired
     private RocketmqCustomProperties rocketmqCustomProperties;
 
+    static String DEFAULT_PASSWORD = "111111";
+
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Token unionLoginCallback(ConnectAuthUser authUser, String uuid) {
-        return this.unionLoginCallback(authUser, false);
+    public Token unionLoginCallback(ConnectAuthUser authUser, String uuid,boolean encryptTwice) {
+        return this.unionLoginCallback(authUser, false,encryptTwice);
     }
 
     @Override
@@ -193,7 +196,7 @@
             AuthToken authToken = new AuthToken();
             authToken.setUnionId(unionId);
             connectAuthUser.setToken(authToken);
-            return this.unionLoginCallback(connectAuthUser, true);
+            return this.unionLoginCallback(connectAuthUser, true,true);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -243,6 +246,51 @@
         }
     }
 
+    @Override
+    public Result silentLogin(String code) {
+        JSONObject res = this.getConnect(code);
+        String unionId = res.getStr("unionid");
+        String openId = res.getStr("openid");
+        Member user = memberService.findByUUID(openId);
+        // 涓嶅瓨鍦ㄥ氨娉ㄥ唽
+        if (Objects.isNull(user)) {
+            user = new Member();
+            user.setUuId(openId);
+            user.setUsername(UuidUtils.getUUID());
+            user.setNickName("寰俊鐢ㄦ埛");
+            user.setPassword(DEFAULT_PASSWORD);
+            user.setFace("");
+            user.setDisabled(Boolean.TRUE);
+            memberService.registerHandler(user);
+        }
+
+        ConnectAuthUser connectAuthUser = new ConnectAuthUser();
+        connectAuthUser.setUuid(openId);
+        connectAuthUser.setNickname(user.getNickName());
+        connectAuthUser.setAvatar(user.getFace());
+
+
+        connectAuthUser.setUsername(UuidUtils.getUUID());
+
+        connectAuthUser.setSource(ConnectEnum.WECHAT);
+        connectAuthUser.setType(ClientTypeEnum.WECHAT_MP);
+
+        AuthToken authToken = new AuthToken();
+        authToken.setUnionId(unionId);
+        connectAuthUser.setToken(authToken);
+
+        //鍙戦�佺敤鎴风涓夋柟鐧诲綍娑堟伅
+        MemberConnectLoginMessage memberConnectLoginMessage = new MemberConnectLoginMessage();
+        memberConnectLoginMessage.setMember(user);
+        memberConnectLoginMessage.setConnectAuthUser(connectAuthUser);
+        String destination =
+                rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_CONNECT_LOGIN.name();
+        //鍙戦�佺敤鎴风涓夋柟鐧诲綍娑堟伅
+        rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(memberConnectLoginMessage),
+                RocketmqSendCallbackBuilder.commonCallback());
+        Token token = memberTokenGenerate.createToken(user, Boolean.TRUE);
+        return Result.ok().data(token);
+    }
 
     /**
      * 绗笁鏂硅仈鍚堢櫥闄�
@@ -257,7 +305,7 @@
      * @return token
      * @throws NoPermissionException 涓嶅厑璁告搷浣�
      */
-    private Token unionLoginCallback(ConnectAuthUser authUser, boolean longTerm) {
+    private Token unionLoginCallback(ConnectAuthUser authUser, boolean longTerm,boolean encryptTwice) {
 
         try {
             Member member = null;
@@ -265,6 +313,11 @@
             if (StrUtil.isNotBlank(authUser.getPhone())) {
                 member = memberService.findByMobile(authUser.getPhone());
             }
+
+            if (StrUtil.isNotBlank(authUser.getUuid())) {
+                member = memberService.findByUUID(authUser.getUuid());
+            }
+
             //濡傛灉鏈煡鍒版墜鏈哄彿鐨勪細鍛樺垯浣跨敤绗笁鏂圭櫥褰�
             if (member == null) {
                 LambdaQueryWrapper<Connect> queryWrapper = new LambdaQueryWrapper<Connect>();
@@ -283,14 +336,14 @@
                 Connect connect = this.getOne(queryWrapper);
 
                 if (connect == null) {
-                    member = memberService.autoRegister(authUser);
+                    member = memberService.autoRegister(authUser,encryptTwice);
                 } else {
                     //鏌ヨ浼氬憳
                     member = memberService.getById(connect.getUserId());
                     //濡傛灉鏈粦瀹氫細鍛橈紝鍒欐妸鍒氭墠鏌ヨ鍒扮殑鑱斿悎鐧诲綍琛ㄦ暟鎹垹闄�
                     if (member == null) {
                         this.remove(queryWrapper);
-                        member = memberService.autoRegister(authUser);
+                        member = memberService.autoRegister(authUser,encryptTwice);
                     }
                 }
             }
@@ -384,4 +437,4 @@
     }
 
 
-}
\ No newline at end of file
+}

--
Gitblit v1.8.0