| | |
| | | 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; |
| | |
| | | */ |
| | | @Autowired |
| | | private RocketmqCustomProperties rocketmqCustomProperties; |
| | | |
| | | static String DEFAULT_PASSWORD = "111111"; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | } |
| | | } |
| | | |
| | | @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); |
| | | } |
| | | |
| | | /** |
| | | * 第三方联合登陆 |
| | |
| | | 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>(); |
| | |
| | | } |
| | | |
| | | |
| | | } |
| | | } |