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 | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 53 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 eac79b1..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); + } /** * 绗笁鏂硅仈鍚堢櫥闄� @@ -265,6 +312,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>(); @@ -384,4 +436,4 @@ } -} \ No newline at end of file +} -- Gitblit v1.8.0