|  | @@ -16,9 +16,11 @@ import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
 |  |  import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.biz.dal.service.SmsCodeService;
 |  |  import com.yonge.cooleshow.biz.dal.service.SmsCodeService;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.biz.dal.service.StudentService;
 |  |  import com.yonge.cooleshow.biz.dal.service.StudentService;
 | 
											
												
													
														|  | 
 |  | +import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.biz.dal.service.TeacherService;
 |  |  import com.yonge.cooleshow.biz.dal.service.TeacherService;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 |  |  import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.biz.dal.wrapper.StudentWrapper;
 |  |  import com.yonge.cooleshow.biz.dal.wrapper.StudentWrapper;
 | 
											
												
													
														|  | 
 |  | +import com.yonge.cooleshow.common.constant.SysConfigConstant;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.common.controller.BaseController;
 |  |  import com.yonge.cooleshow.common.controller.BaseController;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.common.entity.HttpResponseResult;
 |  |  import com.yonge.cooleshow.common.entity.HttpResponseResult;
 | 
											
												
													
														|  |  import com.yonge.cooleshow.tenant.vo.StudentVo;
 |  |  import com.yonge.cooleshow.tenant.vo.StudentVo;
 | 
											
										
											
												
													
														|  | @@ -36,6 +38,7 @@ import org.springframework.web.bind.annotation.RestController;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  import java.util.HashSet;
 |  |  import java.util.HashSet;
 | 
											
												
													
														|  |  import java.util.List;
 |  |  import java.util.List;
 | 
											
												
													
														|  | 
 |  | +import java.util.Objects;
 | 
											
												
													
														|  |  import java.util.stream.Collectors;
 |  |  import java.util.stream.Collectors;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  @Slf4j
 |  |  @Slf4j
 | 
											
										
											
												
													
														|  | @@ -67,6 +70,9 @@ public class OpenStudentController extends BaseController {
 | 
											
												
													
														|  |      @Autowired
 |  |      @Autowired
 | 
											
												
													
														|  |      private ImGroupMemberService imGroupMemberService;
 |  |      private ImGroupMemberService imGroupMemberService;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    @Autowired
 | 
											
												
													
														|  | 
 |  | +    private SysConfigService sysConfigService;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |      @PostMapping("/save")
 |  |      @PostMapping("/save")
 | 
											
												
													
														|  |      @ApiOperation(value = "新增/修改", notes = "传入Student,换绑时按照返回错误码5004判断,是否需要换绑,updateTenant=true表示换绑")
 |  |      @ApiOperation(value = "新增/修改", notes = "传入Student,换绑时按照返回错误码5004判断,是否需要换绑,updateTenant=true表示换绑")
 | 
											
												
													
														|  |      public HttpResponseResult<Boolean> save(@Validated @RequestBody StudentVo.Student student) {
 |  |      public HttpResponseResult<Boolean> save(@Validated @RequestBody StudentVo.Student student) {
 | 
											
										
											
												
													
														|  | @@ -103,37 +109,54 @@ public class OpenStudentController extends BaseController {
 | 
											
												
													
														|  |                  if (one.getTenantId().equals(-1L)) {
 |  |                  if (one.getTenantId().equals(-1L)) {
 | 
											
												
													
														|  |                      throw new BizException("该手机号已经注册为平台学生");
 |  |                      throw new BizException("该手机号已经注册为平台学生");
 | 
											
												
													
														|  |                  }
 |  |                  }
 | 
											
												
													
														|  | -                if (one.getTenantId().equals(tenantId)) {
 |  | 
 | 
											
												
													
														|  | -                    throw new BizException("已经注册当前机构,请勿重复注册");
 |  | 
 | 
											
												
													
														|  | -                }
 |  | 
 | 
											
												
													
														|  | 
 |  | +//                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())) {
 | 
											
												
													
														|  | 
 |  | +                    student.setAvatar(one.getAvatar());
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |              student.setId(studentId);
 |  |              student.setId(studentId);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        // 配置头像
 | 
											
												
													
														|  | 
 |  | +        String avatar = student.getAvatar();
 | 
											
												
													
														|  | 
 |  | +        if (StringUtils.isEmpty(avatar)) {
 | 
											
												
													
														|  | 
 |  | +            if (StringUtils.isEmpty(avatar)) {
 | 
											
												
													
														|  | 
 |  | +                avatar = sysConfigService.findConfigValue(SysConfigConstant.TENANT_STUDENT_AVATAR);
 | 
											
												
													
														|  | 
 |  | +                student.setAvatar(avatar);
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +            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());
 |  |          studentInfo.setTenantId(tenantInfo.getId());
 | 
											
												
													
														|  | -        studentService.save(studentInfo);
 |  | 
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          // 加好友
 |  |          // 加好友
 | 
											
												
													
														|  |          if (student.getId() == null) {
 |  |          if (student.getId() == null) {
 | 
											
										
											
												
													
														|  | @@ -144,6 +167,7 @@ public class OpenStudentController extends BaseController {
 | 
											
												
													
														|  |              teacherList.forEach(next -> imUserFriendService.saveUserFriend(next.getUserId(),
 |  |              teacherList.forEach(next -> imUserFriendService.saveUserFriend(next.getUserId(),
 | 
											
												
													
														|  |                      new HashSet<>(ImmutableList.of(sysUser.getId()))));
 |  |                      new HashSet<>(ImmutableList.of(sysUser.getId()))));
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | 
 |  | +        studentService.saveOrUpdate(studentInfo);
 | 
											
												
													
														|  |          return succeed();
 |  |          return succeed();
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  }
 |  |  }
 |