|
@@ -8,10 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.Gson;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
import com.qmth.teachcloud.common.bean.auth.AuthBean;
|
|
import com.qmth.teachcloud.common.bean.auth.AuthBean;
|
|
-import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
|
|
|
|
-import com.qmth.teachcloud.common.bean.dto.LoginDto;
|
|
|
|
-import com.qmth.teachcloud.common.bean.dto.UserDto;
|
|
|
|
-import com.qmth.teachcloud.common.bean.dto.VerifyCodeCheckDto;
|
|
|
|
|
|
+import com.qmth.teachcloud.common.bean.dto.*;
|
|
import com.qmth.teachcloud.common.bean.dto.excel.DescribeImportDto;
|
|
import com.qmth.teachcloud.common.bean.dto.excel.DescribeImportDto;
|
|
import com.qmth.teachcloud.common.bean.dto.excel.SysUserImportDto;
|
|
import com.qmth.teachcloud.common.bean.dto.excel.SysUserImportDto;
|
|
import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
|
|
import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
|
|
@@ -24,6 +21,7 @@ import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.entity.*;
|
|
import com.qmth.teachcloud.common.entity.*;
|
|
import com.qmth.teachcloud.common.enums.*;
|
|
import com.qmth.teachcloud.common.enums.*;
|
|
import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
|
|
import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
|
|
|
|
+import com.qmth.teachcloud.common.enums.userPush.UserPushResultEnum;
|
|
import com.qmth.teachcloud.common.mapper.SysUserMapper;
|
|
import com.qmth.teachcloud.common.mapper.SysUserMapper;
|
|
import com.qmth.teachcloud.common.service.*;
|
|
import com.qmth.teachcloud.common.service.*;
|
|
import com.qmth.teachcloud.common.sync.CloudMarkingTaskUtils;
|
|
import com.qmth.teachcloud.common.sync.CloudMarkingTaskUtils;
|
|
@@ -809,42 +807,48 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public SpecialPrivilegeEnum findUserSpecialPrivilegeByRoleIdSet(Set<Long> roleIdSet) {
|
|
|
|
- SpecialPrivilegeEnum result = SpecialPrivilegeEnum.UNIDENTIFIED;
|
|
|
|
- //TODO 评卷员科组长权限暂时去掉
|
|
|
|
- // 查询该学校特殊权限id
|
|
|
|
-// // 评卷员权限
|
|
|
|
-// SysPrivilege marker = sysPrivilegeService.list(new QueryWrapper<SysPrivilege>().lambda()
|
|
|
|
-// .eq(SysPrivilege::getUrl, SpecialPrivilegeEnum.MARKER.getId())).get(0);
|
|
|
|
-// Long markerId = marker.getId();
|
|
|
|
-//
|
|
|
|
-// // 科组长权限
|
|
|
|
-// SysPrivilege subjectHeader = sysPrivilegeService.list(new QueryWrapper<SysPrivilege>().lambda()
|
|
|
|
-// .eq(SysPrivilege::getUrl, SpecialPrivilegeEnum.SUBJECT_HEADER.getId())).get(0);
|
|
|
|
-// Long subjectHeaderId = subjectHeader.getId();
|
|
|
|
-// if (roleIdSet.size() > 0) {
|
|
|
|
-// List<SysRolePrivilege> sysRolePrivilegeList = sysRolePrivilegeService.list(new QueryWrapper<SysRolePrivilege>().lambda().in(SysRolePrivilege::getRoleId, roleIdSet));
|
|
|
|
-// Set<Long> priIds = sysRolePrivilegeList.stream().map(SysRolePrivilege::getPrivilegeId).collect(Collectors.toSet());
|
|
|
|
-// if (priIds.size() > 0) {
|
|
|
|
-// if (priIds.contains(markerId) && !priIds.contains(subjectHeaderId)) {
|
|
|
|
-// // 评卷员权限
|
|
|
|
-// result = SpecialPrivilegeEnum.MARKER;
|
|
|
|
-// } else if (!priIds.contains(markerId) && priIds.contains(subjectHeaderId)) {
|
|
|
|
-// // 科组长权限
|
|
|
|
-// result = SpecialPrivilegeEnum.SUBJECT_HEADER;
|
|
|
|
-// } else if (priIds.contains(markerId) && priIds.contains(subjectHeaderId)) {
|
|
|
|
-// // 复合权限
|
|
|
|
-// result = SpecialPrivilegeEnum.COMPOSITE;
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
- return result;
|
|
|
|
- }
|
|
|
|
|
|
+ public SpecialPrivilegeEnum findUserSpecialPrivilegeByUserId(Long userId,Long schoolId) {
|
|
|
|
|
|
- @Override
|
|
|
|
- public SpecialPrivilegeEnum findUserSpecialPrivilegeByUserId(Long userId) {
|
|
|
|
- Set<Long> roleIdSet = new HashSet<>(sysRoleService.getUserRoles(userId));
|
|
|
|
- return this.findUserSpecialPrivilegeByRoleIdSet(roleIdSet);
|
|
|
|
|
|
+
|
|
|
|
+ // 知学知考评卷员-科组长角色
|
|
|
|
+ boolean markerRole = this.includeSysRole(userId,RoleTypeEnum.MARKER);
|
|
|
|
+ boolean leaderRole = this.includeSysRole(userId,RoleTypeEnum.MARKER_LEADER);
|
|
|
|
+
|
|
|
|
+ // 记录的云阅卷应该的状态(云阅卷自己不改)
|
|
|
|
+ boolean cloudMarker = true;
|
|
|
|
+ boolean cloudLeader = true;
|
|
|
|
+ List<CloudUserPushStatusDto> userPushDtoList = this.baseMapper.findCloudUserPushStatus(userId,schoolId);
|
|
|
|
+ if (userPushDtoList != null){
|
|
|
|
+ if (userPushDtoList.size() > 1){
|
|
|
|
+ String userName = this.getById(userId).getLoginName();
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("用户【" + userName + "】存在多条推送状态记录异常");
|
|
|
|
+ }
|
|
|
|
+ if (userPushDtoList.size() == 1){
|
|
|
|
+ CloudUserPushStatusDto pushStatusDto = userPushDtoList.get(0);
|
|
|
|
+ if (!UserPushResultEnum.BIND_SUCCESS.equals(UserPushResultEnum.valueOf(pushStatusDto.getMarkerStatus()))){
|
|
|
|
+ // 有推送记录但推送状态不是评卷员绑定成功
|
|
|
|
+ cloudMarker = false;
|
|
|
|
+ }
|
|
|
|
+ if (!UserPushResultEnum.BIND_SUCCESS.equals(UserPushResultEnum.valueOf(pushStatusDto.getMarkerLeaderStatus()))){
|
|
|
|
+ // 有推送记录但推送状态不是科组长绑定成功
|
|
|
|
+ cloudLeader = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ boolean marker = markerRole && cloudMarker;
|
|
|
|
+ boolean leader = leaderRole && cloudLeader;
|
|
|
|
+
|
|
|
|
+ SpecialPrivilegeEnum result;
|
|
|
|
+ if (marker && leader){
|
|
|
|
+ result = SpecialPrivilegeEnum.COMPOSITE;
|
|
|
|
+ }else if (marker){
|
|
|
|
+ result = SpecialPrivilegeEnum.MARKER;
|
|
|
|
+ }else if (leader){
|
|
|
|
+ result = SpecialPrivilegeEnum.SUBJECT_HEADER;
|
|
|
|
+ }else {
|
|
|
|
+ result = SpecialPrivilegeEnum.UNIDENTIFIED;
|
|
|
|
+ }
|
|
|
|
+ return result;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -947,6 +951,19 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
return sysUserMapper.selectList(queryWrapper);
|
|
return sysUserMapper.selectList(queryWrapper);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public boolean includeSysRole(Long userId, RoleTypeEnum defaultRole) {
|
|
|
|
+ SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().lambda().eq(SysRole::getType, defaultRole));
|
|
|
|
+ if (Objects.nonNull(sysRole)) {
|
|
|
|
+ SysUserRole sysUserRole = sysUserRoleService.getOne(new QueryWrapper<SysUserRole>()
|
|
|
|
+ .lambda()
|
|
|
|
+ .eq(SysUserRole::getUserId, userId)
|
|
|
|
+ .eq(SysUserRole::getRoleId, sysRole.getId()));
|
|
|
|
+ return Objects.nonNull(sysUserRole);
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 批量处理用户信息帮助类
|
|
* 批量处理用户信息帮助类
|
|
*
|
|
*
|