Переглянути джерело

1.更新学生修改机构时退群,删好友,加新好友

yuanliang 1 рік тому
батько
коміт
2ac45a81d3

+ 4 - 3
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/StudentController.java

@@ -208,15 +208,16 @@ public class StudentController extends BaseController {
         if (user == null || null == user.getId()) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-        if (user.getTenantId() == null || user.getTenantId() == -1L) {
-            return failed("非机构用户不允许更换机构");
-        }
 
         Student student = studentService.getById(user.getId());
         if (student == null) {
             return failed("未查询到学生的信息");
         }
 
+        if (student.getTenantId() == null || student.getTenantId() == -1L) {
+            return failed("非机构用户不允许更换机构");
+        }
+
         studentService.updateTenant(student, updateTenant.getTenantId());
         return succeed();
     }

+ 20 - 8
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java

@@ -498,10 +498,11 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void updateTenant(Student student, Long toTenantId) {
-        if (student.getTenantId().equals(toTenantId)) {
+        Long tenantId = student.getTenantId();
+        if (tenantId.equals(toTenantId)) {
             return;
         }
-        if (!student.getTenantId().equals(-1L)) {
+        if (!tenantId.equals(-1L)) {
             List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery()
                     .eq(ImGroupMember::getUserId, student.getUserId())
                     .eq(ImGroupMember::getRoleType, ClientEnum.STUDENT.getCode())
@@ -515,6 +516,19 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
                     log.error("退出群聊失败", e);
                 }
             }
+            // 删除机构好友关系
+            imUserFriendService.delFriendByTenantId(tenantId, student.getUserId());
+        }
+        if (toTenantId != null && toTenantId != -1L) {
+            // 加好友
+            QueryWrapper<Teacher> query = new QueryWrapper<>();
+            query.lambda().eq(Teacher::getTenantId, toTenantId);
+            List<Teacher> teachers = teacherDao.selectList(query);
+            for (Teacher teacher : teachers) {
+                HashSet<Long> studentIds = new HashSet<>();
+                studentIds.add(student.getUserId());
+                imUserFriendService.saveUserFriend(teacher.getUserId(), studentIds);
+            }
         }
         this.lambdaUpdate().set(Student::getTenantId, toTenantId)
                 .eq(Student::getUserId, student.getUserId())
@@ -526,12 +540,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
     public void addStudent(StudentWrapper.Student student) {
         // 更新头像
         if (StringUtils.isEmpty(student.getAvatar())) {
-            String avatar;
-            if (student.getGender().equals(1)) {
-                avatar = sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD_BOY);
-            } else {
-                avatar = sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD_GIRL);
-            }
+            String avatar = sysConfigService.findConfigValue(SysConfigConstant.STUDENT_AVATAR);
             student.setAvatar(avatar);
         }
         SysUser sysUser = employeeDao.querySysUserByPhone(student.getPhone());
@@ -550,6 +559,9 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             //插入
             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())) {

+ 2 - 0
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenStudentController.java

@@ -134,6 +134,8 @@ public class OpenStudentController extends BaseController {
                                 log.error("学生注册,切换机构退群失败:{}", e.getMessage());
                             }
                         });
+                        // 删除好友
+                        imUserFriendService.delFriendByTenantId(tenantId, one.getUserId());
                     }
                 }