Преглед на файлове

微信登陆未注册时返回openId和phoneNumber,注册时保存

mingfu преди 1 месец
родител
ревизия
b4146de37a

+ 6 - 5
ie-admin/src/main/java/com/ruoyi/web/controller/front/UserController.java

@@ -243,15 +243,16 @@ public class UserController extends BaseController {
     public AjaxResult loginByCode(@RequestBody JSONObject body)
     {
         String loginCode = body.getString("loginCode");
-        String openId = "qwert"; // sessionInfo.getOpenid();
-        return loginService.loginByCode(openId);
-        /*try {
+        String phoneCode = body.getString("phoneCode");
+        try {
             WxMaJscode2SessionResult sessionInfo = wxMaService.getUserService().getSessionInfo(loginCode);
+            WxMaPhoneNumberInfo phoneNumberInfo = wxMaService.getUserService().getPhoneNumber(phoneCode);
             String openId = sessionInfo.getOpenid();
-            return loginService.loginByCode(openId);
+            String phoneNumber = phoneNumberInfo.getPhoneNumber();
+            return loginService.loginByCode(openId, phoneNumber);
         } catch (WxErrorException e) {
             return AjaxResult.error("登陆失败: " + e.getMessage());
-        }*/
+        }
     }
 
     @PostMapping("bindOpenId")

+ 6 - 3
ie-admin/src/main/java/com/ruoyi/web/service/SysLoginService.java

@@ -98,12 +98,15 @@ public class SysLoginService
         return AjaxResult.success(JSONObject.of("openId", openid));
     }
 
-    public AjaxResult loginByCode(String openId) {
+    public AjaxResult loginByCode(String openId, String phoneNumber) {
         SysUser u = userService.selectUserByOpenId(openId);
         if(null == u) {
-            return new AjaxResult(ErrorCodes.UnRegister.getCode(), "账号不存在", openId);
+            AjaxResult result = new AjaxResult(ErrorCodes.UnRegister.getCode(), "账号不存在");
+            result.put("openId", openId);
+            result.put("mobile", phoneNumber);
+            return result;
         }
-        return loginByUserAndPass("front", u.getUserName(), u.getPassword2());
+        return loginByUserAndPass("front", phoneNumber, UserConstants.LOGIN_SMS_PASS);
     }
 
     /**

+ 1 - 0
ie-admin/src/main/java/com/ruoyi/web/service/SysRegisterService.java

@@ -102,6 +102,7 @@ public class SysRegisterService
                 registerBody.setUsername(username); // TODO 带回去重登陆
                 registerBody.setPassword(password); // TODO 带回去重登陆
             }
+            upUser.setWxOpenId(registerBody.getOpenId());
             upUser.setPassword2(SecurityUtils.encryptPassword2(password));
             upUser.setPassword(SecurityUtils.encryptPassword(password));
             upUser.setPwdUpdateDate(DateUtils.getNowDate());

+ 2 - 1
ie-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java

@@ -37,5 +37,6 @@ public class RegisterBody extends LoginBody
     Long campusSchoolId;
     @ApiModelProperty(value = "培训班级ID", example = "1")
     Long campusClassId;
-
+    @ApiModelProperty("微信绑定id")
+    String openId;
 }

+ 2 - 0
ie-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -361,6 +361,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="remark != null and remark != ''">remark,</if>
 		    <if test="userType != null and userType != ''">user_type,</if>
 		    <if test="userTypeId != null">user_type_id,</if>
+		    <if test="wxOpenId != null and wxOpenId != ''">wx_openid,</if>
 		    <if test="accountType != null">account_type,</if>
  			create_time
  		)values(
@@ -395,6 +396,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="remark != null and remark != ''">#{remark},</if>
 		    <if test="userType != null">#{userType},</if>
 		    <if test="userTypeId != null">#{userTypeId},</if>
+		    <if test="wxOpenId != null">#{wxOpenId},</if>
 		    <if test="accountType != null">#{accountType},</if>
  			sysdate()
  		)