From 34c7d903efa4dc06a0f7b38bc5d2d721f80b220d Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期三, 09 七月 2025 09:04:52 +0800 Subject: [PATCH] 7.8冒烟修改问题 --- ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java | 40 +++++++++++++++++++++++++++++++++++----- 1 files changed, 35 insertions(+), 5 deletions(-) diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java index e6854aa..02ad957 100644 --- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java +++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java @@ -1,5 +1,8 @@ package com.ruoyi.web.controller.api; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -11,6 +14,7 @@ import com.ruoyi.common.core.domain.model.LoginBody; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.redis.service.RedisService; +import com.ruoyi.common.utils.AliSmsUtil; import com.ruoyi.common.utils.NumberUtil; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; @@ -93,12 +97,18 @@ if(user!=null && user.getStatus()==2){ return AjaxResult.error("登录失败,当前账号已被冻结"); } + String openid = getOpenid(loginBody.getJscode()); + TbUser user1 = tbUserService.getOne(new LambdaQueryWrapper<TbUser>().eq(TbUser::getOpenId, openid).ne(TbUser::getStatus,3).eq(TbUser::getIsDelete, 0)); + if(user1!=null && !loginBody.getPhone().equals(user1.getPhone())){ + return AjaxResult.error("该微信已绑定其他手机号"); + } if(user==null){ TbUser tbUser = new TbUser(); tbUser.setPhone(loginBody.getPhone()); tbUser.setStatus(1); tbUser.setUserName(loginBody.getPhone()); tbUser.setInviteId(loginBody.getInviteUserId()); + tbUser.setOpenId(openid); tbUserService.save(tbUser); user = tbUser; ajax.put("firstRegister",1); @@ -107,6 +117,10 @@ if(StringUtils.isEmpty(user.getInviteId()) && !StringUtils.isEmpty(loginBody.getInviteUserId())){ user.setInviteId(loginBody.getInviteUserId()); } + if(StringUtils.isEmpty(user.getOpenId())){ + user.setOpenId(openid); + } + tbUserService.updateById(user); } LoginUser loginUser = new LoginUser(); loginUser.setUserId(Long.valueOf(user.getId())); @@ -136,8 +150,8 @@ if (user==null){ user = new TbUser(); user.setPhone(appletUserDecodeData.getPhoneNumber()); - user.setAvatar(appletUserDecodeData.getAvatarUrl()); - user.setUserName(appletUserDecodeData.getNickName()); + user.setAvatar("https://yizhengcheng.oss-cn-chengdu.aliyuncs.com/img/18dfce33c55644d38abdb88b57db906f.png"); + user.setUserName(appletUserDecodeData.getPhoneNumber()); user.setOpenId(appletUserDecodeData.getOpenId()); user.setInviteId(data.getInviteUserId()); user.setStatus(1); @@ -197,21 +211,37 @@ String code = NumberUtil.getRandomInteger(6); redisService.setCacheObject("login_"+phone, code, 5L, TimeUnit.MINUTES); // 发送验证码 - - + try { + AliSmsUtil.sendSuccessMessage(phone,code); + }catch (Exception e) { + e.printStackTrace(); + return R.fail(e.getMessage()); + } return R.ok(); } @ApiOperation(value = "获取协议 1=用户协议,2=隐私协议",tags = {"登录模块"}) - @GetMapping("/getAgreement/{type}") + @GetMapping("/getAgreement") public R<List<TbAgreement>> getAgreement() { List<TbAgreement> list = agreementService.list(new LambdaQueryWrapper<TbAgreement>().in(TbAgreement::getType, 1, 2)); return R.ok(list); } + public String getOpenid(String jscode) { + String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxConfig.getMemberAppId() + + "&secret=" + wxConfig.getMemberAppSecret() + + "&js_code=" + jscode + + "&grant_type=authorization_code"; + String result = HttpUtil.get(url); + JSONObject jsonObject = JSONUtil.parseObj(result); + + String openid = jsonObject.getStr("openid"); + + return openid; + } } -- Gitblit v1.7.1