From 8063ee7eee51bfe25a09428e6efc60f828b270c6 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 19 六月 2025 20:00:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 framework/src/main/java/cn/lili/modules/connect/serviceimpl/ConnectServiceImpl.java |   49 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 48 insertions(+), 1 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 6758887..e270ab4 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;
@@ -81,6 +82,8 @@
      */
     @Autowired
     private RocketmqCustomProperties rocketmqCustomProperties;
+
+    static String DEFAULT_PASSWORD = "111111";
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -243,6 +246,50 @@
         }
     }
 
+    @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("https://i.loli.net/2020/11/19/LyN6JF7zZRskdIe.png");
+            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);
+    }
 
     /**
      * 绗笁鏂硅仈鍚堢櫥闄�
@@ -389,4 +436,4 @@
     }
 
 
-}
\ No newline at end of file
+}

--
Gitblit v1.8.0