瀏覽代碼

Merge branch 'feature/1019-tenant' into develop-new

yuanliang 1 年之前
父節點
當前提交
37f2cd8153

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenStudentController.java

@@ -88,7 +88,7 @@ public class OpenStudentController extends BaseController {
         Long tenantGroupId = student.getTenantGroupId();
         TenantGroup tenantGroup = tenantGroupMapper.selectById(tenantGroupId);
         if (tenantGroup == null) {
-            throw new com.microsvc.toolkit.common.webportal.exception.BizException("机构小组不存在");
+            throw new BizException("该链接已失效");
         }
         Long studentId = student.getId();
 

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

@@ -490,17 +490,17 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             int msgRowNo = rowIndex + 1;
             student.checkValid().forEach(err -> errMsg.add(String.format("第%s行%s", msgRowNo, err)));
 
-            if (phoneMap.containsKey(student.getPhone().trim())) {
+            if (phoneMap.containsKey(student.getPhone())) {
                 errMsg.add(String.format("第%s行手机号重复", msgRowNo));
             } else {
-                phoneMap.put(student.getPhone().trim(), msgRowNo);
+                phoneMap.put(student.getPhone(), msgRowNo);
             }
 
             if (!subjectNames.contains(student.getSubjectName())) {
                 errMsg.add(String.format("第%s行声部不支持", msgRowNo));
             }
 
-            if (StringUtils.isNotEmpty(student.getTenantGroupName()) && !groupNameIdMap.containsKey(student.getTenantGroupName())) {
+            if (!groupNameIdMap.containsKey(student.getTenantGroupName())) {
                 errMsg.add(String.format("第%s行小组不存在", msgRowNo));
             }
 
@@ -686,7 +686,9 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
 
 
         // 手机号码修改
+        boolean updatePhone = false;
         if (!student.getPhone().equals(studentInfo.getPhone())) {
+            updatePhone = true;
             com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = getOrCreateAccount(studentInfo);
             this.lambdaUpdate().set(Student::getSubjectId, studentInfo.getSubjectId())
                     .set(Student::getTenantId, studentInfo.getTenantId())
@@ -722,6 +724,10 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         } catch (Exception e) {
             log.warn("学生注册IM失败:" + e.getMessage());
         }
+        // 手机号修改,退出登录
+        if (updatePhone) {
+            sysUserFeignService.exitByPhone(ClientEnum.STUDENT.getCode(), student.getPhone());
+        }
 
         return true;
     }

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumCategoryServiceImpl.java

@@ -161,7 +161,8 @@ public class TenantAlbumCategoryServiceImpl extends ServiceImpl<TenantAlbumCateg
         if (names.size() != values.size()) {
             TenantAlbumCategory albumCategory = this.getById(tenantAlbumCategory.getId());
             ETenantAlbumCategoryType categoryType = albumCategory.getCategoryType();
-            throw new BizException(ETenantAlbumCategoryType.CATEGORY_TYPE.equals(categoryType) ? "类型不能有重复" : "级别不能有重复");
+            throw new BizException(ETenantAlbumCategoryType.CATEGORY_TYPE.equals(categoryType) ? "类型不允许有重复" :
+                    "级别不允许有重复");
         }
 
         // 校验是否存在引用删除

+ 13 - 9
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantGroupServiceImpl.java

@@ -223,7 +223,7 @@ public class TenantGroupServiceImpl extends ServiceImpl<TenantGroupMapper, Tenan
             }
         }
         // 修改小组负责人,调整群主,更换群主需要新的群主为该群成员
-        changeGroupOwner(tenantGroup, oldGroup, entity);
+        changeGroupOwner(oldGroup, entity);
         QueryWrapper<Student> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda()
                 .eq(Student::getTenantId, tenantGroup.getTenantId())
@@ -452,8 +452,7 @@ public class TenantGroupServiceImpl extends ServiceImpl<TenantGroupMapper, Tenan
         }
     }
 
