|
@@ -22,6 +22,8 @@ import com.yonge.cooleshow.biz.dal.dto.search.QueryMyFollowSearch;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.*;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.ImGroupType;
|
|
|
import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
|
|
|
import com.yonge.cooleshow.biz.dal.service.ImGroupService;
|
|
|
import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumMapper;
|
|
@@ -290,6 +292,9 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
|
|
|
if (null == studentVo) {
|
|
|
return HttpResponseResult.failed("未找到用户信息");
|
|
|
}
|
|
|
+ if (studentVo.getTenantId() != null && studentVo.getTenantId() > 0) {
|
|
|
+ throw new BizException("不可邀请机构学生");
|
|
|
+ }
|
|
|
TeacherVo detail = teacherDao.detail(userId);
|
|
|
if (null != detail) {
|
|
|
//身份证号、手机号脱敏
|
|
@@ -527,21 +532,30 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
|
|
|
return;
|
|
|
}
|
|
|
if (!tenantId.equals(-1L)) {
|
|
|
+ // 退群
|
|
|
List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery()
|
|
|
+ .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.STUDENT)
|
|
|
+ .eq(ImGroupMember::getIsAdmin, false)
|
|
|
.eq(ImGroupMember::getUserId, student.getUserId())
|
|
|
- .eq(ImGroupMember::getRoleType, ClientEnum.STUDENT.getCode())
|
|
|
- .eq(ImGroupMember::getIsAdmin, false).list();
|
|
|
- List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId).distinct()
|
|
|
- .collect(Collectors.toList());
|
|
|
- for (String groupId : groupIdList) {
|
|
|
- try {
|
|
|
- imGroupService.quit(groupId, student.getUserId(), ClientEnum.STUDENT, true);
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("退出群聊失败", e);
|
|
|
+ .list();
|
|
|
+ List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId)
|
|
|
+ .distinct().collect(Collectors.toList());
|
|
|
+ if (!groupIdList.isEmpty()) {
|
|
|
+ List<String> orgGroupIdList = imGroupService.listByIds(groupIdList).stream()
|
|
|
+ .filter(next -> ImGroupType.ORG.equals(next.getType())).map(ImGroup::getId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ for (String groupId : orgGroupIdList) {
|
|
|
+ try {
|
|
|
+ imGroupService.quit(groupId, student.getUserId(), ClientEnum.STUDENT,true);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("学生注册,切换机构退群失败:{}", e.getMessage());
|
|
|
+ throw new BizException("退群失败");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- // 删除机构好友关系
|
|
|
- imUserFriendService.delFriendByTenantId(tenantId, student.getUserId(),ClientEnum.STUDENT.getCode());
|
|
|
+// 删除好友
|
|
|
+ imUserFriendService.delTeacherFriendByTenantId(student.getTenantId(), student.getUserId(),
|
|
|
+ ClientEnum.STUDENT.getCode());
|
|
|
}
|
|
|
if (toTenantId != null && toTenantId != -1L) {
|
|
|
// 加好友
|
|
@@ -559,51 +573,41 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
|
|
|
.update();
|
|
|
}
|
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- @Override
|
|
|
- public void addStudent(StudentWrapper.Student student) {
|
|
|
- // 更新头像
|
|
|
- if (StringUtils.isEmpty(student.getAvatar())) {
|
|
|
- String avatar = sysConfigService.findConfigValue(SysConfigConstant.STUDENT_AVATAR);
|
|
|
- student.setAvatar(avatar);
|
|
|
- }
|
|
|
- SysUser sysUser = employeeDao.querySysUserByPhone(student.getPhone());
|
|
|
- if (sysUser == null) {
|
|
|
- sysUser = new SysUser();
|
|
|
- sysUser.setUserType(ClientEnum.STUDENT.getCode());
|
|
|
- sysUser.setGender(student.getGender());
|
|
|
- //设置默认头像
|
|
|
- sysUser.setAvatar(student.getAvatar());
|
|
|
-
|
|
|
- sysUser.setUsername(student.getName());
|
|
|
- sysUser.setPhone(student.getPhone());
|
|
|
- //初始密码,手机号后6位
|
|
|
- String password = "klx" + sysUser.getPhone().substring(sysUser.getPhone().length() - 4);
|
|
|
- sysUser.setPassword(new BCryptPasswordEncoder().encode(password));
|
|
|
- //插入
|
|
|
- employeeDao.insertSysUser(sysUser);
|
|
|
- } else {
|
|
|
- if(StringUtils.isNotEmpty(sysUser.getUserType()) && sysUser.getUserType().contains(ClientEnum.STUDENT.getCode())){
|
|
|
- throw new BizException("手机号已经注册学生账号");
|
|
|
- }
|
|
|
- if (StringUtil.isEmpty(sysUser.getUserType())) {
|
|
|
- sysUser.setUserType(ClientEnum.STUDENT.getCode());
|
|
|
- } else if (!sysUser.getUserType().contains(ClientEnum.STUDENT.getCode())) {
|
|
|
- sysUser.setUserType(sysUser.getUserType() + "," + ClientEnum.STUDENT.getCode());
|
|
|
- }
|
|
|
- sysUser.setGender(student.getGender());
|
|
|
- employeeDao.updateSysUser(sysUser);
|
|
|
- }
|
|
|
-
|
|
|
- student.setId(sysUser.getId());
|
|
|
- this.save(student);
|
|
|
- }
|
|
|
-
|
|
|
private Boolean updateStudent(StudentWrapper.Student studentInfo) {
|
|
|
StudentVo student = detail(studentInfo.getId());
|
|
|
if (student == null) {
|
|
|
throw new BizException("学生信息不存在");
|
|
|
}
|
|
|
+ // 是否有修改机构
|
|
|
+ Long newTenantId = studentInfo.getTenantId();
|
|
|
+ if(newTenantId != null && !newTenantId.equals(student.getTenantId()) && student.getTenantId() != -1L){
|
|
|
+ // 退群
|
|
|
+ List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery()
|
|
|
+ .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.STUDENT)
|
|
|
+ .eq(ImGroupMember::getIsAdmin, false)
|
|
|
+ .eq(ImGroupMember::getUserId, student.getUserId())
|
|
|
+ .list();
|
|
|
+ List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId)
|
|
|
+ .distinct().collect(Collectors.toList());
|
|
|
+ if (!groupIdList.isEmpty()) {
|
|
|
+ List<String> orgGroupIdList = imGroupService.listByIds(groupIdList).stream()
|
|
|
+ .filter(next -> ImGroupType.ORG.equals(next.getType())).map(ImGroup::getId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ for (String groupId : orgGroupIdList) {
|
|
|
+ try {
|
|
|
+ imGroupService.quit(groupId, student.getUserId(), ClientEnum.STUDENT,true);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("学生注册,切换机构退群失败:{}", e.getMessage());
|
|
|
+ throw new BizException("退群失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+// 删除好友
|
|
|
+ imUserFriendService.delTeacherFriendByTenantId(student.getTenantId(), student.getUserId(),
|
|
|
+ ClientEnum.STUDENT.getCode());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
// 手机号码修改
|
|
|
if (!student.getPhone().equals(studentInfo.getPhone())) {
|
|
|
com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = getOrCreateAccount(studentInfo);
|