Преглед изворни кода

Merge branch 'feature/1019-tenant' into test

yuanliang пре 1 година
родитељ
комит
5918c3cc00

+ 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();
 

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

@@ -490,17 +490,20 @@ 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())) {
-                errMsg.add(String.format("第%s行手机号重复", msgRowNo));
-            } else {
-                phoneMap.put(student.getPhone().trim(), msgRowNo);
+            if (StringUtils.isNotEmpty(student.getPhone())) {
+                if (phoneMap.containsKey(student.getPhone())) {
+                    errMsg.add(String.format("第%s行手机号重复", msgRowNo));
+                } else {
+                    phoneMap.put(student.getPhone(), msgRowNo);
+                }
             }
 
-            if (!subjectNames.contains(student.getSubjectName())) {
+            if (StringUtils.isNotEmpty(student.getSubjectName()) && !subjectNames.contains(student.getSubjectName())) {
                 errMsg.add(String.format("第%s行声部不支持", msgRowNo));
             }
 
-            if (StringUtils.isNotEmpty(student.getTenantGroupName()) && !groupNameIdMap.containsKey(student.getTenantGroupName())) {
+            if (StringUtils.isNotEmpty(student.getTenantGroupName()) &&
+                    !groupNameIdMap.containsKey(student.getTenantGroupName())) {
                 errMsg.add(String.format("第%s行小组不存在", msgRowNo));
             }
 
@@ -689,7 +692,8 @@ 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);
+            SysUser oldSysUser = sysUserMapper.getByUserId(studentInfo.getId());
+            com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = getOrCreateAccount(studentInfo, oldSysUser.getPassword());
             this.lambdaUpdate().set(Student::getSubjectId, studentInfo.getSubjectId())
                     .set(Student::getTenantId, studentInfo.getTenantId())
                     .set(Student::getUserId, sysUser.getId())
@@ -809,7 +813,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             avatar = sysConfigService.findConfigValue(SysConfigConstant.STUDENT_AVATAR);
             studentInfo.setAvatar(avatar);
         }
-        com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = getOrCreateAccount(studentInfo);
+        com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = getOrCreateAccount(studentInfo, null);
         Student student = new Student();
         student.setUserId(sysUser.getId());
         student.setTenantId(studentInfo.getTenantId());
@@ -858,7 +862,8 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         return true;
     }
 
-    private com.yonge.cooleshow.biz.dal.entity.SysUser getOrCreateAccount(StudentWrapper.Student studentInfo) {
+    private com.yonge.cooleshow.biz.dal.entity.SysUser getOrCreateAccount(StudentWrapper.Student studentInfo,
+                                                                          String password) {
         QueryWrapper<com.yonge.cooleshow.biz.dal.entity.SysUser> sysUserQueryWrapper = new QueryWrapper<>();
         sysUserQueryWrapper.lambda().eq(com.yonge.cooleshow.biz.dal.entity.SysUser::getPhone, studentInfo.getPhone());
         List<com.yonge.cooleshow.biz.dal.entity.SysUser> sysUsers = sysUserMapper.selectList(sysUserQueryWrapper);
@@ -894,10 +899,13 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             sysUser.setUserType("STUDENT");
             sysUser.setBirthdate(studentInfo.getBirthdate());
             sysUser.setUsername(studentInfo.getName());
-
-            String newPassword = MessageFormat.format("klx{0}", studentInfo.getPhone().substring(7));
-            String password = new BCryptPasswordEncoder().encode(newPassword);
             sysUser.setPassword(password);
+
+            if (StringUtils.isEmpty(password)) {
+                String newPassword = MessageFormat.format("klx{0}", studentInfo.getPhone().substring(7));
+                sysUser.setPassword(new BCryptPasswordEncoder().encode(newPassword));
+            }
+
             sysUserMapper.insert(sysUser);
         }
         return sysUser;

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

@@ -121,12 +121,12 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
         String s = subjectType.toString();
         String type = query.getType();
         String level = query.getLevel();
-        String keyword = query.getKeyword();
 
         List<Long> musicSheetIds = tenantAlbumMusicMapper.selectMusicSheetIds(albumId, s, type, level);
 
-        if (CollectionUtils.isEmpty(musicSheetIds)){
-            throw new BizException("该声部下没有相关曲目");
+        if (CollectionUtils.isEmpty(musicSheetIds)) {
+            page.setTotal(0);
+            return page.setRecords(new ArrayList<>());
         }
         TenantAlbumMusicWrapper.StudentMusicSheetQuery musicSheetQuery = new TenantAlbumMusicWrapper.StudentMusicSheetQuery();
         musicSheetQuery.setMusicSheetIds(musicSheetIds);

+ 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();