-    private void changeGroupOwner(TenantGroupWrapper.TenantGroup tenantGroup, TenantGroup oldGroup,
-                                  TenantGroup newGroup) {
+    private void changeGroupOwner(TenantGroup oldGroup, TenantGroup newGroup) {
         if (newGroup.getAdminId() == null || newGroup.getAdminId().equals(oldGroup.getAdminId())) {
             return;
         }
@@ -463,9 +462,15 @@ public class TenantGroupServiceImpl extends ServiceImpl<TenantGroupMapper, Tenan
             // 群不存在
             return;
         }
+
+        if (!newGroup.getImGroupId().equals(oldGroup.getImGroupId())) {
+            // 旧的群被删除了,不需要交换身份
+            return;
+        }
+
         // 如果新负责人不在群,先加入群
         ImGroupMember groupMember = imGroupMemberService.lambdaQuery()
-                .eq(ImGroupMember::getGroupId, oldGroup.getImGroupId())
+                .eq(ImGroupMember::getGroupId, newGroup.getImGroupId())
                 .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.TEACHER)
                 .eq(ImGroupMember::getUserId, newGroup.getAdminId())
                 .eq(ImGroupMember::getIsAdmin, true)
@@ -477,15 +482,14 @@ public class TenantGroupServiceImpl extends ServiceImpl<TenantGroupMapper, Tenan
         try {
             SysUser newTeacher = sysUserService.getByUserId(newGroup.getAdminId());
             ImGroupMember imGroupMember = new ImGroupMember();
-            imGroupMember.setGroupId(oldGroup.getImGroupId());
+            imGroupMember.setGroupId(newGroup.getImGroupId());
             imGroupMember.setUserId(newGroup.getAdminId());
             imGroupMember.setRoleType(ImGroupMemberRoleType.TEACHER);
             imGroupMember.setAvatar(newTeacher.getAvatar());
             imGroupMember.setNickname(newTeacher.getUsername());
             imGroupMember.setIsAdmin(false);
-            imGroupMember.setRoleType(ImGroupMemberRoleType.TEACHER);
 
-            imGroupMemberService.join(Collections.singletonList(imGroupMember), oldGroup.getImGroupId());
+            imGroupMemberService.join(Collections.singletonList(imGroupMember), newGroup.getImGroupId());
         } catch (Exception e) {
             log.error("负责人加入群失败", e);
             throw new BizException("负责人加入群失败");
@@ -493,12 +497,12 @@ public class TenantGroupServiceImpl extends ServiceImpl<TenantGroupMapper, Tenan
 
         try {
             imGroupCoreService.changeGroupOwner(oldGroup.getImGroupId(),
-                    String.valueOf(tenantGroup.getAdminId()),
+                    String.valueOf(newGroup.getAdminId()),
                     String.valueOf(oldGroup.getAdminId()));
             imGroupCoreService.groupQuit(oldGroup.getAdminId(), ClientEnum.TEACHER.getCode(),
                     oldGroup.getImGroupId(), true);
             imGroupService.lambdaUpdate()
-                    .set(ImGroup::getCreateBy, tenantGroup.getAdminId())
+                    .set(ImGroup::getCreateBy, newGroup.getAdminId())
                     .eq(ImGroup::getId, imGroupId);
         } catch (Exception e) {
             log.error("更换群主失败", e);

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/StudentWrapper.java

@@ -182,6 +182,9 @@ public class StudentWrapper {
             } else if (!"男".equals(gender) && !"女".equals(gender)) {
                 errMsg.add("性别错误");
             }
+            if (StringUtils.isEmpty(tenantGroupName)) {
+                errMsg.add("小组为空");
+            }
             return errMsg;
         }
     }

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

@@ -97,7 +97,7 @@ public class OpenStudentController extends BaseController {
         Long tenantGroupId = student.getTenantGroupId();
         TenantGroup tenantGroup = tenantGroupMapper.selectById(tenantGroupId);
         if (tenantGroup == null) {
-            throw new com.microsvc.toolkit.common.webportal.exception.BizException("机构小组不存在");
+            throw new BizException("该链接已失效");
         }
         Long studentId = student.getId();