|
@@ -93,15 +93,23 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
|
|
|
@Autowired
|
|
|
private ClassGroupService classGroupService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SysUserService sysUserService;
|
|
|
+
|
|
|
/**
|
|
|
* 查询详情
|
|
|
* @param id 详情ID
|
|
|
* @return SchoolStaff
|
|
|
*/
|
|
|
@Override
|
|
|
- public SchoolStaff detail(Long id) {
|
|
|
-
|
|
|
- return baseMapper.selectById(id);
|
|
|
+ public SchoolStaffWrapper.SchoolStaff detail(Long id) {
|
|
|
+
|
|
|
+ IPage<SchoolStaffWrapper.SchoolStaff> page = selectPage(new Page<>(1, 1), SchoolStaffWrapper.SchoolStaffQuery.builder().staffId(id).build());
|
|
|
+
|
|
|
+ if (CollectionUtils.isEmpty(page.getRecords())) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ return page.getRecords().get(0);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -158,8 +166,15 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
|
|
|
}
|
|
|
|
|
|
// 验证码合法性校验
|
|
|
+ if (schoolStaff.getCheckSmsCode() == null || schoolStaff.getCheckSmsCode()) {
|
|
|
+ if(smsCodeService.verifyValidCode(schoolStaff.getMobile(), schoolStaff.getSmsCode())
|
|
|
+ && !debugMode ) {
|
|
|
+
|
|
|
+ throw new BizException("验证码错误");
|
|
|
+ }
|
|
|
+ }
|
|
|
if(smsCodeService.verifyValidCode(schoolStaff.getMobile(), schoolStaff.getSmsCode())
|
|
|
- && !debugMode) {
|
|
|
+ && !debugMode ) {
|
|
|
|
|
|
throw new BizException("验证码错误");
|
|
|
}
|
|
@@ -237,28 +252,9 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
|
|
|
|
|
|
// 创建学校im好友
|
|
|
imUserFriendService.refreshSchoolStaffFriend(schoolStaff.getSchoolId().intValue());
|
|
|
- if (schoolStaff.getUserType().equals(ESchoolStaffType.ORCHESTRA_LEADER)) {
|
|
|
-
|
|
|
- // 乐团领队添加到所有乐团群
|
|
|
- List<MusicGroup> musicGroups = cooperationOrganService.musicGroupPage(schoolStaff.getSchoolId().intValue());
|
|
|
- // 创建班级im好友
|
|
|
- for (MusicGroup musicGroup : musicGroups) {
|
|
|
- imUserFriendService.refreshGroupImUserFriend(musicGroup.getId(),null);
|
|
|
- }
|
|
|
-
|
|
|
- // id 集合
|
|
|
- List<String> musicGroupIds = musicGroups.stream().map(MusicGroup::getId).collect(Collectors.toList());
|
|
|
|
|
|
- // 班级群
|
|
|
- List<ClassGroup> classGroups = classGroupService.getClassGroupByMusicIds(musicGroupIds);
|
|
|
-
|
|
|
- // ID集合
|
|
|
- List<String> classGroupIds = classGroups.stream().map(o -> o.getId().toString()).collect(Collectors.toList());
|
|
|
- List<String> imGroupIds = new ArrayList<>();
|
|
|
- imGroupIds.addAll(classGroupIds);
|
|
|
- // imGroupIds.addAll(musicGroupIds);
|
|
|
-
|
|
|
- imGroupService.addImGroup(imGroupIds,user,schoolStaff.getUserType());
|
|
|
+ if (schoolStaff.getUserType().equals(ESchoolStaffType.ORCHESTRA_LEADER)) {
|
|
|
+ addMusicGroup(schoolStaff, user);
|
|
|
}
|
|
|
});
|
|
|
|
|
@@ -306,6 +302,75 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ private void addMusicGroup(SchoolStaffWrapper.SchoolStaff schoolStaff, SysUser user) {
|
|
|
+
|
|
|
+ CompletableFuture.runAsync( () -> {
|
|
|
+ // 乐团领队添加到所有班级群
|
|
|
+ List<MusicGroup> musicGroups = cooperationOrganService.musicGroupPage(schoolStaff.getSchoolId().intValue());
|
|
|
+ if (CollectionUtils.isEmpty(musicGroups)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 创建班级im好友
|
|
|
+ for (MusicGroup musicGroup : musicGroups) {
|
|
|
+ imUserFriendService.refreshGroupImUserFriend(musicGroup.getId(),null);
|
|
|
+ }
|
|
|
+
|
|
|
+ // id 集合
|
|
|
+ List<String> musicGroupIds = musicGroups.stream().map(MusicGroup::getId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 班级群
|
|
|
+ List<ClassGroup> classGroups = classGroupService.getClassGroupByMusicIds(musicGroupIds);
|
|
|
+
|
|
|
+ if (CollectionUtils.isEmpty(classGroups)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // ID集合
|
|
|
+ List<String> classGroupIds = classGroups.stream().map(o -> o.getId().toString()).collect(Collectors.toList());
|
|
|
+ List<String> imGroupIds = new ArrayList<>();
|
|
|
+ imGroupIds.addAll(classGroupIds);
|
|
|
+ // imGroupIds.addAll(musicGroupIds);
|
|
|
+
|
|
|
+ imGroupService.addImGroup(imGroupIds, user, schoolStaff.getUserType().getDescribe());
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void delMusicGroup(SchoolStaffWrapper.SchoolStaff schoolStaff, SysUser user) {
|
|
|
+
|
|
|
+ // 乐团领队添加到所有班级群
|
|
|
+ List<MusicGroup> musicGroups = cooperationOrganService.musicGroupPage(schoolStaff.getSchoolId().intValue());
|
|
|
+
|
|
|
+ if (CollectionUtils.isEmpty(musicGroups)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // id 集合
|
|
|
+ List<String> musicGroupIds = musicGroups.stream().map(MusicGroup::getId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 班级群
|
|
|
+ List<ClassGroup> classGroups = classGroupService.getClassGroupByMusicIds(musicGroupIds);
|
|
|
+
|
|
|
+ if (CollectionUtils.isEmpty(classGroups)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 解除im好友关联
|
|
|
+ imUserFriendDao.deleteByUserIdAndFriendId(schoolStaff.getUserId());
|
|
|
+
|
|
|
+ // 创建学校im好友
|
|
|
+ imUserFriendService.refreshSchoolStaffFriend(schoolStaff.getSchoolId().intValue());
|
|
|
+ // ID集合
|
|
|
+ List<String> classGroupIds = classGroups.stream().map(o -> o.getId().toString()).collect(Collectors.toList());
|
|
|
+ List<String> imGroupIds = new ArrayList<>();
|
|
|
+ imGroupIds.addAll(classGroupIds);
|
|
|
+ // imGroupIds.addAll(musicGroupIds);
|
|
|
+
|
|
|
+ imGroupService.quitGroup(imGroupIds, user.getId());
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 系统用户信息
|
|
|
* @param schoolStaff SchoolStaffWrapper.SchoolStaff
|
|
@@ -581,5 +646,86 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
|
|
|
.one();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新账号信息
|
|
|
+ *
|
|
|
+ * @param schoolStaffUpdate SchoolStaffWrapper.SchoolStaffUpdate
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void updateAccount(SchoolStaffWrapper.SchoolStaffUpdate schoolStaffUpdate) {
|
|
|
+
|
|
|
+ SchoolStaff schoolStaff = schoolStaffService.getById(schoolStaffUpdate.getStaffId());
|
|
|
+ if (schoolStaff == null) {
|
|
|
+ throw new BizException("用户信息不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 用户信息
|
|
|
+ SysUser sysUser = sysUserService.queryUserById(schoolStaff.getUserId().intValue());
|
|
|
+ if (sysUser == null) {
|
|
|
+ throw new BizException("用户信息不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检测手机号是否修改
|
|
|
+ if (StringUtils.isNotBlank(schoolStaffUpdate.getPhone()) && !sysUser.getPhone().equals(schoolStaffUpdate.getPhone())) {
|
|
|
+
|
|
|
+ // 检测手机号是否已被使用
|
|
|
+
|
|
|
+ // 用户帐号信息
|
|
|
+ SysUser user = teacherDao.getUserWithPhone(schoolStaffUpdate.getPhone());
|
|
|
+
|
|
|
+ if (Objects.nonNull(user)) {
|
|
|
+ throw new BizException("手机号已存在");
|
|
|
+ }
|
|
|
+ sysUser.setPhone(schoolStaffUpdate.getPhone());
|
|
|
+ teacherDao.updateUser(sysUser);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检测学校是否修改
|
|
|
+ if (schoolStaffUpdate.getCoopId() != null && !schoolStaff.getSchoolId().equals(schoolStaffUpdate.getCoopId())){
|
|
|
+ // 删除学校账户
|
|
|
+ del(schoolStaff.getId());
|
|
|
+ schoolStaff.setSchoolId(schoolStaffUpdate.getCoopId());
|
|
|
+
|
|
|
+ // 创建新学校账户
|
|
|
+ SchoolStaffWrapper.SchoolStaff staff = new SchoolStaffWrapper.SchoolStaff();
|
|
|
+ staff.setSchoolId(schoolStaffUpdate.getCoopId());
|
|
|
+ if (schoolStaffUpdate.getUserType() != null) {
|
|
|
+ staff.setUserType(schoolStaffUpdate.getUserType());
|
|
|
+ } else {
|
|
|
+ staff.setUserType(schoolStaff.getUserType());
|
|
|
+ }
|
|
|
+ staff.setUsername(sysUser.getUsername());
|
|
|
+ staff.setMobile(sysUser.getPhone());
|
|
|
+ staff.setCheckSmsCode(false);
|
|
|
+ add(staff);
|
|
|
+ } else
|
|
|
+ // 检测账号类型是否修改
|
|
|
+ if (schoolStaffUpdate.getUserType() != null && !schoolStaff.getUserType().equals(schoolStaffUpdate.getUserType())) {
|
|
|
+
|
|
|
+
|
|
|
+ if (schoolStaffUpdate.getUserType().equals(ESchoolStaffType.ORCHESTRA_LEADER)) {
|
|
|
+ addMusicGroup(SchoolStaffWrapper.SchoolStaff.builder()
|
|
|
+ .schoolId(schoolStaff.getSchoolId())
|
|
|
+ .userId(schoolStaff.getUserId())
|
|
|
+ .userType(schoolStaff.getUserType())
|
|
|
+ .build()
|
|
|
+ , sysUser);
|
|
|
+ } else if (schoolStaff.getUserType().equals(ESchoolStaffType.ORCHESTRA_LEADER)) {
|
|
|
+ delMusicGroup(SchoolStaffWrapper.SchoolStaff.builder()
|
|
|
+ .schoolId(schoolStaff.getSchoolId())
|
|
|
+ .userId(schoolStaff.getUserId())
|
|
|
+ .userType(schoolStaff.getUserType())
|
|
|
+ .build()
|
|
|
+ , sysUser);
|
|
|
+ }
|
|
|
+
|
|
|
+ schoolStaff.setUserType(schoolStaffUpdate.getUserType());
|
|
|
+ this.updateById(schoolStaff);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|