|
@@ -64,14 +64,8 @@ public class TenantInfoController extends BaseController {
|
|
|
private TenantStaffService tenantStaffService;
|
|
|
|
|
|
@Autowired
|
|
|
- private SysConfigService sysConfigService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
private SysUserMapper sysUserMapper;
|
|
|
|
|
|
- @Autowired
|
|
|
- private EmployeeService employeeService;
|
|
|
-
|
|
|
@ApiOperation(value = "发送登录短信验证码")
|
|
|
@ApiImplicitParams({@ApiImplicitParam(name = "mobile", value = "手机号", required = true, dataType = "String"),
|
|
|
@ApiImplicitParam(name = "type", value = "类型(PASSWD:修改密码,LOGIN:登录或注册,BANK:绑定银行卡,PHONE:修改手机号)", required =
|
|
@@ -169,10 +163,11 @@ public class TenantInfoController extends BaseController {
|
|
|
}
|
|
|
|
|
|
TenantStaff staff = tenantStaffService.getByUserId(user.getId());
|
|
|
- if (Objects.nonNull(staff)) {
|
|
|
- // 设置用户机构ID
|
|
|
- user.setTenantId(staff.getTenantId());
|
|
|
+ if (staff == null) {
|
|
|
+ throw new BizException("账号不存在");
|
|
|
}
|
|
|
+ // 设置用户机构ID
|
|
|
+ user.setTenantId(staff.getTenantId());
|
|
|
//如果传手机号
|
|
|
if (StringUtils.isNotBlank(sysUser.getPhone())) {
|
|
|
|
|
@@ -185,145 +180,58 @@ public class TenantInfoController extends BaseController {
|
|
|
throw new BizException("验证码错误");
|
|
|
}
|
|
|
|
|
|
- long userId;
|
|
|
- // 查询输入的手机号 是否存在于sysUser表中
|
|
|
- SysUser sysUserInfo = sysUserMapper.findUserByPhone(sysUser.getPhone());
|
|
|
-
|
|
|
- // 用户默认头象
|
|
|
- if (Objects.nonNull(sysUserInfo)) {
|
|
|
-
|
|
|
- //如果存在 判断是否为机构员工
|
|
|
- TenantStaff tenantStaff = tenantStaffService.getByUserId(sysUserInfo.getId());
|
|
|
- if (Objects.nonNull(tenantStaff)) {
|
|
|
- throw new BizException("该手机号已绑定机构");
|
|
|
+ // 如果修改了手机号
|
|
|
+ if (StringUtils.isNotEmpty(sysUser.getPhone()) && !user.getPhone().equals(sysUser.getPhone())) {
|
|
|
+ // 查询输入的手机号 是否存在于sysUser表中
|
|
|
+ SysUser sysUserInfo = sysUserMapper.findUserByPhone(sysUser.getPhone());
|
|
|
+ if (Objects.nonNull(sysUserInfo)) {
|
|
|
+ throw new BizException("手机号已经注册平台账号");
|
|
|
}
|
|
|
-
|
|
|
- // 平台员工不允许重复
|
|
|
- SysUser employee = employeeService.queryUserByMobile(sysUser.getPhone());
|
|
|
- if (Objects.nonNull(employee) && employee.getPhone().equals(sysUser.getPhone())
|
|
|
- && employee.getUserType().contains(ClientEnum.SYSTEM.getCode())) {
|
|
|
- throw new BizException("当前手机号已绑定平台员工");
|
|
|
+ // 清除登录token信息,有wxOpenId说明登陆过
|
|
|
+ if (StringUtils.isNotEmpty(staff.getWxOpenid())) {
|
|
|
+ sysUserFeignService.exitByPhoneAndOpenId(ClientEnum.ORGANIZATION.getCode().toLowerCase(),
|
|
|
+ user.getPhone(), staff.getWxOpenid());
|
|
|
+ // 清除WXOpenId
|
|
|
+ tenantStaffService.update(null, Wrappers.<TenantStaff>lambdaUpdate()
|
|
|
+ .set(TenantStaff::getWxOpenid, null)
|
|
|
+ .eq(TenantStaff::getId, staff.getId()));
|
|
|
}
|
|
|
-
|
|
|
- // 更新用户身份
|
|
|
- com.yonge.cooleshow.biz.dal.entity.SysUser newSysUser = new com.yonge.cooleshow.biz.dal.entity.SysUser();
|
|
|
- // 设置用户ID
|
|
|
- newSysUser.setId(sysUserInfo.getId());
|
|
|
- // 用户身份
|
|
|
- newSysUser.setUserType(sysUserInfo.getUserType() + ",ORGANIZATION");
|
|
|
- newSysUser.setUpdateTime(LocalDateTime.now());
|
|
|
-
|
|
|
- // 新用户更新
|
|
|
- sysUserMapper.updateById(newSysUser);
|
|
|
-
|
|
|
- // 新用户ID
|
|
|
- userId = sysUserInfo.getId();
|
|
|
- } else {
|
|
|
-
|
|
|
- // 重新生成sysUser数据
|
|
|
- com.yonge.cooleshow.biz.dal.entity.SysUser newSysUser = JSON.parseObject(JSON.toJSONString(user),
|
|
|
- com.yonge.cooleshow.biz.dal.entity.SysUser.class);
|
|
|
- // 重置主键ID
|
|
|
- newSysUser.setId(null);
|
|
|
- // 设置新手机号
|
|
|
- newSysUser.setPhone(sysUser.getPhone());
|
|
|
- // 创建和修改时间
|
|
|
- newSysUser.setCreateTime(LocalDateTime.now());
|
|
|
- newSysUser.setUpdateTime(LocalDateTime.now());
|
|
|
- if (StringUtils.isBlank(newSysUser.getAvatar())) {
|
|
|
- // 使用默认用户头像
|
|
|
- newSysUser.setAvatar(sysConfigService.findConfigValue(SysConfigConstant.TEACHER_AVATAR));
|
|
|
- }
|
|
|
- // 锁定状态
|
|
|
- newSysUser.setLockFlag(0);
|
|
|
- // 用户类型
|
|
|
- newSysUser.setUserType("ORGANIZATION");
|
|
|
- // 删除状态
|
|
|
- newSysUser.setDelFlag(0);
|
|
|
- newSysUser.setImToken("");
|
|
|
-
|
|
|
- sysUserMapper.insert(newSysUser);
|
|
|
- // 新用户ID
|
|
|
- userId = newSysUser.getId();
|
|
|
- }
|
|
|
-
|
|
|
- // 旧用户移动机构身份
|
|
|
- com.yonge.cooleshow.biz.dal.entity.SysUser oldSysUser = new com.yonge.cooleshow.biz.dal.entity.SysUser();
|
|
|
- oldSysUser.setId(user.getId());
|
|
|
- // 用户身份
|
|
|
- String userType = Arrays.stream(user.getUserType().split(","))
|
|
|
- .filter(x -> !x.equals("ORGANIZATION")).collect(Collectors.joining(","));
|
|
|
- oldSysUser.setUserType(userType);
|
|
|
- sysUserMapper.updateById(oldSysUser);
|
|
|
-
|
|
|
- // 更新用户ID
|
|
|
- tenantStaffService.lambdaUpdate()
|
|
|
- .eq(TenantStaff::getUserId, user.getId())
|
|
|
- .set(TenantStaff::getUserId, userId)
|
|
|
- .update();
|
|
|
-
|
|
|
- // 更新机构信息表中的用户
|
|
|
- if (Optional.ofNullable(user.getTenantId()).orElse(-1L) > 0) {
|
|
|
-
|
|
|
- tenantInfoService.lambdaUpdate()
|
|
|
- .eq(TenantInfo::getId, user.getTenantId())
|
|
|
- .set(TenantInfo::getUserId, userId)
|
|
|
- .set(TenantInfo::getPhone,sysUser.getPhone())
|
|
|
- .update();
|
|
|
- }
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- // 修改用户基础信息流程
|
|
|
- // 更新用户头象
|
|
|
- com.yonge.cooleshow.biz.dal.entity.SysUser updateSysUser = new com.yonge.cooleshow.biz.dal.entity.SysUser();
|
|
|
- updateSysUser.setId(user.getId());
|
|
|
- // 用户昵称
|
|
|
- if (StringUtils.isNotBlank(sysUser.getUsername())) {
|
|
|
- updateSysUser.setUsername(sysUser.getUsername());
|
|
|
- }
|
|
|
- //设置默认头像
|
|
|
- if (StringUtils.isNotBlank(sysUser.getAvatar())) {
|
|
|
- //sysUser.setAvatar(sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD));
|
|
|
- updateSysUser.setAvatar(sysUser.getAvatar());
|
|
|
- }
|
|
|
- updateSysUser.setUpdateTime(LocalDateTime.now());
|
|
|
- sysUserMapper.updateById(updateSysUser);
|
|
|
-
|
|
|
- // 更新机构员工头像和昵称,机构信息表中的用户昵称
|
|
|
- tenantStaffService.lambdaUpdate()
|
|
|
- .eq(TenantStaff::getUserId, user.getId())
|
|
|
- .set(StringUtils.isNotEmpty(sysUser.getUsername()), TenantStaff::getNickname, sysUser.getUsername())
|
|
|
- .set(StringUtils.isNotEmpty(sysUser.getAvatar()), TenantStaff::getAvatar, sysUser.getAvatar())
|
|
|
- .set(TenantStaff::getUpdateTime, LocalDateTime.now())
|
|
|
- .update();
|
|
|
-
|
|
|
-
|
|
|
- // 更新机构信息表中的用户昵称
|
|
|
- if (StringUtils.isNotBlank(sysUser.getUsername()) && Optional.ofNullable(user.getTenantId()).orElse(-1L) > 0) {
|
|
|
-
|
|
|
- tenantInfoService.lambdaUpdate()
|
|
|
- .eq(TenantInfo::getId, user.getTenantId())
|
|
|
- .set(TenantInfo::getUsername, sysUser.getUsername())
|
|
|
- .update();
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
- // 修改了手机号码,清理token和WXOpenId
|
|
|
- if (StringUtils.isNotEmpty(sysUser.getPhone()) && !user.getPhone().equals(sysUser.getPhone())) {
|
|
|
- // 清除登录token信息,有wxOpenId说明登陆过
|
|
|
- if (StringUtils.isNotEmpty(staff.getWxOpenid())) {
|
|
|
- TenantStaff newStaff = tenantStaffService.getByPhone(sysUser.getPhone());
|
|
|
- sysUserFeignService.exitByPhoneAndOpenId(ClientEnum.ORGANIZATION.getCode().toLowerCase(),
|
|
|
- user.getPhone(), staff.getWxOpenid());
|
|
|
- // 清除WXOpenId
|
|
|
- tenantStaffService.update(null, Wrappers.<TenantStaff>lambdaUpdate()
|
|
|
- .set(TenantStaff::getWxOpenid, null)
|
|
|
- .eq(TenantStaff::getUserId, newStaff.getUserId()));
|
|
|
- }
|
|
|
+ // 修改用户基础信息流程
|
|
|
+ // 更新用户头象
|
|
|
+ com.yonge.cooleshow.biz.dal.entity.SysUser updateSysUser = new com.yonge.cooleshow.biz.dal.entity.SysUser();
|
|
|
+ updateSysUser.setId(user.getId());
|
|
|
+ // 用户昵称
|
|
|
+ if (StringUtils.isNotBlank(sysUser.getUsername())) {
|
|
|
+ updateSysUser.setUsername(sysUser.getUsername());
|
|
|
}
|
|
|
-
|
|
|
+ //设置默认头像
|
|
|
+ if (StringUtils.isNotBlank(sysUser.getAvatar())) {
|
|
|
+ updateSysUser.setAvatar(sysUser.getAvatar());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(sysUser.getPhone())) {
|
|
|
+ updateSysUser.setPhone(sysUser.getPhone());
|
|
|
+ }
|
|
|
+ updateSysUser.setUpdateTime(LocalDateTime.now());
|
|
|
+ sysUserMapper.updateById(updateSysUser);
|
|
|
+
|
|
|
+
|
|
|
+ // 更新机构员工头像和昵称,机构信息表中的用户昵称
|
|
|
+ tenantStaffService.lambdaUpdate()
|
|
|
+ .eq(TenantStaff::getId, staff.getId())
|
|
|
+ .set(StringUtils.isNotEmpty(sysUser.getUsername()), TenantStaff::getNickname, sysUser.getUsername())
|
|
|
+ .set(StringUtils.isNotEmpty(sysUser.getAvatar()), TenantStaff::getAvatar, sysUser.getAvatar())
|
|
|
+ .set(TenantStaff::getUpdateTime, LocalDateTime.now())
|
|
|
+ .update();
|
|
|
+
|
|
|
+ // 更新机构信息表中的用户昵称
|
|
|
+ tenantInfoService.lambdaUpdate()
|
|
|
+ .eq(TenantInfo::getId, staff.getTenantId())
|
|
|
+ .set(StringUtils.isNotEmpty(sysUser.getUsername()), TenantInfo::getUsername, sysUser.getUsername())
|
|
|
+ .set(StringUtils.isNotEmpty(sysUser.getPhone()), TenantInfo::getPhone, sysUser.getPhone())
|
|
|
+ .update();
|
|
|
return HttpResponseResult.succeed(true);
|
|
|
}
|
|
|
}
|