|
@@ -295,49 +295,141 @@ public class AppLoginController extends AppBaseController{
|
|
|
}
|
|
}
|
|
|
FsUser user = userService.selectFsUserByUnionid(unionid);
|
|
FsUser user = userService.selectFsUserByUnionid(unionid);
|
|
|
|
|
|
|
|
|
|
+ // 苹果用户需要特殊处理
|
|
|
|
|
+ FsUser appleUser=null;
|
|
|
|
|
+ if(StringUtils.isNotBlank(param.getAppleKey())){
|
|
|
|
|
+ appleUser= userService.selectFsUserByAppleKey(param.getAppleKey());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
if (user == null) {
|
|
if (user == null) {
|
|
|
- user = new FsUser();
|
|
|
|
|
- user.setLoginDevice(param.getLoginDevice()!=null ? param.getLoginDevice() : null);
|
|
|
|
|
- user.setSource(param.getSource()!=null ? param.getSource() : null);
|
|
|
|
|
- user.setNickName(nickname);
|
|
|
|
|
- user.setAvatar(avatar);
|
|
|
|
|
- user.setAppOpenId(openid);
|
|
|
|
|
- if (sex!=0){
|
|
|
|
|
- user.setSex(sex);
|
|
|
|
|
- }
|
|
|
|
|
- user.setUnionId(unionid);
|
|
|
|
|
- // 新用户 - 添加 appId
|
|
|
|
|
- user.setAppId(appId);
|
|
|
|
|
- user.setCreateTime(new Date());
|
|
|
|
|
- user.setStatus(1);
|
|
|
|
|
- if (StringUtils.isNotEmpty(param.getJpushId())) {
|
|
|
|
|
- user.setJpushId(param.getJpushId());
|
|
|
|
|
- }
|
|
|
|
|
- String ipAddr = IpUtils.getIpAddr(ServletUtils.getRequest());
|
|
|
|
|
- user.setLastIp(ipAddr);
|
|
|
|
|
- userService.insertFsUser(user);
|
|
|
|
|
- if(!CloudHostUtils.hasCloudHostName("鸿森堂")){
|
|
|
|
|
- map.put("isNew", true);
|
|
|
|
|
- map.put("unionid",unionid);
|
|
|
|
|
- return R.ok(map);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if(appleUser != null){ // 存在苹果用户,将微信信息绑定到苹果用户
|
|
|
|
|
+ FsUser userMap = new FsUser();
|
|
|
|
|
+ userMap.setUserId(appleUser.getUserId());
|
|
|
|
|
+ userMap.setNickName(nickname);
|
|
|
|
|
+ userMap.setAvatar(avatar);
|
|
|
|
|
+ userMap.setAppOpenId(openid);
|
|
|
|
|
+ if (sex!=0){
|
|
|
|
|
+ userMap.setSex(sex);
|
|
|
|
|
+ }
|
|
|
|
|
+ userMap.setUnionId(unionid);
|
|
|
|
|
+ if(appleUser.getAppCreateTime()== null){
|
|
|
|
|
+ userMap.setAppCreateTime(new Date());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(StringUtils.isBlank(appleUser.getAppleKey())){
|
|
|
|
|
+ userMap.setAppleKey(param.getAppleKey());
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isNotEmpty(param.getJpushId())) {
|
|
|
|
|
+ userMap.setJpushId(param.getJpushId());
|
|
|
|
|
+ }
|
|
|
|
|
+ userMap.setLoginDevice(param.getLoginDevice()!=null ? param.getLoginDevice() : null);
|
|
|
|
|
+ userService.updateFsUser(userMap);
|
|
|
|
|
+ user=appleUser;
|
|
|
|
|
+ }else {
|
|
|
|
|
+ user = new FsUser();
|
|
|
|
|
+ user.setLoginDevice(param.getLoginDevice()!=null ? param.getLoginDevice() : null);
|
|
|
|
|
+ user.setSource(param.getSource()!=null ? param.getSource() : null);
|
|
|
|
|
+ user.setNickName(nickname);
|
|
|
|
|
+ user.setAvatar(avatar);
|
|
|
|
|
+ user.setAppOpenId(openid);
|
|
|
|
|
+ if (sex!=0){
|
|
|
|
|
+ user.setSex(sex);
|
|
|
|
|
+ }
|
|
|
|
|
+ user.setUnionId(unionid);
|
|
|
|
|
+ // 新用户 - 添加 appId
|
|
|
|
|
+ user.setAppId(appId);
|
|
|
|
|
+ user.setCreateTime(new Date());
|
|
|
|
|
+ user.setStatus(1);
|
|
|
|
|
+ user.setAppleKey(param.getAppleKey());
|
|
|
|
|
+ if (StringUtils.isNotEmpty(param.getJpushId())) {
|
|
|
|
|
+ user.setJpushId(param.getJpushId());
|
|
|
|
|
+ }
|
|
|
|
|
+ String ipAddr = IpUtils.getIpAddr(ServletUtils.getRequest());
|
|
|
|
|
+ user.setLastIp(ipAddr);
|
|
|
|
|
+ userService.insertFsUser(user);
|
|
|
|
|
+ if(!CloudHostUtils.hasCloudHostName("鸿森堂")){
|
|
|
|
|
+ map.put("isNew", true);
|
|
|
|
|
+ map.put("unionid",unionid);
|
|
|
|
|
+ return R.ok(map);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
} else {
|
|
} else {
|
|
|
- // 老用户 - 检查并添加appId(不重复添加)
|
|
|
|
|
- String updatedAppId = addAppIdIfNotExists(user.getAppId(), appId);
|
|
|
|
|
- if (!updatedAppId.equals(user.getAppId())) {
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if(appleUser != null){// 苹果账户也存在
|
|
|
|
|
+ // 需要合并账号,保留微信账号 删除苹果账号
|
|
|
FsUser userMap = new FsUser();
|
|
FsUser userMap = new FsUser();
|
|
|
userMap.setUserId(user.getUserId());
|
|
userMap.setUserId(user.getUserId());
|
|
|
- userMap.setAppId(updatedAppId);
|
|
|
|
|
- String ipAddr = IpUtils.getIpAddr(ServletUtils.getRequest());
|
|
|
|
|
- userMap.setLastIp(ipAddr);
|
|
|
|
|
|
|
+ userMap.setIntegral(appleUser.getIntegral()+user.getIntegral());
|
|
|
|
|
+ if (StringUtils.isNotEmpty(param.getJpushId())) {
|
|
|
|
|
+ userMap.setJpushId(param.getJpushId());
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isNotEmpty(openid)) {
|
|
|
|
|
+ userMap.setAppOpenId(openid);
|
|
|
|
|
+ }
|
|
|
|
|
+ if(user.getAppCreateTime()== null){
|
|
|
|
|
+ userMap.setAppCreateTime(new Date());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(StringUtils.isBlank(user.getAppleKey())){
|
|
|
|
|
+ userMap.setAppleKey(param.getAppleKey());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (StringUtils.isNotBlank(param.getSource())) {
|
|
|
|
|
+ userMap.setSource(param.getSource());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ userMap.setLoginDevice(param.getLoginDevice()!=null ? param.getLoginDevice() : null);
|
|
|
|
|
+
|
|
|
|
|
+ if(userService.updateFsUser(userMap)>0){
|
|
|
|
|
+ userService.deleteFsUserByUserId(appleUser.getUserId());
|
|
|
|
|
+ }else {
|
|
|
|
|
+ return R.error("账号合并,登录异常");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }else {
|
|
|
|
|
+ // 老用户 - 检查并添加appId(不重复添加)
|
|
|
|
|
+ String updatedAppId = addAppIdIfNotExists(user.getAppId(), appId);
|
|
|
|
|
+
|
|
|
|
|
+ FsUser userMap = new FsUser();
|
|
|
|
|
+ userMap.setUserId(user.getUserId());
|
|
|
|
|
+
|
|
|
|
|
+ if (!updatedAppId.equals(user.getAppId())) {
|
|
|
|
|
+ userMap.setAppId(updatedAppId);
|
|
|
|
|
+ String ipAddr = IpUtils.getIpAddr(ServletUtils.getRequest());
|
|
|
|
|
+ userMap.setLastIp(ipAddr);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (StringUtils.isNotEmpty(param.getJpushId())) {
|
|
|
|
|
+ userMap.setJpushId(param.getJpushId());
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isNotEmpty(openid)) {
|
|
|
|
|
+ userMap.setAppOpenId(openid);
|
|
|
|
|
+ }
|
|
|
|
|
+ if(user.getAppCreateTime()== null){
|
|
|
|
|
+ userMap.setAppCreateTime(new Date());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(StringUtils.isBlank(user.getAppleKey())){
|
|
|
|
|
+ userMap.setAppleKey(param.getAppleKey());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 更新登录设备信息
|
|
|
|
|
+ if (StringUtils.isNotBlank(param.getSource())) {
|
|
|
|
|
+ userMap.setSource(param.getSource());
|
|
|
|
|
+ }
|
|
|
|
|
+ // 更新登录设备信息
|
|
|
|
|
+ userMap.setLoginDevice(param.getLoginDevice()!=null ? param.getLoginDevice() : null);
|
|
|
|
|
+
|
|
|
userService.updateFsUser(userMap);
|
|
userService.updateFsUser(userMap);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (StringUtils.isNotEmpty(param.getJpushId())) {
|
|
|
|
|
- user.setAppOpenId(openid);
|
|
|
|
|
- updateExistingUserJpushId(user, param.getJpushId());
|
|
|
|
|
- }
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// if (StringUtils.isNotEmpty(param.getJpushId())) {
|
|
|
|
|
+// user.setAppOpenId(openid);
|
|
|
|
|
+// updateExistingUserJpushId(user, param.getJpushId());
|
|
|
|
|
+// }
|
|
|
if (StringUtils.isEmpty(user.getPhone())) {
|
|
if (StringUtils.isEmpty(user.getPhone())) {
|
|
|
if(!CloudHostUtils.hasCloudHostName("鸿森堂")) {
|
|
if(!CloudHostUtils.hasCloudHostName("鸿森堂")) {
|
|
|
map.put("isNew", true);
|
|
map.put("isNew", true);
|
|
@@ -347,8 +439,8 @@ public class AppLoginController extends AppBaseController{
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 更新登录设备信息
|
|
|
|
|
- updateLoginDevice(user.getUserId(), param.getLoginDevice(), param.getSource());
|
|
|
|
|
|
|
+// // 更新登录设备信息
|
|
|
|
|
+// updateLoginDevice(user.getUserId(), param.getLoginDevice(), param.getSource());
|
|
|
|
|
|
|
|
int isFirstLogin = userNewTaskService.performTaskOne(user.getUserId());
|
|
int isFirstLogin = userNewTaskService.performTaskOne(user.getUserId());
|
|
|
String token = jwtUtils.generateToken(user.getUserId());
|
|
String token = jwtUtils.generateToken(user.getUserId());
|