|
@@ -54,9 +54,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
@Autowired
|
|
|
private BasicCourseService basicCourseService;
|
|
|
|
|
|
- @Autowired
|
|
|
- private BasicUserCourseService basicUserCourseService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private SysConfigService sysConfigService;
|
|
|
|
|
@@ -78,6 +75,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
@Resource
|
|
|
SysOrgService sysOrgService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ SysUserService sysUserService;
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<UserDto> list(String loginName, String roleId, Boolean enable, String realName, Integer pageNumber, Integer pageSize) {
|
|
|
Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
@@ -215,8 +215,23 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
@Override
|
|
|
public List<BlurryUserDto> listUser(String courseCode, String param) {
|
|
|
Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
|
- Set<Long> orgIds = commonService.listSubOrgIds(null);
|
|
|
- return this.baseMapper.listUser(schoolId, RoleTypeEnum.QUESTION_TEACHER.name(), courseCode, param, orgIds);
|
|
|
+ QueryWrapper<BasicCourse> basicCourseQueryWrapper = new QueryWrapper<>();
|
|
|
+ basicCourseQueryWrapper.lambda().eq(BasicCourse::getSchoolId, schoolId)
|
|
|
+ .eq(BasicCourse::getCode, courseCode)
|
|
|
+ .eq(BasicCourse::getEnable, true);
|
|
|
+ BasicCourse basicCourse = basicCourseService.getOne(basicCourseQueryWrapper);
|
|
|
+ if (Objects.isNull(basicCourse)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("找不到此课程信息");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<SysOrg> sysOrgList = sysOrgService.findByConnectByRootOrgId(basicCourse.getTeachingRoomId());
|
|
|
+ Set<Long> orgIds = sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toSet());
|
|
|
+ List<SysUser> sysUserList = sysUserService.filterFlowPrivilege(schoolId, orgIds, false);
|
|
|
+ List<BlurryUserDto> blurryUserDtoList = new ArrayList<>();
|
|
|
+ for (SysUser sysUser : sysUserList) {
|
|
|
+ blurryUserDtoList.add(new BlurryUserDto(sysUser.getId(), sysUser.getRealName()));
|
|
|
+ }
|
|
|
+ return blurryUserDtoList;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -451,11 +466,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
*
|
|
|
* @param schoolId
|
|
|
* @param orgIds
|
|
|
+ * @param filter
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<SysUser> filterFlowPrivilege(Long schoolId, Set<Long> orgIds) {
|
|
|
- return sysUserMapper.filterFlowPrivilege(schoolId, orgIds);
|
|
|
+ public List<SysUser> filterFlowPrivilege(Long schoolId, Set<Long> orgIds, Boolean filter) {
|
|
|
+ return sysUserMapper.filterFlowPrivilege(schoolId, orgIds, filter);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -485,15 +501,15 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
String roleName = sysUserImportDto.getRoleName();
|
|
|
|
|
|
UserSaveParams userSaveParams = new UserSaveParams();
|
|
|
- Long orgId = this.analyzeOrgName(schoolId,orgName);
|
|
|
+ Long orgId = this.analyzeOrgName(schoolId, orgName);
|
|
|
List<Long> roleIdList = this.analyzeRoleName(schoolId, roleName);
|
|
|
|
|
|
- SysUser oldUser = this.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getLoginName,name).eq(SysUser::getSchoolId,schoolId));
|
|
|
+ SysUser oldUser = this.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getLoginName, name).eq(SysUser::getSchoolId, schoolId));
|
|
|
Long oldUserId = null;
|
|
|
- if (Objects.nonNull(oldUser)){
|
|
|
- oldUserId = oldUser.getId();
|
|
|
+ if (Objects.nonNull(oldUser)) {
|
|
|
+ oldUserId = oldUser.getId();
|
|
|
}
|
|
|
- if (SystemConstant.longNotNull(oldUserId)){
|
|
|
+ if (SystemConstant.longNotNull(oldUserId)) {
|
|
|
// 编辑
|
|
|
userSaveParams.setId(oldUserId);
|
|
|
}
|
|
@@ -505,7 +521,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
userSaveParamsList.add(userSaveParams);
|
|
|
}
|
|
|
}
|
|
|
- UserBatchDisposeResult userBatchDisposeResult = this.disposeUserInfoHelp(userSaveParamsList,sysUser);
|
|
|
+ UserBatchDisposeResult userBatchDisposeResult = this.disposeUserInfoHelp(userSaveParamsList, sysUser);
|
|
|
List<SysUser> sysUserList = userBatchDisposeResult.getUserList();
|
|
|
List<SysUserRole> sysUserRoleList = userBatchDisposeResult.getUserRoleList();
|
|
|
this.saveOrUpdateBatch(sysUserList);
|
|
@@ -515,20 +531,21 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
|
|
|
/**
|
|
|
* 批量处理用户信息帮助类
|
|
|
+ *
|
|
|
* @param userSaveParamsList 用户信息集合
|
|
|
- * @param master 创建人信息
|
|
|
+ * @param master 创建人信息
|
|
|
* @return 处理后的结果
|
|
|
*/
|
|
|
- private UserBatchDisposeResult disposeUserInfoHelp(List<UserSaveParams> userSaveParamsList,SysUser master) throws NoSuchAlgorithmException {
|
|
|
+ private UserBatchDisposeResult disposeUserInfoHelp(List<UserSaveParams> userSaveParamsList, SysUser master) throws NoSuchAlgorithmException {
|
|
|
Long schoolId = master.getSchoolId();
|
|
|
List<SysUser> userList = new ArrayList<>();
|
|
|
List<SysUserRole> sysUserRoleList = new ArrayList<>();
|
|
|
for (UserSaveParams userSaveParams : userSaveParamsList) {
|
|
|
String code = userSaveParams.getCode();
|
|
|
- SysUser check = this.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getSchoolId,schoolId).eq(SysUser::getEnable,true).eq(SysUser::getCode,code));
|
|
|
- if (Objects.nonNull(check)){
|
|
|
- if (!check.getId().equals(userSaveParams.getId())){
|
|
|
- throw ExceptionResultEnum.ERROR.exception("用户工号【" + code +"】重复");
|
|
|
+ SysUser check = this.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getSchoolId, schoolId).eq(SysUser::getEnable, true).eq(SysUser::getCode, code));
|
|
|
+ if (Objects.nonNull(check)) {
|
|
|
+ if (!check.getId().equals(userSaveParams.getId())) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("用户工号【" + code + "】重复");
|
|
|
}
|
|
|
}
|
|
|
Gson gson = new Gson();
|
|
@@ -540,7 +557,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
userList.add(userCell);
|
|
|
List<SysUserRole> sysUserRoleCell = commonService.disposeUserPrivilege(userCell, userSaveParams.getRoleIds());
|
|
|
sysUserRoleList.addAll(sysUserRoleCell);
|
|
|
- }else {//修改用户
|
|
|
+ } else {//修改用户
|
|
|
List<SysUserRole> oldRoleList = cacheService.userRolePrivilegeCache(userCell.getId());
|
|
|
List<Long> newRoleList = Arrays.asList(userSaveParams.getRoleIds());
|
|
|
Set<Long> dbUserRolesList = oldRoleList.stream().map(SysUserRole::getRoleId).collect(Collectors.toSet());
|
|
@@ -577,13 +594,14 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
|
|
|
/**
|
|
|
* 解析机构名称
|
|
|
+ *
|
|
|
* @param schoolId 学校id
|
|
|
- * @param orgName 结构名称
|
|
|
+ * @param orgName 结构名称
|
|
|
* @return 机构id
|
|
|
*/
|
|
|
- private Long analyzeOrgName(Long schoolId,String orgName){
|
|
|
- SysOrg sysOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getEnable,true).eq(SysOrg::getSchoolId,schoolId).eq(SysOrg::getName,orgName));
|
|
|
- if (Objects.isNull(sysOrg)){
|
|
|
+ private Long analyzeOrgName(Long schoolId, String orgName) {
|
|
|
+ SysOrg sysOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getEnable, true).eq(SysOrg::getSchoolId, schoolId).eq(SysOrg::getName, orgName));
|
|
|
+ if (Objects.isNull(sysOrg)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("系统中不存在excel导入的机构【" + orgName + "】");
|
|
|
}
|
|
|
return sysOrg.getId();
|
|
@@ -591,19 +609,20 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
|
|
|
/**
|
|
|
* 根据角色名称获取角色id集合
|
|
|
+ *
|
|
|
* @param schoolId 学校id
|
|
|
* @param roleName 角色名称组
|
|
|
* @return 角色集合
|
|
|
*/
|
|
|
- private List<Long> analyzeRoleName(Long schoolId, String roleName){
|
|
|
+ private List<Long> analyzeRoleName(Long schoolId, String roleName) {
|
|
|
List<Long> roleIdList = new ArrayList<>();
|
|
|
String[] arr = roleName.split(",");
|
|
|
for (String cell : arr) {
|
|
|
SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().lambda()
|
|
|
- .eq(SysRole::getEnable,true)
|
|
|
- .eq(SysRole::getName,cell)
|
|
|
- .eq(SysRole::getSchoolId,schoolId));
|
|
|
- if (Objects.isNull(sysRole)){
|
|
|
+ .eq(SysRole::getEnable, true)
|
|
|
+ .eq(SysRole::getName, cell)
|
|
|
+ .eq(SysRole::getSchoolId, schoolId));
|
|
|
+ if (Objects.isNull(sysRole)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("系统中不存在excel导入的角色【" + cell + "】");
|
|
|
}
|
|
|
roleIdList.add(sysRole.getId());
|