Explorar el Código

微信登录代码完善

skyline hace 2 años
padre
commit
ce7c7dc5e5

+ 2 - 2
entity/src/main/java/com/kym/entity/miniapp/params/WxLoginParams.java

@@ -12,8 +12,8 @@ import lombok.Data;
 public class WxLoginParams {
     @NotBlank(message = "code不能为空")
     private String code;
-    @NotBlank(message = "手机号不能为空")
-    private String mobilePhone;
+    @NotBlank(message = "手机号编码不能为空")
+    private String phoneCode;
     private String avatar;
     private String nickname;
 }

+ 8 - 14
service/src/main/java/com/kym/service/miniapp/impl/UserServiceImpl.java

@@ -11,7 +11,6 @@ import com.kym.common.constant.ResponseEnum;
 import com.kym.common.enums.WxApi;
 import com.kym.common.exception.BusinessException;
 import com.kym.common.utils.HttpUtil;
-import com.kym.common.utils.IDGenerator;
 import com.kym.entity.miniapp.Account;
 import com.kym.entity.miniapp.Cars;
 import com.kym.entity.miniapp.User;
@@ -50,8 +49,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     @Autowired
     WxConfig wxConfig;
     @Autowired
-    private IDGenerator idGenerator;
-    @Autowired
     private UserMapper userMapper;
     @Autowired
     private AccountService accountService;
@@ -71,12 +68,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 "js_code", params.getCode()
         ));
 
-        var errorCode = json.getIntValue("errcode");
-        if (200 == errorCode) {
+        Integer errorCode = json.getInteger("errcode");
+        if (errorCode == null) {
             // 业务逻辑处理
             var openid = json.getString("openid");
             var session_key = json.getString("session_key");
-            var unionid = json.getString("unionid");
+            var unionid = json.getString("unionid") == null ? "" : json.getString("unionid");
             // 判断有没有,没有就新增
             var user = userMapper.selectOne(new QueryWrapper<User>().eq("openid", openid));
             if (user != null) {
@@ -86,14 +83,13 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 // 注册逻辑
                 // 新增用户
                 var newUser = new User();
-                newUser.setId(idGenerator.nextId());
                 newUser.setOpenid(openid);
                 newUser.setUnionid(unionid);
                 // 手机号解密:先获取access_token,再请求手机号信息
                 // access_token获取
                 var accessTokenJson = HttpUtil.getJson(WxApi.WX_GET_ACCESS_TOKEN.getApi(), Map.of("appid", wxConfig.getAppid(), "secret", wxConfig.getSecret()));
                 var accessToken = accessTokenJson.getString("access_token");
-                var wxPhoneNum = HttpUtil.post(WxApi.WX_MP_GET_PHONE.getApi().replace("ACCESS_TOKEN", accessToken), Map.of("code", params.getCode()), WxPhoneNum.class);
+                var wxPhoneNum = HttpUtil.post(WxApi.WX_MP_GET_PHONE.getApi().replace("ACCESS_TOKEN", accessToken), Map.of("code", params.getPhoneCode()), WxPhoneNum.class);
                 var mobilePhone = wxPhoneNum.getPhone_info().getPurePhoneNumber();
                 newUser.setMobilePhone(mobilePhone);
                 newUser.setAvatar(params.getAvatar());
@@ -101,7 +97,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 userMapper.insert(newUser);
                 // 创建用户账户
                 var account = new Account();
-                account.setId(idGenerator.nextId());
                 account.setUserId(newUser.getId());
                 accountService.save(account);
                 // 登录逻辑
@@ -134,18 +129,18 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     private R handleLogin(User user) {
         StpUtil.login(user.getId());
         // 用户名存入session,统一日志读取使用
+        StpUtil.getSession().set("openid", user.getOpenid());
         StpUtil.getSession().set("userId", user.getId());
-        StpUtil.getSession().set("username", user.getUsername());
+        StpUtil.getSession().set("mobilePhone", user.getMobilePhone());
         user.setLastLoginTime(LocalDateTime.now());
         updateById(user);
-        LOGGER.info("用户:" + user.getUsername() + "/id:" + user.getId() + "登录");
-        return R.success(of("id", user.getId(), "token", StpUtil.getTokenValue()));
+        LOGGER.info("用户:" + user.getMobilePhone() + "/id:" + user.getId() + "登录成功");
+        return R.success(of("userId", user.getId(), "accessToken", "Bearer ".concat(StpUtil.getTokenValue())));
     }
 
     @Override
     public boolean createUser(UserVo userVo) {
         var user = new User();
-        user.setId(idGenerator.nextId());
         user.setUsername(userVo.username);
         return save(user);
     }
@@ -188,5 +183,4 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     }
 
 
-
 }