修改微信授权逻辑

This commit is contained in:
sh
2025-10-20 19:49:28 +08:00
parent 418c22d78d
commit e56a8a285d
8 changed files with 66 additions and 32 deletions

View File

@@ -244,6 +244,7 @@ public class SysLoginService
* @return
*/
public AjaxResult appLogin(LoginBody dto){
AjaxResult ajax = AjaxResult.success();
System.out.println("小程序微信授权登录---------参数列表========dto========"+ JSON.toJSONString(dto));
JSONObject sessionInfo = wechatUtil.code2Session(dto.getCode());
String openid = sessionInfo.getString("openid");
@@ -252,30 +253,37 @@ public class SysLoginService
if (openid == null) {
return AjaxResult.error("微信授权失败");
}
//验证是否登录过
AppUser existingUser=appUserService.selectByOpenid(openid);
if(existingUser!=null){
String token = loginUserIdApp(existingUser);
ajax.put(Constants.TOKEN, token);
return ajax;
}else {
JSONObject phoneInfo = wechatUtil.decryptPhoneNumber(dto.getEncryptedData(), sessionKey, dto.getIv());
String phone = phoneInfo.getString("phoneNumber");
if (phone == null) {
return AjaxResult.error("获取手机号失败");
}
JSONObject phoneInfo = wechatUtil.decryptPhoneNumber(dto.getEncryptedData(), sessionKey, dto.getIv());
String phone = phoneInfo.getString("phoneNumber");
if (phone == null) {
return AjaxResult.error("获取手机号失败");
// 3. 检查手机号是否已被绑定
AppUser existUser = appUserService.getPhone(phone);
if (existUser != null) {
return AjaxResult.error("手机号已注册");
}
// 4. 创建用户并存储所有信息
AppUser appUser = new AppUser();
appUser.setOpenid(openid);
appUser.setUnionid(unionid);
appUser.setPhone(phone);
appUser.setIsCompanyUser(dto.getUserType());//保存角色
appUserService.insertAppUser(appUser);
// 5. 生成系统令牌
String token = loginUserIdApp(appUser);
ajax.put(Constants.TOKEN, token);
return ajax;
}
// 3. 检查手机号是否已被绑定
AppUser existUser = appUserService.getPhone(phone);
if (existUser != null) {
return AjaxResult.error("该手机号已注册");
}
// 4. 创建用户并存储所有信息
AppUser appUser = new AppUser();
appUser.setOpenid(openid);
appUser.setUnionid(unionid);
appUser.setPhone(phone);
appUserService.insertAppUser(appUser);
// 5. 生成系统令牌
AjaxResult ajax = AjaxResult.success();
String token = loginUserIdApp(appUser);
ajax.put(Constants.TOKEN, token);
return ajax;
}
}