|
@@ -277,7 +277,7 @@ public class AppLoginController extends AppBaseController{
|
|
|
userMap.setAppId(updatedAppId);
|
|
userMap.setAppId(updatedAppId);
|
|
|
userService.updateFsUser(userMap);
|
|
userService.updateFsUser(userMap);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
if (StringUtils.isNotEmpty(param.getJpushId())) {
|
|
if (StringUtils.isNotEmpty(param.getJpushId())) {
|
|
|
updateExistingUserJpushId(user, param.getJpushId());
|
|
updateExistingUserJpushId(user, param.getJpushId());
|
|
|
}
|
|
}
|
|
@@ -358,6 +358,7 @@ public class AppLoginController extends AppBaseController{
|
|
|
|
|
|
|
|
@ApiOperation("绑定手机号")
|
|
@ApiOperation("绑定手机号")
|
|
|
@PostMapping("/setPhone")
|
|
@PostMapping("/setPhone")
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public R setPhone(@Validated @RequestBody FsUserEditPhoneParam param) {
|
|
public R setPhone(@Validated @RequestBody FsUserEditPhoneParam param) {
|
|
|
logger.info("fcj 绑定手机号入参:{}", param);
|
|
logger.info("fcj 绑定手机号入参:{}", param);
|
|
|
FsUser user = userService.selectFsUserByUnionid(param.getUnionId());
|
|
FsUser user = userService.selectFsUserByUnionid(param.getUnionId());
|
|
@@ -365,9 +366,20 @@ public class AppLoginController extends AppBaseController{
|
|
|
return R.error("用户数据不存在");
|
|
return R.error("用户数据不存在");
|
|
|
}
|
|
}
|
|
|
FsUser userMap = findUserByPhone(param.getPhone());
|
|
FsUser userMap = findUserByPhone(param.getPhone());
|
|
|
-// if (userMap!=null){
|
|
|
|
|
-// return R.error("该手机号已绑定其他账号");
|
|
|
|
|
-// }
|
|
|
|
|
|
|
+ //绑定的手机号已存在用户的情况,将微信登录的时候创建的新号的UnionId移动到老号中,删除新号(将两个号合并)
|
|
|
|
|
+ if (userMap!=null){
|
|
|
|
|
+ if (StringUtils.isNotEmpty(userMap.getUnionId())&&!userMap.getUnionId().equals(user.getUnionId())){
|
|
|
|
|
+ return R.error("该手机号已绑定其他微信");
|
|
|
|
|
+ }
|
|
|
|
|
+ userMap.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null);
|
|
|
|
|
+ userMap.setSource(param.getSource());
|
|
|
|
|
+ userMap.setUnionId(user.getUnionId());
|
|
|
|
|
+ if (userService.updateFsUser(userMap)>0){
|
|
|
|
|
+ userService.realDeleteFsUserByUserId(user.getUserId());
|
|
|
|
|
+ return generateTokenAndReturn(userMap);
|
|
|
|
|
+ }
|
|
|
|
|
+ return R.error("绑定手机号失败");
|
|
|
|
|
+ }
|
|
|
user.setPhone(param.getPhone());
|
|
user.setPhone(param.getPhone());
|
|
|
user.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null );
|
|
user.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null );
|
|
|
user.setSource(param.getSource()!= null ? param.getSource() : null);
|
|
user.setSource(param.getSource()!= null ? param.getSource() : null);
|
|
@@ -384,10 +396,14 @@ public class AppLoginController extends AppBaseController{
|
|
|
|
|
|
|
|
@ApiOperation("绑定微信")
|
|
@ApiOperation("绑定微信")
|
|
|
@PostMapping("/bindWeChat")
|
|
@PostMapping("/bindWeChat")
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public R bindWeChat(@Validated @RequestBody FsUserEditUnionidParam param) {
|
|
public R bindWeChat(@Validated @RequestBody FsUserEditUnionidParam param) {
|
|
|
try {
|
|
try {
|
|
|
logger.info("zyp app绑定微信,param:{}", param);
|
|
logger.info("zyp app绑定微信,param:{}", param);
|
|
|
Map result = WxUtil.getAccessToken(param.getCode(), openProperties.getAppId(), openProperties.getSecret());
|
|
Map result = WxUtil.getAccessToken(param.getCode(), openProperties.getAppId(), openProperties.getSecret());
|
|
|
|
|
+ if (!result.containsKey("access_token")) {
|
|
|
|
|
+ return R.error("微信授权失败");
|
|
|
|
|
+ }
|
|
|
String accessToken = result.get("access_token").toString();
|
|
String accessToken = result.get("access_token").toString();
|
|
|
String unionid = result.get("unionid").toString();
|
|
String unionid = result.get("unionid").toString();
|
|
|
String openid = result.get("openid").toString();
|
|
String openid = result.get("openid").toString();
|
|
@@ -398,21 +414,38 @@ public class AppLoginController extends AppBaseController{
|
|
|
FsUser user = findUserByPhone(param.getPhone());
|
|
FsUser user = findUserByPhone(param.getPhone());
|
|
|
if (user!=null && StringUtils.isEmpty(user.getUnionId())){
|
|
if (user!=null && StringUtils.isEmpty(user.getUnionId())){
|
|
|
FsUser userByUnionId = userMapper.selectFsUserByUnionid(unionid);
|
|
FsUser userByUnionId = userMapper.selectFsUserByUnionid(unionid);
|
|
|
-// if (userByUnionId!=null){
|
|
|
|
|
-// return R.error("该微信已绑定其他用户,请勿重复绑定!");
|
|
|
|
|
-// }
|
|
|
|
|
- user.setSource(param.getSource() != null ? param.getSource() : null );
|
|
|
|
|
- user.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null);
|
|
|
|
|
- user.setNickName(nickname);
|
|
|
|
|
- user.setAvatar(avatar);
|
|
|
|
|
- user.setSex(sex);
|
|
|
|
|
- user.setUnionId(unionid);
|
|
|
|
|
- if (userService.updateFsUser(user)>0){
|
|
|
|
|
- return generateTokenAndReturn(user);
|
|
|
|
|
|
|
+ //绑定的微信已存在用户的情况,将手机号一键登录的时候创建的新号的UnionId移动到老号中,删除新号(将两个号合并)
|
|
|
|
|
+ if (userByUnionId!=null){
|
|
|
|
|
+ if (StringUtils.isNotEmpty(userByUnionId.getPhone())&&!user.getPhone().equals(userByUnionId.getPhone())){
|
|
|
|
|
+ return R.error("该微信已绑定其他手机号");
|
|
|
|
|
+ }
|
|
|
|
|
+ userByUnionId.setPhone(user.getPhone());
|
|
|
|
|
+ userByUnionId.setSource(param.getSource() != null ? param.getSource() : null );
|
|
|
|
|
+ userByUnionId.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null);
|
|
|
|
|
+ userByUnionId.setNickName(nickname);
|
|
|
|
|
+ userByUnionId.setAvatar(avatar);
|
|
|
|
|
+ userByUnionId.setSex(sex);
|
|
|
|
|
+ if (userService.updateFsUser(userByUnionId)>0){
|
|
|
|
|
+ userService.realDeleteFsUserByUserId(user.getUserId());
|
|
|
|
|
+ return generateTokenAndReturn(userByUnionId);
|
|
|
|
|
+ }
|
|
|
|
|
+ else {
|
|
|
|
|
+ return R.error("绑定微信失败");
|
|
|
|
|
+ }
|
|
|
|
|
+ }else {
|
|
|
|
|
+ user.setSource(param.getSource() != null ? param.getSource() : null );
|
|
|
|
|
+ user.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null);
|
|
|
|
|
+ user.setNickName(nickname);
|
|
|
|
|
+ user.setAvatar(avatar);
|
|
|
|
|
+ user.setSex(sex);
|
|
|
|
|
+ user.setUnionId(unionid);
|
|
|
|
|
+ if (userService.updateFsUser(user)>0){
|
|
|
|
|
+ return generateTokenAndReturn(user);
|
|
|
|
|
+ }
|
|
|
|
|
+ else {
|
|
|
|
|
+ return R.error("绑定微信失败");
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
-// else {
|
|
|
|
|
-// return R.error("绑定微信失败");
|
|
|
|
|
-// }
|
|
|
|
|
}
|
|
}
|
|
|
return R.error("数据参数异常!");
|
|
return R.error("数据参数异常!");
|
|
|
}catch (Exception e){
|
|
}catch (Exception e){
|
|
@@ -736,12 +769,12 @@ public class AppLoginController extends AppBaseController{
|
|
|
if (StringUtils.isEmpty(newAppId)) {
|
|
if (StringUtils.isEmpty(newAppId)) {
|
|
|
return currentAppIds == null ? "" : currentAppIds;
|
|
return currentAppIds == null ? "" : currentAppIds;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 如果当前appId为空,直接返回新appId
|
|
// 如果当前appId为空,直接返回新appId
|
|
|
if (StringUtils.isEmpty(currentAppIds)) {
|
|
if (StringUtils.isEmpty(currentAppIds)) {
|
|
|
return newAppId;
|
|
return newAppId;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 检查是否已存在
|
|
// 检查是否已存在
|
|
|
String[] appIdArray = currentAppIds.split(",");
|
|
String[] appIdArray = currentAppIds.split(",");
|
|
|
for (String appId : appIdArray) {
|
|
for (String appId : appIdArray) {
|
|
@@ -750,7 +783,7 @@ public class AppLoginController extends AppBaseController{
|
|
|
return currentAppIds;
|
|
return currentAppIds;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 不存在,追加到末尾
|
|
// 不存在,追加到末尾
|
|
|
return currentAppIds + "," + newAppId;
|
|
return currentAppIds + "," + newAppId;
|
|
|
}
|
|
}
|