|  | @@ -38,6 +38,7 @@ import org.springframework.web.bind.annotation.RestController;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import java.util.HashSet;
 | 
	
		
			
				|  |  |  import java.util.List;
 | 
	
		
			
				|  |  | +import java.util.Objects;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  @Slf4j
 | 
	
	
		
			
				|  | @@ -108,30 +109,33 @@ public class OpenStudentController extends BaseController {
 | 
	
		
			
				|  |  |                  if (one.getTenantId().equals(-1L)) {
 | 
	
		
			
				|  |  |                      throw new BizException("该手机号已经注册为平台学生");
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                if (one.getTenantId().equals(tenantId)) {
 | 
	
		
			
				|  |  | -                    //已经注册当前机构,请勿重复注册
 | 
	
		
			
				|  |  | -                    throw new BizException(5004, tenantInfo.getName());
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +//                if (one.getTenantId().equals(tenantId)) {
 | 
	
		
			
				|  |  | +//                    //已经注册当前机构,请勿重复注册
 | 
	
		
			
				|  |  | +//                    throw new BizException(5004, tenantInfo.getName());
 | 
	
		
			
				|  |  | +//                }
 | 
	
		
			
				|  |  |                  // 转到其他机构
 | 
	
		
			
				|  |  | -                if ((student.getUpdateTenant() == null ||
 | 
	
		
			
				|  |  | -                        !student.getUpdateTenant())) {
 | 
	
		
			
				|  |  | -                    throw new BizException(5004, "该手机号已经注册为其他平台学生");
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                // 退群
 | 
	
		
			
				|  |  | -                List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery()
 | 
	
		
			
				|  |  | -                        .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.STUDENT)
 | 
	
		
			
				|  |  | -                        .eq(ImGroupMember::getIsAdmin, false)
 | 
	
		
			
				|  |  | -                        .eq(ImGroupMember::getUserId, one.getUserId())
 | 
	
		
			
				|  |  | -                        .list();
 | 
	
		
			
				|  |  | -                List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId)
 | 
	
		
			
				|  |  | -                        .distinct().collect(Collectors.toList());
 | 
	
		
			
				|  |  | -                groupIdList.forEach(groupId -> {
 | 
	
		
			
				|  |  | -                    try {
 | 
	
		
			
				|  |  | -                        imGroupService.quit(groupId, one.getUserId(), ClientEnum.STUDENT);
 | 
	
		
			
				|  |  | -                    } catch (Exception e) {
 | 
	
		
			
				|  |  | -                        log.error("学生注册,切换机构退群失败:{}", e.getMessage());
 | 
	
		
			
				|  |  | +                if ((!Objects.equals(student.getTenantId(), one.getTenantId()))) {
 | 
	
		
			
				|  |  | +                    if(student.getUpdateTenant() == null || Boolean.FALSE.equals(student.getUpdateTenant())){
 | 
	
		
			
				|  |  | +                        TenantInfo oldTenant = tenantInfoService.getById(one.getTenantId());
 | 
	
		
			
				|  |  | +                        throw new BizException(5004, oldTenant.getName());
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        // 退群
 | 
	
		
			
				|  |  | +                        List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery()
 | 
	
		
			
				|  |  | +                                .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.STUDENT)
 | 
	
		
			
				|  |  | +                                .eq(ImGroupMember::getIsAdmin, false)
 | 
	
		
			
				|  |  | +                                .eq(ImGroupMember::getUserId, one.getUserId())
 | 
	
		
			
				|  |  | +                                .list();
 | 
	
		
			
				|  |  | +                        List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId)
 | 
	
		
			
				|  |  | +                                .distinct().collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                        groupIdList.forEach(groupId -> {
 | 
	
		
			
				|  |  | +                            try {
 | 
	
		
			
				|  |  | +                                imGroupService.quit(groupId, one.getUserId(), ClientEnum.STUDENT);
 | 
	
		
			
				|  |  | +                            } catch (Exception e) {
 | 
	
		
			
				|  |  | +                                log.error("学生注册,切换机构退群失败:{}", e.getMessage());
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        });
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  | -                });
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  // 更新头像
 | 
	
		
			
				|  |  |                  if (StringUtils.isEmpty(student.getAvatar())) {
 | 
	
	
		
			
				|  | @@ -151,9 +155,8 @@ public class OpenStudentController extends BaseController {
 | 
	
		
			
				|  |  |              student.setAvatar(avatar);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        StudentWrapper.Student studentInfo = JSON.parseObject(JSON.toJSONString(student), StudentWrapper.Student.class);
 | 
	
		
			
				|  |  | +        Student studentInfo = JSON.parseObject(JSON.toJSONString(student), Student.class);
 | 
	
		
			
				|  |  |          studentInfo.setTenantId(tenantInfo.getId());
 | 
	
		
			
				|  |  | -        studentService.save(studentInfo);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 加好友
 | 
	
		
			
				|  |  |          if (student.getId() == null) {
 | 
	
	
		
			
				|  | @@ -164,6 +167,7 @@ public class OpenStudentController extends BaseController {
 | 
	
		
			
				|  |  |              teacherList.forEach(next -> imUserFriendService.saveUserFriend(next.getUserId(),
 | 
	
		
			
				|  |  |                      new HashSet<>(ImmutableList.of(sysUser.getId()))));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        studentService.saveOrUpdate(studentInfo);
 | 
	
		
			
				|  |  |          return succeed();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |