Bläddra i källkod

fix: 同步管理

caozixuan 3 år sedan
förälder
incheckning
a3bcb5a27f

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/PushUserTrackServiceImpl.java

@@ -166,7 +166,7 @@ public class PushUserTrackServiceImpl extends ServiceImpl<PushUserTrackMapper, P
                 cell.setName(currentUser.getRealName());
                 cell.setPassword(currentUser.getPassword());
                 cell.setRole(identify);
-                cell.setAccount(identify.getPrefix() + currentUser.getCode());
+                cell.setAccount(identify.getPrefix() + currentUser.getLoginName());
 
                 if (UserPushTrackEnum.BIND.equals(operate)) {
                     // 绑定

+ 31 - 25
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleServiceImpl.java

@@ -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);
                         }
                     }
                 }

+ 1 - 15
teachcloud-common/src/main/java/com/qmth/teachcloud/common/sync/StmmsUtils.java

@@ -97,8 +97,6 @@ public class StmmsUtils {
         map.put("password", validParam(password, null, false, "密码"));
         map.put("role", validParam(String.valueOf(roleValue), null, true, "类型:MARKER、SUBJECT_HEADER"));
         map.put("enable", validParam(enable, true, false, "是否启用"));
-//
-//
         String result = HttpKit.sendPost(postUrl, getHeaders(schoolId, userSaveUrl), map, null, null, null);
         JSONObject jsonObject = JSONObject.parseObject(result);
         if (jsonObject.containsKey("updateTime")) {
@@ -107,19 +105,7 @@ public class StmmsUtils {
             log.warn("用户推送(同步)失败");
             return false;
         }
-
-//        {
-//            // 模拟云阅卷返回结果 3/5的成功率
-//            int x = (int) (Math.random() * 10);
-//            if (x > 0) {
-//                // 失败
-//                log.warn("x = " + x + ",云阅卷用户同步失败 \n");
-//                return false;
-//            } else {
-//                return true;
-//            }
-//            return false;
-//        }
+//        return false;
     }
 
     /**