|
@@ -169,7 +169,7 @@ public class WxH5MpController {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 处理用户信息
|
|
// 处理用户信息
|
|
|
- FsUser user = processUserInfoByCourseLoginByMp(wxMpUser);
|
|
|
|
|
|
|
+ FsUser user = processUserInfoByCourseLoginByMp(wxMpUser, param);
|
|
|
|
|
|
|
|
// 生成token并返回结果
|
|
// 生成token并返回结果
|
|
|
return generateLoginResult(user);
|
|
return generateLoginResult(user);
|
|
@@ -192,6 +192,11 @@ public class WxH5MpController {
|
|
|
userUpdate.setUpdateTime(new DateTime());
|
|
userUpdate.setUpdateTime(new DateTime());
|
|
|
userUpdate.setNickName(wxMpUser.getNickname());
|
|
userUpdate.setNickName(wxMpUser.getNickname());
|
|
|
userUpdate.setAvatar(wxMpUser.getHeadImgUrl());
|
|
userUpdate.setAvatar(wxMpUser.getHeadImgUrl());
|
|
|
|
|
+ // 老用户 - 检查并添加 appId(不重复添加)
|
|
|
|
|
+ String updatedAppId = addAppIdIfNotExists(user.getAppId(), param.getAppId());
|
|
|
|
|
+ if (!updatedAppId.equals(user.getAppId())) {
|
|
|
|
|
+ userUpdate.setAppId(updatedAppId);
|
|
|
|
|
+ }
|
|
|
userService.updateFsUser(userUpdate);
|
|
userService.updateFsUser(userUpdate);
|
|
|
return userUpdate;
|
|
return userUpdate;
|
|
|
} else {
|
|
} else {
|
|
@@ -206,13 +211,15 @@ public class WxH5MpController {
|
|
|
newUser.setUnionId(wxMpUser.getUnionId());
|
|
newUser.setUnionId(wxMpUser.getUnionId());
|
|
|
newUser.setCreateTime(new Date());
|
|
newUser.setCreateTime(new Date());
|
|
|
newUser.setStatus(company != null && company.getFsUserIsDefaultBlack() == 1 ? 0 : 1);
|
|
newUser.setStatus(company != null && company.getFsUserIsDefaultBlack() == 1 ? 0 : 1);
|
|
|
|
|
+ // 新用户 - 添加 appId
|
|
|
|
|
+ newUser.setAppId(param.getAppId());
|
|
|
userService.insertFsUser(newUser);
|
|
userService.insertFsUser(newUser);
|
|
|
|
|
|
|
|
return newUser;
|
|
return newUser;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private FsUser processUserInfoByCourseLoginByMp(WxOAuth2UserInfo wxMpUser) {
|
|
|
|
|
|
|
+ private FsUser processUserInfoByCourseLoginByMp(WxOAuth2UserInfo wxMpUser, FsUserLoginByCourseMpParam param) {
|
|
|
FsUser user = userService.selectFsUserByUnionId(wxMpUser.getUnionId());
|
|
FsUser user = userService.selectFsUserByUnionId(wxMpUser.getUnionId());
|
|
|
|
|
|
|
|
if (user != null) {
|
|
if (user != null) {
|
|
@@ -224,6 +231,11 @@ public class WxH5MpController {
|
|
|
userUpdate.setUpdateTime(new DateTime());
|
|
userUpdate.setUpdateTime(new DateTime());
|
|
|
userUpdate.setNickName(wxMpUser.getNickname());
|
|
userUpdate.setNickName(wxMpUser.getNickname());
|
|
|
userUpdate.setAvatar(wxMpUser.getHeadImgUrl());
|
|
userUpdate.setAvatar(wxMpUser.getHeadImgUrl());
|
|
|
|
|
+ // 老用户 - 检查并添加 appId(不重复添加)
|
|
|
|
|
+ String updatedAppId = addAppIdIfNotExists(user.getAppId(), param.getAppId());
|
|
|
|
|
+ if (!updatedAppId.equals(user.getAppId())) {
|
|
|
|
|
+ userUpdate.setAppId(updatedAppId);
|
|
|
|
|
+ }
|
|
|
userService.updateFsUser(userUpdate);
|
|
userService.updateFsUser(userUpdate);
|
|
|
return userUpdate;
|
|
return userUpdate;
|
|
|
} else {
|
|
} else {
|
|
@@ -237,6 +249,8 @@ public class WxH5MpController {
|
|
|
// newUser.setCompanyUserId(companyUser.getUserId());
|
|
// newUser.setCompanyUserId(companyUser.getUserId());
|
|
|
newUser.setUnionId(wxMpUser.getUnionId());
|
|
newUser.setUnionId(wxMpUser.getUnionId());
|
|
|
newUser.setCreateTime(new Date());
|
|
newUser.setCreateTime(new Date());
|
|
|
|
|
+ // 新用户 - 添加 appId
|
|
|
|
|
+ newUser.setAppId(param.getAppId());
|
|
|
userService.insertFsUser(newUser);
|
|
userService.insertFsUser(newUser);
|
|
|
return newUser;
|
|
return newUser;
|
|
|
}
|
|
}
|
|
@@ -257,6 +271,36 @@ public class WxH5MpController {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 添加appId到用户的appId列表中(如果不存在)
|
|
|
|
|
+ * @param currentAppIds 当前用户已有的appId列表(逗号分隔)
|
|
|
|
|
+ * @param newAppId 新的appId
|
|
|
|
|
+ * @return 更新后的appId列表
|
|
|
|
|
+ */
|
|
|
|
|
+ private String addAppIdIfNotExists(String currentAppIds, String newAppId) {
|
|
|
|
|
+ // 如果新appId为空,返回原值
|
|
|
|
|
+ if (StringUtils.isEmpty(newAppId)) {
|
|
|
|
|
+ return currentAppIds == null ? "" : currentAppIds;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 如果当前appId为空,直接返回新appId
|
|
|
|
|
+ if (StringUtils.isEmpty(currentAppIds)) {
|
|
|
|
|
+ return newAppId;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 检查是否已存在
|
|
|
|
|
+ String[] appIdArray = currentAppIds.split(",");
|
|
|
|
|
+ for (String appId : appIdArray) {
|
|
|
|
|
+ if (appId.trim().equals(newAppId.trim())) {
|
|
|
|
|
+ // 已存在,不需要添加
|
|
|
|
|
+ return currentAppIds;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 不存在,追加到末尾
|
|
|
|
|
+ return currentAppIds + "," + newAppId;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private R generateLoginResult(FsUser user) {
|
|
private R generateLoginResult(FsUser user) {
|
|
|
String token = jwtUtils.generateToken(user.getUserId());
|
|
String token = jwtUtils.generateToken(user.getUserId());
|
|
|
redisCache.setCacheObject("token:" + user.getUserId(), token, 604800, TimeUnit.SECONDS);
|
|
redisCache.setCacheObject("token:" + user.getUserId(), token, 604800, TimeUnit.SECONDS);
|