|
@@ -278,6 +278,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|
|
*/
|
|
|
@Transactional
|
|
|
public void updateUserPushStats(List<Long> dbPrivilege, List<Long> upPrivilege, Long roleId, Long schoolId) {
|
|
|
+ SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
// 评卷员权限
|
|
|
SysPrivilege marker = sysPrivilegeService.list(new QueryWrapper<SysPrivilege>().lambda()
|
|
|
.eq(SysPrivilege::getUrl, SpecialPrivilegeEnum.MARKER.getId())).get(0);
|
|
@@ -303,43 +304,48 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|
|
SpecialPrivilegeEnum otherRoleSpecialPrivilegeEnum = sysUserService.findUserSpecialPrivilegeByRoleIdSet(roleIdSet);
|
|
|
|
|
|
// 更新轨迹数据
|
|
|
- PushUserTrack track = new PushUserTrack();
|
|
|
- track.setUserId(sysUser.getId());
|
|
|
- track.setSchoolId(sysUser.getSchoolId());
|
|
|
-
|
|
|
-
|
|
|
+ // 评卷员身份轨迹记录
|
|
|
+ PushUserTrack markerTrack = new PushUserTrack();
|
|
|
+ markerTrack.insertInfo(requestUser.getId());
|
|
|
+ markerTrack.setUserId(sysUser.getId());
|
|
|
+ markerTrack.setSchoolId(sysUser.getSchoolId());
|
|
|
+ markerTrack.setIdentify(SpecialPrivilegeEnum.MARKER);
|
|
|
+
|
|
|
+ // 科组长身份轨迹记录
|
|
|
+ PushUserTrack headerTrack = new PushUserTrack();
|
|
|
+ headerTrack.insertInfo(requestUser.getId());
|
|
|
+ headerTrack.setUserId(sysUser.getId());
|
|
|
+ headerTrack.setSchoolId(sysUser.getSchoolId());
|
|
|
+ headerTrack.setIdentify(SpecialPrivilegeEnum.SUBJECT_HEADER);
|
|
|
+
|
|
|
+ // 评卷员判断
|
|
|
if (dbPrivilege.contains(markerId) && !upPrivilege.contains(markerId)) {
|
|
|
// 该角色更新没收了评卷员权限
|
|
|
- if (!SpecialPrivilegeEnum.MARKER.equals(otherRoleSpecialPrivilegeEnum) && !SpecialPrivilegeEnum.COMPOSITE.equals(otherRoleSpecialPrivilegeEnum)){
|
|
|
+ if (!SpecialPrivilegeEnum.MARKER.equals(otherRoleSpecialPrivilegeEnum) && !SpecialPrivilegeEnum.COMPOSITE.equals(otherRoleSpecialPrivilegeEnum)) {
|
|
|
// 该用户其他的角色也不包含评卷员权限 -> 评卷员角色解绑
|
|
|
- track.setIdentify(SpecialPrivilegeEnum.MARKER);
|
|
|
- track.setOperate(UserPushTrackEnum.UNBIND);
|
|
|
- pushUserTrackService.save(track);
|
|
|
+ markerTrack.setOperate(UserPushTrackEnum.UNBIND);
|
|
|
+ pushUserTrackService.save(markerTrack);
|
|
|
+ }
|
|
|
+ } else if (!dbPrivilege.contains(markerId) && upPrivilege.contains(markerId)) {
|
|
|
+ // 更新新增了评卷员权限
|
|
|
+ if (enable) {
|
|
|
+ markerTrack.setOperate(UserPushTrackEnum.BIND);
|
|
|
+ pushUserTrackService.save(markerTrack);
|
|
|
}
|
|
|
}
|
|
|
+ // 科组长判断
|
|
|
if (dbPrivilege.contains(subjectHeaderId) && !upPrivilege.contains(subjectHeaderId)) {
|
|
|
// 该角色更新没收了科组长权限
|
|
|
if (!SpecialPrivilegeEnum.SUBJECT_HEADER.equals(otherRoleSpecialPrivilegeEnum) && !SpecialPrivilegeEnum.COMPOSITE.equals(otherRoleSpecialPrivilegeEnum)) {
|
|
|
// 该用户其他的角色也不包含科组长权限 -> 科组长角色解绑
|
|
|
- track.setIdentify(SpecialPrivilegeEnum.SUBJECT_HEADER);
|
|
|
- track.setOperate(UserPushTrackEnum.UNBIND);
|
|
|
- pushUserTrackService.save(track);
|
|
|
+ headerTrack.setOperate(UserPushTrackEnum.UNBIND);
|
|
|
+ pushUserTrackService.save(headerTrack);
|
|
|
}
|
|
|
- }
|
|
|
- if (!dbPrivilege.contains(markerId) && upPrivilege.contains(markerId)) {
|
|
|
- // 更新新增了评卷员权限
|
|
|
- if (enable) {
|
|
|
- track.setIdentify(SpecialPrivilegeEnum.MARKER);
|
|
|
- track.setOperate(UserPushTrackEnum.BIND);
|
|
|
- pushUserTrackService.save(track);
|
|
|
- }
|
|
|
- }
|
|
|
- if (!dbPrivilege.contains(subjectHeaderId) && upPrivilege.contains(subjectHeaderId)) {
|
|
|
+ } else if (!dbPrivilege.contains(subjectHeaderId) && upPrivilege.contains(subjectHeaderId)) {
|
|
|
// 更新新增了科组长权限
|
|
|
if (enable) {
|
|
|
- track.setIdentify(SpecialPrivilegeEnum.SUBJECT_HEADER);
|
|
|
- track.setOperate(UserPushTrackEnum.BIND);
|
|
|
- pushUserTrackService.save(track);
|
|
|
+ headerTrack.setOperate(UserPushTrackEnum.BIND);
|
|
|
+ pushUserTrackService.save(headerTrack);
|
|
|
}
|
|
|
}
|
|
|
}
|