Prechádzať zdrojové kódy

用户同步推送改动

caozixuan 2 rokov pred
rodič
commit
07308b04d4
41 zmenil súbory, kde vykonal 361 pridanie a 1655 odobranie
  1. 79 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/CloudUserPushStatus.java
  2. 12 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/CloudUserPushStatusMapper.java
  3. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/CloudUserPushService.java
  4. 44 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/CloudUserPushStatusService.java
  5. 29 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TBSyncTaskService.java
  6. 33 35
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CloudUserPushServiceImpl.java
  7. 77 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CloudUserPushStatusServiceImpl.java
  8. 64 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBSyncTaskServiceImpl.java
  9. 1 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncSysUserDataImportService.java
  10. 0 72
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncUserPushService.java
  11. 0 8
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/PushLogicService.java
  12. 0 20
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/PushLogicServiceImpl.java
  13. 4 0
      distributed-print-business/src/main/resources/mapper/CloudUserPushStatusMapper.xml
  14. 5 18
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysUserController.java
  15. 0 7
      distributed-print/src/test/java/com/qmth/distributed/print/SyncHelpTest.java
  16. 0 166
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/TBSyncTaskDto.java
  17. 0 128
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/PushUserError.java
  18. 0 75
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/PushUserTrack.java
  19. 0 38
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysUser.java
  20. 0 48
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/CloudUserPushOperateMapper.java
  21. 0 16
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/PushUserErrorMapper.java
  22. 0 16
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/PushUserTrackMapper.java
  23. 0 49
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/CloudUserPushOperateService.java
  24. 0 16
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/PushUserErrorService.java
  25. 0 41
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/PushUserTrackService.java
  26. 0 16
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysUserService.java
  27. 0 115
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/CloudUserPushOperateServiceImpl.java
  28. 0 20
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/PushUserErrorServiceImpl.java
  29. 0 208
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/PushUserTrackServiceImpl.java
  30. 3 120
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleServiceImpl.java
  31. 2 137
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java
  32. 0 151
      teachcloud-common/src/main/resources/mapper/CloudUserPushOperateMapper.xml
  33. 0 5
      teachcloud-common/src/main/resources/mapper/PushUserErrorMapper.xml
  34. 0 5
      teachcloud-common/src/main/resources/mapper/PushUserTrackMapper.xml
  35. 4 2
      teachcloud-common/src/main/resources/mapper/SysUserMapper.xml
  36. 1 9
      teachcloud-task/src/main/java/com/qmth/teachcloud/task/enums/JobEnum.java
  37. 0 31
      teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/TimedSyncUserNeedPushAgainJob.java
  38. 0 31
      teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/TimedSyncUserPushErrorJob.java
  39. 0 4
      teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/service/JobService.java
  40. 2 24
      teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/service/impl/JobServiceImpl.java
  41. 0 16
      teachcloud-task/src/main/java/com/qmth/teachcloud/task/start/StartRunning.java

+ 79 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/CloudUserPushStatus.java

@@ -0,0 +1,79 @@
+package com.qmth.distributed.print.business.entity;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.base.BaseEntity;
+import com.qmth.teachcloud.common.enums.userPush.SyncStatusEnum;
+import com.qmth.teachcloud.common.enums.userPush.UserPushResultEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 云阅卷用户推送状态表
+ * @Author: CaoZixuan
+ * @Date: 2022-08-08
+ */
+@ApiModel(value="CloudUserPushStatus对象", description="云阅卷用户推送状态表")
+public class CloudUserPushStatus extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "学校id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long schoolId;
+
+    @ApiModelProperty(value = "用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty(value = "评卷员推送状态")
+    private UserPushResultEnum markerStatus;
+
+    @ApiModelProperty(value = "科组长推送状态")
+    private UserPushResultEnum markerLeaderStatus;
+
+    @ApiModelProperty(value = "同步状态")
+    private SyncStatusEnum syncStatus;
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public UserPushResultEnum getMarkerStatus() {
+        return markerStatus;
+    }
+
+    public void setMarkerStatus(UserPushResultEnum markerStatus) {
+        this.markerStatus = markerStatus;
+    }
+
+    public UserPushResultEnum getMarkerLeaderStatus() {
+        return markerLeaderStatus;
+    }
+
+    public void setMarkerLeaderStatus(UserPushResultEnum markerLeaderStatus) {
+        this.markerLeaderStatus = markerLeaderStatus;
+    }
+
+    public SyncStatusEnum getSyncStatus() {
+        return syncStatus;
+    }
+
+    public void setSyncStatus(SyncStatusEnum syncStatus) {
+        this.syncStatus = syncStatus;
+    }
+}

+ 12 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/CloudUserPushStatusMapper.java

@@ -0,0 +1,12 @@
+package com.qmth.distributed.print.business.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmth.distributed.print.business.entity.CloudUserPushStatus;
+
+/**
+ * @Description: 云阅卷用户推送状态mapper
+ * @Author: CaoZixuan
+ * @Date: 2022-08-08
+ */
+public interface CloudUserPushStatusMapper extends BaseMapper<CloudUserPushStatus> {
+}

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/CloudUserPushService.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/CloudUserPushService.java

@@ -1,4 +1,4 @@
-package com.qmth.teachcloud.common.service;
+package com.qmth.distributed.print.business.service;
 
 import com.qmth.teachcloud.common.bean.params.UserPushParam;
 import com.qmth.teachcloud.common.entity.SysUser;

+ 44 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/CloudUserPushStatusService.java

@@ -0,0 +1,44 @@
+package com.qmth.distributed.print.business.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.distributed.print.business.entity.CloudUserPushStatus;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.userPush.SyncStatusEnum;
+import com.qmth.teachcloud.common.enums.userPush.UserPushResultEnum;
+
+import java.util.List;
+
+/**
+ * @Description: 云阅卷用户推送状态服务类
+ * @Author: CaoZixuan
+ * @Date: 2022-08-08
+ */
+public interface CloudUserPushStatusService extends IService<CloudUserPushStatus> {
+
+    /**
+     * 根据用户id查询用户推送状态记录
+     *
+     * @param userId   用户id
+     * @param schoolId 学校id
+     * @return 云阅卷推送状态
+     */
+    CloudUserPushStatus findRecordByUserId(Long userId, Long schoolId);
+
+    /**
+     * 更新用户推送记录
+     *
+     * @param userId           用户id
+     * @param markerPushResult 评卷员推送结果
+     * @param leaderPushResult 科组长推送结果
+     * @param syncStatus       推送最终状态
+     * @param requestUser      请求用户
+     */
+    void updateUserPushRecord(Long userId, UserPushResultEnum markerPushResult, UserPushResultEnum leaderPushResult, SyncStatusEnum syncStatus, SysUser requestUser);
+
+    /**
+     * 查找所有需要重新推送云阅卷的用户id集合
+     * @param schoolId 学校id
+     * @return 用户id集合
+     */
+    List<Long> findNeedPushAgainUserIdList(Long schoolId);
+}

+ 29 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TBSyncTaskService.java

@@ -3,12 +3,14 @@ package com.qmth.distributed.print.business.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.entity.TBSyncTask;
+import com.qmth.teachcloud.common.bean.params.UserPushParam;
 import com.qmth.teachcloud.common.bean.result.SyncListResult;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.PushTypeEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -41,6 +43,33 @@ public interface TBSyncTaskService extends IService<TBSyncTask> {
      */
     IPage<SyncListResult> query(Long schoolId, TaskStatusEnum status, PushTypeEnum type, TaskResultEnum result, int pageNumber, int pageSize);
 
+
+    /**
+     * 查询用户推送记录
+     *
+     * @param userId   用户id
+     * @param schoolId 学校id
+     * @return 记录
+     */
+    TBSyncTask findUserPushRecord(Long userId, Long schoolId);
+
+    /**
+     * 初始化用户推送任务
+     *
+     * @param userPushMap 用户map
+     * @param requestUser 请求用户
+     */
+    void initUserPushTasks(Map<Long, List<UserPushParam>> userPushMap, SysUser requestUser);
+
+    /**
+     * 用户推送任务进行中
+     *
+     * @param userId      用户id
+     * @param requestUser 请求用户
+     * @return 。。
+     */
+    TBSyncTask runningUserPushTask(Long userId, SysUser requestUser);
+
     /**
      * 失败任务-重新同步
      *

+ 33 - 35
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/CloudUserPushServiceImpl.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CloudUserPushServiceImpl.java

@@ -1,8 +1,10 @@
-package com.qmth.teachcloud.common.service.impl;
+package com.qmth.distributed.print.business.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.qmth.teachcloud.common.bean.dto.TBSyncTaskDto;
+import com.qmth.distributed.print.business.entity.TBSyncTask;
+import com.qmth.distributed.print.business.service.CloudUserPushService;
+import com.qmth.distributed.print.business.service.CloudUserPushStatusService;
+import com.qmth.distributed.print.business.service.TBSyncTaskService;
 import com.qmth.teachcloud.common.bean.params.UserPushParam;
 import com.qmth.teachcloud.common.bean.result.PushResult;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
@@ -16,7 +18,9 @@ import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
 import com.qmth.teachcloud.common.enums.userPush.SyncStatusEnum;
 import com.qmth.teachcloud.common.enums.userPush.UserPushResultEnum;
-import com.qmth.teachcloud.common.service.*;
+import com.qmth.teachcloud.common.service.SysRoleService;
+import com.qmth.teachcloud.common.service.SysUserRoleService;
+import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.sync.CloudMarkingTaskUtils;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -42,7 +46,9 @@ public class CloudUserPushServiceImpl implements CloudUserPushService {
     @Resource
     private CloudMarkingTaskUtils stmmsUtils;
     @Resource
-    private CloudUserPushOperateService cloudUserPushOperateService;
+    private TBSyncTaskService tbSyncTaskService;
+    @Resource
+    private CloudUserPushStatusService cloudUserPushStatusService;
 
     @Override
     public void pushCloudUser(Long userId, SysUser requestUser) throws IllegalAccessException {
@@ -55,15 +61,17 @@ public class CloudUserPushServiceImpl implements CloudUserPushService {
     public void pushCloudUser(List<Long> userIdList, SysUser requestUser) throws IllegalAccessException {
         Long schoolId = requestUser.getSchoolId();
         userIdList = userIdList.stream().distinct().collect(Collectors.toList());
-        List<SysUser> sysUserList = sysUserService.listByIds(userIdList);
-        // 构建用户推送map
-        Map<Long, List<UserPushParam>> userPushMap = this.buildUserPushMap(sysUserList, schoolId);
-
-        // 初始化推送任务
-        cloudUserPushOperateService.initUserPushTasks(userPushMap,requestUser);
-        // 执行推送异步任务
-        CloudUserPushService cloudUserPushService = SpringContextHolder.getBean(CloudUserPushService.class);
-        cloudUserPushService.asyncPushUser(userPushMap,requestUser);
+        if (userIdList.size() > 0){
+            List<SysUser> sysUserList = sysUserService.listByIds(userIdList);
+            // 构建用户推送map
+            Map<Long, List<UserPushParam>> userPushMap = this.buildUserPushMap(sysUserList, schoolId);
+
+            // 初始化推送任务
+            tbSyncTaskService.initUserPushTasks(userPushMap,requestUser);
+            // 执行推送异步任务
+            CloudUserPushService cloudUserPushService = SpringContextHolder.getBean(CloudUserPushService.class);
+            cloudUserPushService.asyncPushUser(userPushMap,requestUser);
+        }
     }
 
     @Override
@@ -79,15 +87,14 @@ public class CloudUserPushServiceImpl implements CloudUserPushService {
         return false;
     }
 
-
-    @Transactional(rollbackFor = Exception.class)
     @Async
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public void asyncPushUser(Map<Long, List<UserPushParam>> userPushMap, SysUser requestUser) {
         for (Long userId : userPushMap.keySet()) {
             String syncException = "";
             // 更新该用户推送任务进行中
-            TBSyncTaskDto tbSyncTaskDto = cloudUserPushOperateService.runningUserPushTask(userId, requestUser);
+            TBSyncTask tbSyncTask = tbSyncTaskService.runningUserPushTask(userId, requestUser);
             // 初始化数据
             UserPushResultEnum markerPush = null;
             UserPushResultEnum leaderPush = null;
@@ -134,27 +141,18 @@ public class CloudUserPushServiceImpl implements CloudUserPushService {
             } catch (Exception e) {
                 syncException = syncException + e.getMessage();
             } finally {
-                // 更新'sys_user'表
-                UpdateWrapper<SysUser> sysUserUpdateWrapper = new UpdateWrapper<>();
-                sysUserUpdateWrapper.lambda().eq(SysUser::getId, userId);
-                sysUserUpdateWrapper.lambda().set(SysUser::getSyncStatus, syncStatus);
-                if (Objects.nonNull(markerPush)) {
-                    sysUserUpdateWrapper.lambda().set(SysUser::getMarkerStatus, markerPush);
-                }
-                if (Objects.nonNull(leaderPush)) {
-                    sysUserUpdateWrapper.lambda().set(SysUser::getMarkerLeaderStatus, leaderPush);
-                }
-                sysUserService.update(sysUserUpdateWrapper);
+                // 更新或新增云阅卷用户推送表状态
+                cloudUserPushStatusService.updateUserPushRecord(userId,markerPush,leaderPush,syncStatus,requestUser);
                 // 更新't_b_sync_task'表
                 if (SystemConstant.strNotNull(syncException)) {
-                    tbSyncTaskDto.setResult(TaskResultEnum.ERROR.name());
-                    tbSyncTaskDto.setErrorMessage("用户【" + sysUserService.getById(userId).getLoginName() + "】推送失败\n" + syncException);
+                    tbSyncTask.setResult(TaskResultEnum.ERROR);
+                    tbSyncTask.setErrorMessage("用户【" + sysUserService.getById(userId).getLoginName() + "】推送失败\n" + syncException);
                 } else {
-                    tbSyncTaskDto.setResult(TaskResultEnum.SUCCESS.name());
+                    tbSyncTask.setResult(TaskResultEnum.SUCCESS);
                 }
-                tbSyncTaskDto.setStatus(TaskStatusEnum.FINISH.name());
-                tbSyncTaskDto.updateInfo(requestUser.getId());
-                cloudUserPushOperateService.saveOrUpdateTBSyncTask(tbSyncTaskDto);
+                tbSyncTask.setStatus(TaskStatusEnum.FINISH);
+                tbSyncTask.updateInfo(requestUser.getId());
+                tbSyncTaskService.saveOrUpdate(tbSyncTask);
             }
         }
     }
@@ -177,7 +175,7 @@ public class CloudUserPushServiceImpl implements CloudUserPushService {
 
             // 用户推送相关信息
             boolean enable = sysUser.getEnable();
-            SyncStatusEnum syncStatus = sysUser.getSyncStatus();
+            SyncStatusEnum syncStatus = cloudUserPushStatusService.findRecordByUserId(userId,schoolId).getSyncStatus();
             boolean isMarker = this.includeSysRole(userId, RoleTypeEnum.MARKER);
             boolean isLeader = this.includeSysRole(userId, RoleTypeEnum.MARKER_LEADER);
 

+ 77 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CloudUserPushStatusServiceImpl.java

@@ -0,0 +1,77 @@
+package com.qmth.distributed.print.business.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.distributed.print.business.entity.CloudUserPushStatus;
+import com.qmth.distributed.print.business.mapper.CloudUserPushStatusMapper;
+import com.qmth.distributed.print.business.service.CloudUserPushStatusService;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.userPush.SyncStatusEnum;
+import com.qmth.teachcloud.common.enums.userPush.UserPushResultEnum;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * @Description: 云阅卷用户推送服务实现类
+ * @Author: CaoZixuan
+ * @Date: 2022-08-08
+ */
+@Service
+public class CloudUserPushStatusServiceImpl extends ServiceImpl<CloudUserPushStatusMapper, CloudUserPushStatus> implements CloudUserPushStatusService {
+
+    @Override
+    public CloudUserPushStatus findRecordByUserId(Long userId, Long schoolId) {
+        List<CloudUserPushStatus> cloudUserPushStatusList = this.list(new QueryWrapper<CloudUserPushStatus>()
+                .lambda()
+                .eq(CloudUserPushStatus::getSchoolId, schoolId)
+                .eq(CloudUserPushStatus::getUserId, userId));
+
+        CloudUserPushStatus result = new CloudUserPushStatus();
+
+        if (cloudUserPushStatusList != null) {
+            if (cloudUserPushStatusList.size() > 1) {
+                throw ExceptionResultEnum.ERROR.exception("异常:用户id【" + userId + "】在云阅卷用户推送状态表中有多条数据");
+            } else if (cloudUserPushStatusList.size() == 1) {
+                result = cloudUserPushStatusList.get(0);
+            }
+        }
+        return result;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void updateUserPushRecord(Long userId, UserPushResultEnum markerPushResult, UserPushResultEnum leaderPushResult, SyncStatusEnum syncStatus, SysUser requestUser) {
+        Long schoolId = requestUser.getSchoolId();
+        // 云阅卷用户推送记录
+        CloudUserPushStatus db = this.findRecordByUserId(userId, schoolId);
+        CloudUserPushStatus cloudUserPushStatus = new CloudUserPushStatus();
+        cloudUserPushStatus.setSchoolId(schoolId);
+        cloudUserPushStatus.setUserId(userId);
+        cloudUserPushStatus.setMarkerStatus(markerPushResult);
+        cloudUserPushStatus.setMarkerLeaderStatus(leaderPushResult);
+        cloudUserPushStatus.setSyncStatus(syncStatus);
+        if (Objects.isNull(db)) {
+            // 新增
+            cloudUserPushStatus.insertInfo(requestUser.getId());
+        } else {
+            // 编辑
+            cloudUserPushStatus.setId(db.getId());
+            cloudUserPushStatus.updateInfo(requestUser.getId());
+        }
+        this.saveOrUpdate(cloudUserPushStatus);
+    }
+
+    @Override
+    public List<Long> findNeedPushAgainUserIdList(Long schoolId) {
+        return this.list(new QueryWrapper<CloudUserPushStatus>()
+                        .lambda()
+                        .eq(CloudUserPushStatus::getSchoolId, schoolId)
+                        .eq(CloudUserPushStatus::getSyncStatus, SyncStatusEnum.NEED_PUSH_AGAIN))
+                .stream().map(CloudUserPushStatus::getUserId).distinct().collect(Collectors.toList());
+    }
+}

+ 64 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBSyncTaskServiceImpl.java

@@ -10,6 +10,7 @@ import com.qmth.distributed.print.business.mapper.TBSyncTaskMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.execute.AsyncCloudMarkingTaskService;
 import com.qmth.distributed.print.business.templete.execute.AsyncTeachCloudReportService;
+import com.qmth.teachcloud.common.bean.params.UserPushParam;
 import com.qmth.teachcloud.common.bean.result.SyncListResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
@@ -17,7 +18,7 @@ import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.PushTypeEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
-import com.qmth.teachcloud.common.service.CloudUserPushService;
+import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
@@ -59,6 +60,9 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
     @Resource
     CloudUserPushService cloudUserPushService;
 
+    @Resource
+    SysUserService sysUserService;
+
     @Transactional
     @Override
     public TBSyncTask saveTask(Long schoolId, Long objectId, PushTypeEnum type) {
@@ -106,7 +110,7 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
                 .set(TBSyncTask::getThirdRelateId, thirdRelateId)
                 .set(TBSyncTask::getResult, result)
                 .set(TBSyncTask::getErrorMessage, errorMessage)
-                .set(TBSyncTask::getRemark,remark)
+                .set(TBSyncTask::getRemark, remark)
                 .eq(TBSyncTask::getId, id);
         this.update(tbSyncTaskUpdateWrapper);
     }
@@ -157,6 +161,63 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
         return page;
     }
 
+    @Override
+    public TBSyncTask findUserPushRecord(Long userId, Long schoolId) {
+        List<TBSyncTask> userPushList = this.list(new QueryWrapper<TBSyncTask>()
+                .lambda()
+                .eq(TBSyncTask::getSchoolId, schoolId)
+                .eq(TBSyncTask::getObjectId, userId)
+                .eq(TBSyncTask::getType, PushTypeEnum.USER_PUSH));
+        if (userPushList != null && userPushList.size() > 0) {
+            if (userPushList.size() > 1) {
+                throw ExceptionResultEnum.ERROR.exception("异常:用户【" + userId + "】拥有多条推送记录");
+            }
+            return userPushList.get(0);
+        } else {
+            return null;
+        }
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void initUserPushTasks(Map<Long, List<UserPushParam>> userPushMap, SysUser requestUser) {
+        Long schoolId = requestUser.getSchoolId();
+        for (Long userId : userPushMap.keySet()) {
+            TBSyncTask dbRecord = this.findUserPushRecord(userId, schoolId);
+            Long id;
+            if (Objects.nonNull(dbRecord)) {
+                id = dbRecord.getId();
+            } else {
+                id = SystemConstant.getDbUuid();
+            }
+            TBSyncTask tbSyncTask = new TBSyncTask();
+            tbSyncTask.setId(id);
+            tbSyncTask.setSchoolId(schoolId);
+            tbSyncTask.setType(PushTypeEnum.USER_PUSH);
+            tbSyncTask.setObjectId(userId);
+            tbSyncTask.setStatus(TaskStatusEnum.INIT);
+            tbSyncTask.setRemark(sysUserService.getById(userId).getLoginName());
+            tbSyncTask.setResult(null);
+            tbSyncTask.setCreateId(requestUser.getId());
+            tbSyncTask.setCreateTime(System.currentTimeMillis());
+            this.saveOrUpdate(tbSyncTask);
+        }
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public TBSyncTask runningUserPushTask(Long userId, SysUser requestUser) {
+        Long schoolId = requestUser.getSchoolId();
+        TBSyncTask tbSyncTask = this.findUserPushRecord(userId, schoolId);
+        if (Objects.isNull(tbSyncTask)) {
+            throw ExceptionResultEnum.ERROR.exception("用户推送表信息缺失");
+        }
+        tbSyncTask.setStatus(TaskStatusEnum.RUNNING);
+        tbSyncTask.updateInfo(requestUser.getId());
+        this.saveOrUpdate(tbSyncTask);
+        return tbSyncTask;
+    }
+
     @Override
     public void resync(Long id) throws IllegalAccessException {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
@@ -193,7 +254,7 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
                 asyncTeachCloudReportService.startCalc(gradeBatchService.getById(tbSyncTask.getObjectId()));
                 break;
             case USER_PUSH:
-                cloudUserPushService.pushCloudUser(tbSyncTask.getObjectId(),requestUser);
+                cloudUserPushService.pushCloudUser(tbSyncTask.getObjectId(), requestUser);
                 break;
             default:
                 break;

+ 1 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncSysUserDataImportService.java

@@ -5,15 +5,13 @@ import com.alibaba.fastjson.JSON;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.templete.importData.AsyncImportTaskTemplete;
 import com.qmth.distributed.print.business.templete.service.TaskLogicService;
-import com.qmth.teachcloud.common.bean.params.UserPushParam;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
-import com.qmth.teachcloud.common.service.CloudUserPushService;
-import com.qmth.teachcloud.common.service.SysUserService;
+import com.qmth.distributed.print.business.service.CloudUserPushService;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -22,7 +20,6 @@ import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.io.IOException;
 import java.io.InputStream;
 import java.text.MessageFormat;
 import java.util.Date;

+ 0 - 72
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncUserPushService.java

@@ -1,72 +0,0 @@
-package com.qmth.distributed.print.business.templete.execute;
-
-import cn.hutool.core.date.DateUtil;
-import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.entity.TBSyncTask;
-import com.qmth.distributed.print.business.service.TBSyncTaskService;
-import com.qmth.distributed.print.business.templete.push.AsyncPushTaskTemplate;
-import com.qmth.distributed.print.business.templete.service.PushLogicService;
-import com.qmth.distributed.print.business.templete.service.TaskLogicService;
-import com.qmth.teachcloud.common.contant.SpringContextHolder;
-import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.entity.TBTask;
-import com.qmth.teachcloud.common.enums.TaskResultEnum;
-import com.qmth.teachcloud.common.enums.TaskStatusEnum;
-import com.qmth.teachcloud.common.service.TBTaskService;
-import com.qmth.teachcloud.common.util.Result;
-import com.qmth.teachcloud.common.util.ResultUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Service;
-
-import java.text.MessageFormat;
-import java.util.Date;
-import java.util.Map;
-import java.util.StringJoiner;
-
-/**
- * @Description: 用户推送模板(异步任务)
- * @Author: CaoZixuan
- * @Date: 2021-10-31
- */
-@Service
-public class AsyncUserPushService extends AsyncPushTaskTemplate {
-
-    private final static Logger log = LoggerFactory.getLogger(AsyncSysUserDataImportService.class);
-
-    public static final String OBJ_TITLE = "用户信息";
-
-    @Override
-    public Result pushTask(Map<String, Object> map) throws Exception {
-        TBSyncTask tbSyncTask = (TBSyncTask) map.get(SystemConstant.TB_SYNC_TASK);
-
-
-        StringJoiner stringJoinerSummary = new StringJoiner("\n")
-                .add(MessageFormat.format("{0}{1}{2}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), BEGIN_TITLE, OBJ_TITLE));
-        tbSyncTask.setStatus(TaskStatusEnum.RUNNING);
-        TBSyncTaskService tbSyncTaskService = SpringContextHolder.getBean(TBSyncTaskService.class);
-        tbSyncTaskService.updateById(tbSyncTask);
-        try {
-            PushLogicService pushLogicService = SpringContextHolder.getBean(PushLogicService.class);
-
-            // 执行需要重新同步的用户同步数据
-            Map<String, Object> result = pushLogicService.executeUserPushLogic(map);
-            System.out.println(Integer.parseInt(String.valueOf(result.get("correct"))));
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}{4}{5}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), FINISH_TITLE, Integer.parseInt(String.valueOf(result.get("count"))),SUCCESS_TITLE,Integer.parseInt(String.valueOf(result.get("correct"))), FINISH_SIZE));
-            tbSyncTask.setResult(TaskResultEnum.SUCCESS);
-        }catch (Exception e){
-            log.error(SystemConstant.LOG_ERROR, e);
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), EXCEPTION_TITLE, EXCEPTION_DATA, e.getMessage()));
-//            tbTask.setResult(TaskResultEnum.ERROR);
-            if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
-            }
-        } finally {//生成txt文件
-            tbSyncTask.setSummary(stringJoinerSummary.toString());
-            super.createTxt(tbSyncTask);
-        }
-        return ResultUtil.ok(map);
-    }
-}

+ 0 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/PushLogicService.java

@@ -9,14 +9,6 @@ import java.util.Map;
  */
 public interface PushLogicService {
 
-    /**
-     * 用户推送异步任务处理方法
-     *
-     * @param map 任务源
-     * @return 结果
-     */
-    Map<String, Object> executeUserPushLogic(Map<String, Object> map) throws IllegalAccessException;
-
     /**
      * 成绩查询推送异步任务处理方法
      *

+ 0 - 20
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/PushLogicServiceImpl.java

@@ -8,7 +8,6 @@ import com.qmth.distributed.print.business.service.ExamStudentService;
 import com.qmth.distributed.print.business.service.TSyncExamStudentScoreService;
 import com.qmth.distributed.print.business.service.TeachClazzService;
 import com.qmth.distributed.print.business.templete.service.PushLogicService;
-import com.qmth.teachcloud.common.bean.result.SyncCountResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicClazz;
 import com.qmth.teachcloud.common.entity.BasicMajor;
@@ -16,8 +15,6 @@ import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicClazzService;
 import com.qmth.teachcloud.common.service.BasicMajorService;
-import com.qmth.teachcloud.common.service.BasicStudentService;
-import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.sync.CloudMarkingTaskUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -41,9 +38,6 @@ import java.util.concurrent.atomic.AtomicInteger;
 public class PushLogicServiceImpl implements PushLogicService {
     private final static Logger log = LoggerFactory.getLogger(PushLogicServiceImpl.class);
 
-    @Resource
-    private SysUserService sysUserService;
-
     @Resource
     CloudMarkingTaskUtils stmmsUtils;
 
@@ -56,26 +50,12 @@ public class PushLogicServiceImpl implements PushLogicService {
     @Resource
     TSyncExamStudentScoreService tSyncExamStudentScoreService;
 
-    @Resource
-    BasicStudentService basicStudentService;
-
     @Resource
     ExamStudentService examStudentService;
 
     @Resource
     BasicMajorService basicMajorService;
 
-    @Override
-    public Map<String, Object> executeUserPushLogic(Map<String, Object> map) throws IllegalAccessException {
-        int correct = 0;
-        int count = 0;
-        SysUser sysUser = (SysUser) map.get(SystemConstant.SYS_USER);
-        SyncCountResult syncCountResult = sysUserService.needPushAgainOperate(sysUser);
-        map.put("correct", syncCountResult.getCorrectCount());
-        map.put("count", syncCountResult.getTotalCount());
-        return map;
-    }
-
     /**
      * 成绩查询推送异步任务处理方法
      *

+ 4 - 0
distributed-print-business/src/main/resources/mapper/CloudUserPushStatusMapper.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.qmth.distributed.print.business.mapper.CloudUserPushStatusMapper">
+</mapper>

+ 5 - 18
distributed-print/src/main/java/com/qmth/distributed/print/api/SysUserController.java

@@ -1,23 +1,18 @@
 package com.qmth.distributed.print.api;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.result.EditResult;
-import com.qmth.distributed.print.business.entity.TBSyncTask;
+import com.qmth.distributed.print.business.service.CloudUserPushService;
+import com.qmth.distributed.print.business.service.CloudUserPushStatusService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.templete.execute.AsyncSysUserDataImportService;
-import com.qmth.distributed.print.business.templete.execute.AsyncUserPushService;
-import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.bean.params.UserSaveParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBTask;
-import com.qmth.teachcloud.common.enums.PushTypeEnum;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
-import com.qmth.teachcloud.common.enums.userPush.SyncStatusEnum;
-import com.qmth.teachcloud.common.service.CloudUserPushService;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -39,7 +34,6 @@ import java.security.NoSuchAlgorithmException;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -64,9 +58,9 @@ public class SysUserController {
     @Resource
     private AsyncSysUserDataImportService asyncSysUserDataImportService;
     @Resource
-    private AsyncUserPushService asyncUserPushService;
-    @Resource
     private CloudUserPushService cloudUserPushService;
+    @Resource
+    private CloudUserPushStatusService cloudUserPushStatusService;
 
     /**
      * 查询
@@ -223,14 +217,7 @@ public class SysUserController {
     public Result sysUserPush() throws Exception {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Long schoolId = sysUser.getSchoolId();
-        List<Long> userIdList = sysUserService.list(new QueryWrapper<SysUser>()
-                        .lambda()
-                        .eq(SysUser::getSchoolId, schoolId)
-                        .eq(SysUser::getSyncStatus, SyncStatusEnum.NEED_PUSH_AGAIN))
-                .stream()
-                .map(BaseEntity::getId)
-                .distinct()
-                .collect(Collectors.toList());
+        List<Long> userIdList = cloudUserPushStatusService.findNeedPushAgainUserIdList(schoolId);
         cloudUserPushService.pushCloudUser(userIdList, sysUser);
         return ResultUtil.ok();
     }

+ 0 - 7
distributed-print/src/test/java/com/qmth/distributed/print/SyncHelpTest.java

@@ -22,8 +22,6 @@ public class SyncHelpTest {
 
     @Resource
     private CloudMarkingTaskUtils stmmsUtils;
-    @Resource
-    private SysUserService sysUserService;
 
     @Test
     public void testSyncUser() throws IllegalAccessException {
@@ -43,9 +41,4 @@ public class SyncHelpTest {
             stmmsUtils.syncUser(userPushParam);
         }
     }
-
-    @Test
-    public void testAutoPushUserErrorData() throws IllegalAccessException {
-        sysUserService.autoPushUserErrorData();
-    }
 }

+ 0 - 166
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/TBSyncTaskDto.java

@@ -1,166 +0,0 @@
-package com.qmth.teachcloud.common.bean.dto;
-
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.qmth.teachcloud.common.base.BaseEntity;
-import io.swagger.annotations.ApiModelProperty;
-
-import java.io.Serializable;
-
-/**
- * @Description: 推送任务临时对象
- * @Author: CaoZixuan
- * @Date: 2022-05-06
- */
-public class TBSyncTaskDto extends BaseEntity implements Serializable {
-    private static final long serialVersionUID = 1L;
-    @ApiModelProperty(value = "学校id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    @TableField("school_id")
-    private Long schoolId;
-
-    @ApiModelProperty(value = "机构id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    @TableField(value = "org_id", updateStrategy = FieldStrategy.IGNORED)
-    private Long orgId;
-
-    @ApiModelProperty(value = "推送类型,USER_PUSH:用户推送")
-    @TableField(value = "type")
-    private String type;
-
-    @ApiModelProperty(value = "第三方关联id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    @TableField("third_relate_id")
-    private Long thirdRelateId;
-
-    @JsonSerialize(using = ToStringSerializer.class)
-    @ApiModelProperty(value = "对象id")
-    @TableField(value = "object_id")
-    private Long objectId;
-
-    @ApiModelProperty(value = "任务状态,INIT:未开始,RUNNING:进行中,FINISH:已完成")
-    @TableField(value = "status")
-    private String status;
-
-    @ApiModelProperty(value = "实时摘要信息")
-    @TableField(value = "summary")
-    private String summary;
-
-    @ApiModelProperty(value = "数据结果,SUCCESS:成功,ERROR:失败")
-    @TableField(value = "result")
-    private String result;
-
-    @ApiModelProperty(value = "备注")
-    @TableField(value = "remark")
-    private String remark;
-
-    @ApiModelProperty(value = "重试次数")
-    @TableField(value = "reset_count")
-    private int resetCount;
-
-    @ApiModelProperty(value = "错误原因")
-    @TableField(value = "error_message", updateStrategy = FieldStrategy.IGNORED)
-    private String errorMessage;
-
-    @ApiModelProperty(value = "报告路径")
-    @TableField(value = "report_file_path")
-    private String reportFilePath;
-
-    public Long getSchoolId() {
-        return schoolId;
-    }
-
-    public void setSchoolId(Long schoolId) {
-        this.schoolId = schoolId;
-    }
-
-    public Long getOrgId() {
-        return orgId;
-    }
-
-    public void setOrgId(Long orgId) {
-        this.orgId = orgId;
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public Long getThirdRelateId() {
-        return thirdRelateId;
-    }
-
-    public void setThirdRelateId(Long thirdRelateId) {
-        this.thirdRelateId = thirdRelateId;
-    }
-
-    public Long getObjectId() {
-        return objectId;
-    }
-
-    public void setObjectId(Long objectId) {
-        this.objectId = objectId;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public String getSummary() {
-        return summary;
-    }
-
-    public void setSummary(String summary) {
-        this.summary = summary;
-    }
-
-    public String getResult() {
-        return result;
-    }
-
-    public void setResult(String result) {
-        this.result = result;
-    }
-
-    public String getRemark() {
-        return remark;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
-
-    public int getResetCount() {
-        return resetCount;
-    }
-
-    public void setResetCount(int resetCount) {
-        this.resetCount = resetCount;
-    }
-
-    public String getErrorMessage() {
-        return errorMessage;
-    }
-
-    public void setErrorMessage(String errorMessage) {
-        this.errorMessage = errorMessage;
-    }
-
-    public String getReportFilePath() {
-        return reportFilePath;
-    }
-
-    public void setReportFilePath(String reportFilePath) {
-        this.reportFilePath = reportFilePath;
-    }
-}

+ 0 - 128
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/PushUserError.java

@@ -1,128 +0,0 @@
-package com.qmth.teachcloud.common.entity;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.qmth.teachcloud.common.base.BaseEntity;
-import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-import java.io.Serializable;
-
-/**
- * <p>
- * 推送用户异常数据
- * </p>
- *
- * @author wangliang
- * @since 2021-10-29
- */
-@ApiModel(value="PushUserError对象", description="推送用户异常数据")
-public class PushUserError extends BaseEntity implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty(value = "逸教云系统用户id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    @TableField("school_id")
-    private Long schoolId;
-
-    @ApiModelProperty(value = "逸教云系统用户id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    @TableField("user_id")
-    private Long userId;
-
-    @ApiModelProperty(value = "关联名称(唯一标识)")
-    @TableField("account")
-    private String account;
-
-    @ApiModelProperty(value = "名称")
-    @TableField("name")
-    private String name;
-
-    @ApiModelProperty(value = "密码")
-    @TableField("password")
-    private String password;
-
-    @ApiModelProperty(value = "特殊角色权限 MARKER('评卷员权限','Marker','M_'),SUBJECT_HEADER('科组长权限','SubjectHeader','S_')")
-    @TableField("role")
-    private SpecialPrivilegeEnum role;
-
-    @ApiModelProperty(value = "是否启用")
-    @TableField("enable")
-    private Boolean enable;
-
-    @ApiModelProperty(value = "科组长关联科目,科目代码用,分割,例如ASC,WED")
-    @TableField("subject_codes")
-    private String subjectCodes;
-
-
-    public static long getSerialVersionUID() {
-        return serialVersionUID;
-    }
-
-    public Long getSchoolId() {
-        return schoolId;
-    }
-
-    public void setSchoolId(Long schoolId) {
-        this.schoolId = schoolId;
-    }
-
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
-    public String getAccount() {
-        return account;
-    }
-
-    public void setAccount(String account) {
-        this.account = account;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getPassword() {
-        return password;
-    }
-
-    public void setPassword(String password) {
-        this.password = password;
-    }
-
-    public SpecialPrivilegeEnum getRole() {
-        return role;
-    }
-
-    public void setRole(SpecialPrivilegeEnum role) {
-        this.role = role;
-    }
-
-    public Boolean getEnable() {
-        return enable;
-    }
-
-    public void setEnable(Boolean enable) {
-        this.enable = enable;
-    }
-
-    public String getSubjectCodes() {
-        return subjectCodes;
-    }
-
-    public void setSubjectCodes(String subjectCodes) {
-        this.subjectCodes = subjectCodes;
-    }
-}

+ 0 - 75
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/PushUserTrack.java

@@ -1,75 +0,0 @@
-package com.qmth.teachcloud.common.entity;
-
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.qmth.teachcloud.common.base.BaseEntity;
-import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
-import com.qmth.teachcloud.common.enums.userPush.UserPushTrackEnum;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-import java.io.Serializable;
-
-/**
- * <p>
- * 用户推送轨迹表
- * </p>
- *
- * @author wangliang
- * @since 2021-11-04
- */
-@ApiModel(value = "PushUserTrack对象", description = "用户推送轨迹表")
-public class PushUserTrack extends BaseEntity implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty(value = "用户id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    private Long userId;
-
-    @ApiModelProperty(value = "学校id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    private Long schoolId;
-
-    @ApiModelProperty(value = "身份 SpecialPrivilegeEnum: SUBJECT_HEADER('科组长权限','SubjectHeader','S_', 4), MARKER('评卷员权限','Marker','M_', 5),")
-    private SpecialPrivilegeEnum identify;
-
-    @ApiModelProperty(value = "操作 UserPushTrackEnum: BIND('绑定') UNBIND('解绑') ")
-    private UserPushTrackEnum operate;
-
-    public static long getSerialVersionUID() {
-        return serialVersionUID;
-    }
-
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
-    public Long getSchoolId() {
-        return schoolId;
-    }
-
-    public void setSchoolId(Long schoolId) {
-        this.schoolId = schoolId;
-    }
-
-    public SpecialPrivilegeEnum getIdentify() {
-        return identify;
-    }
-
-    public void setIdentify(SpecialPrivilegeEnum identify) {
-        this.identify = identify;
-    }
-
-    public UserPushTrackEnum getOperate() {
-        return operate;
-    }
-
-    public void setOperate(UserPushTrackEnum operate) {
-        this.operate = operate;
-    }
-}

+ 0 - 38
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysUser.java

@@ -7,8 +7,6 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.enums.userPush.SyncStatusEnum;
-import com.qmth.teachcloud.common.enums.userPush.UserPushResultEnum;
 import com.qmth.teachcloud.common.service.SysConfigService;
 import com.qmth.teachcloud.common.util.Base64Util;
 import io.swagger.annotations.ApiModelProperty;
@@ -111,18 +109,6 @@ public class SysUser extends BaseEntity implements Serializable {
     @TableField(exist = false)
     private Long[] courseIds;
 
-    @ApiModelProperty(value = "评卷员推送状态")
-    @TableField("marker_status")
-    private UserPushResultEnum markerStatus;
-
-    @ApiModelProperty(value = "科组长推送状态")
-    @TableField("marker_leader_status")
-    private UserPushResultEnum markerLeaderStatus;
-
-    @ApiModelProperty(value = "同步状态")
-    @TableField("sync_status")
-    private SyncStatusEnum syncStatus;
-
     @ApiModelProperty("历史用户名")
     private String historicName;
 
@@ -161,14 +147,6 @@ public class SysUser extends BaseEntity implements Serializable {
         return serialVersionUID;
     }
 
-    public SyncStatusEnum getSyncStatus() {
-        return syncStatus;
-    }
-
-    public void setSyncStatus(SyncStatusEnum syncStatus) {
-        this.syncStatus = syncStatus;
-    }
-
     public Long getSchoolId() {
         return schoolId;
     }
@@ -288,20 +266,4 @@ public class SysUser extends BaseEntity implements Serializable {
     public void setVerifyCode(String verifyCode) {
         this.verifyCode = verifyCode;
     }
-
-    public UserPushResultEnum getMarkerStatus() {
-        return markerStatus;
-    }
-
-    public void setMarkerStatus(UserPushResultEnum markerStatus) {
-        this.markerStatus = markerStatus;
-    }
-
-    public UserPushResultEnum getMarkerLeaderStatus() {
-        return markerLeaderStatus;
-    }
-
-    public void setMarkerLeaderStatus(UserPushResultEnum markerLeaderStatus) {
-        this.markerLeaderStatus = markerLeaderStatus;
-    }
 }

+ 0 - 48
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/CloudUserPushOperateMapper.java

@@ -1,48 +0,0 @@
-package com.qmth.teachcloud.common.mapper;
-
-import com.qmth.teachcloud.common.bean.dto.TBSyncTaskDto;
-import com.qmth.teachcloud.common.enums.PushTypeEnum;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * @Description: 推送任务共用mapper
- * @Author: CaoZixuan
- * @Date: 2022-08-03
- */
-public interface CloudUserPushOperateMapper {
-    /**
-     * 新增推送任务
-     *
-     * @param tbSyncTaskDto tbSyncTaskDto
-     * @return 是否成功
-     */
-    boolean insertTBSyncTask(@Param("tbSyncTaskDto") TBSyncTaskDto tbSyncTaskDto);
-
-    /**
-     * 更新推送任务
-     *
-     * @param tbSyncTaskDto tbSyncTaskDto
-     * @return 是否成功
-     */
-    boolean updateTBSyncTask(@Param("tbSyncTaskDto") TBSyncTaskDto tbSyncTaskDto);
-
-    /**
-     * 根据id查询
-     *
-     * @param id id
-     * @return 结果
-     */
-    TBSyncTaskDto findById(@Param("id") Long id);
-
-    /**
-     * 查找推送记录
-     *
-     * @param schoolId  学校id
-     * @param objectId 关联用户id
-     * @param type      推送类型
-     * @return 推送任务集合(应该只有一条)
-     */
-    List<TBSyncTaskDto> findPushRecord(@Param("schoolId") Long schoolId, @Param("objectId") Long objectId, @Param("type") String type);
-}

+ 0 - 16
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/PushUserErrorMapper.java

@@ -1,16 +0,0 @@
-package com.qmth.teachcloud.common.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.qmth.teachcloud.common.entity.PushUserError;
-
-/**
- * <p>
- * 推送用户异常数据 Mapper 接口
- * </p>
- *
- * @author wangliang
- * @since 2021-10-29
- */
-public interface PushUserErrorMapper extends BaseMapper<PushUserError> {
-
-}

+ 0 - 16
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/PushUserTrackMapper.java

@@ -1,16 +0,0 @@
-package com.qmth.teachcloud.common.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.qmth.teachcloud.common.entity.PushUserTrack;
-
-/**
- * <p>
- * 用户推送轨迹表 Mapper 接口
- * </p>
- *
- * @author wangliang
- * @since 2021-11-04
- */
-public interface PushUserTrackMapper extends BaseMapper<PushUserTrack> {
-
-}

+ 0 - 49
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/CloudUserPushOperateService.java

@@ -1,49 +0,0 @@
-package com.qmth.teachcloud.common.service;
-
-import com.qmth.teachcloud.common.bean.dto.TBSyncTaskDto;
-import com.qmth.teachcloud.common.bean.params.UserPushParam;
-import com.qmth.teachcloud.common.entity.SysUser;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 推送任务服务类
- * @Author: CaoZixuan
- * @Date: 2022-08-03
- */
-public interface CloudUserPushOperateService {
-    /**
-     * 新增或更新推送任务
-     *
-     * @param tbSyncTaskDto obj
-     */
-    void saveOrUpdateTBSyncTask(TBSyncTaskDto tbSyncTaskDto);
-
-    /**
-     * 查询用户推送记录
-     *
-     * @param userId   用户id
-     * @param schoolId 学校id
-     * @return 记录
-     */
-    TBSyncTaskDto findUserPushRecord(Long userId, Long schoolId);
-
-
-    /**
-     * 初始化用户推送任务
-     *
-     * @param userPushMap 用户map
-     * @param requestUser 请求用户
-     */
-    void initUserPushTasks(Map<Long, List<UserPushParam>> userPushMap, SysUser requestUser);
-
-    /**
-     * 用户推送任务进行中
-     *
-     * @param userId      用户id
-     * @param requestUser 请求用户
-     * @return 。。
-     */
-    TBSyncTaskDto runningUserPushTask(Long userId, SysUser requestUser);
-}

+ 0 - 16
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/PushUserErrorService.java

@@ -1,16 +0,0 @@
-package com.qmth.teachcloud.common.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.qmth.teachcloud.common.entity.PushUserError;
-
-/**
- * <p>
- * 推送用户异常数据 服务类
- * </p>
- *
- * @author wangliang
- * @since 2021-10-29
- */
-public interface PushUserErrorService extends IService<PushUserError> {
-
-}

+ 0 - 41
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/PushUserTrackService.java

@@ -1,41 +0,0 @@
-package com.qmth.teachcloud.common.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.qmth.teachcloud.common.bean.params.UserPushParam;
-import com.qmth.teachcloud.common.entity.PushUserTrack;
-
-import java.util.List;
-import java.util.Set;
-
-/**
- * <p>
- * 用户推送轨迹表 服务类
- * </p>
- *
- * @author wangliang
- * @since 2021-11-04
- */
-public interface PushUserTrackService extends IService<PushUserTrack> {
-    /**
-     * 创建用户推送轨迹记录(用户前后角色对比创建)
-     *
-     * @param dbRoleIdSet      当前用户数据库中角色集合
-     * @param currentRoleIdSet 当前用户角色集合
-     * @param userId           当前用户主键
-     * @param enable           启用/禁用
-     * @param requestUserId    请求用户id
-     * @return 该用户推送轨迹记录集合(0条或2条)
-     */
-    @Deprecated
-    List<PushUserTrack> createPushTrackUser(Set<Long> dbRoleIdSet, Set<Long> currentRoleIdSet, Long userId, boolean enable, Long requestUserId);
-
-
-    /**
-     * 根据用户推送轨迹记录解析用户推送数据
-     *
-     * @param pushUserTrackList 该用户推送轨迹记录集合(0条或2条)
-     * @return 组装好的用户推送信息集合
-     */
-    @Deprecated
-    List<UserPushParam> analyzeUserPushSpecialPrivilege(List<PushUserTrack> pushUserTrackList);
-}

+ 0 - 16
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysUserService.java

@@ -160,20 +160,6 @@ public interface SysUserService extends IService<SysUser> {
      */
     public int countByTeachingRoomId(Long orgId);
 
-    /**
-     * 用户推送云阅卷服务
-     *
-     * @param userPushParamList 推送参数
-     * @param requestUserId     请求的用户id
-     * @throws IllegalAccessException
-     */
-    boolean userPushService(List<UserPushParam> userPushParamList, Long requestUserId) throws IllegalAccessException;
-
-    /**
-     * 自动推送用户推送失败表用户到云阅卷
-     */
-    void autoPushUserErrorData() throws IllegalAccessException;
-
     /**
      * 查询用户角色id查询用户特殊权限
      *
@@ -190,8 +176,6 @@ public interface SysUserService extends IService<SysUser> {
      */
     SpecialPrivilegeEnum findUserSpecialPrivilegeByUserId(Long userId);
 
-    SyncCountResult needPushAgainOperate(SysUser requestUser) throws IllegalAccessException;
-
     /**
      * 查找用户角色名
      *

+ 0 - 115
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/CloudUserPushOperateServiceImpl.java

@@ -1,115 +0,0 @@
-package com.qmth.teachcloud.common.service.impl;
-
-import com.qmth.teachcloud.common.bean.dto.TBSyncTaskDto;
-import com.qmth.teachcloud.common.bean.params.UserPushParam;
-import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.entity.SysUser;
-import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.enums.PushTypeEnum;
-import com.qmth.teachcloud.common.enums.TaskStatusEnum;
-import com.qmth.teachcloud.common.mapper.CloudUserPushOperateMapper;
-import com.qmth.teachcloud.common.service.CloudUserPushOperateService;
-import com.qmth.teachcloud.common.service.SysUserService;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Resource;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
-/**
- * @Description: 推送任务服务实现类
- * @Author: CaoZixuan
- * @Date: 2022-08-03
- */
-@Service
-public class CloudUserPushOperateServiceImpl implements CloudUserPushOperateService {
-    @Resource
-    private CloudUserPushOperateMapper cloudUserPushOperateMapper;
-    @Resource
-    private SysUserService sysUserService;
-
-    @Transactional(rollbackFor = Exception.class)
-    @Override
-    public void saveOrUpdateTBSyncTask(TBSyncTaskDto tbSyncTaskDto) {
-        Long id = tbSyncTaskDto.getId();
-        if (SystemConstant.longNotNull(id)) {
-            // 存在id -> 如果查询数据库中已存该id的对象则更新,否则新增 || 不存在id -> 新增
-            TBSyncTaskDto db = cloudUserPushOperateMapper.findById(id);
-            if (Objects.nonNull(db)) {
-                // 更新
-                boolean updateResult = cloudUserPushOperateMapper.updateTBSyncTask(tbSyncTaskDto);
-                if (!updateResult) {
-                    throw ExceptionResultEnum.ERROR.exception("推送任务更新失败");
-                }
-            } else {
-                // 新增
-                boolean insertResult = cloudUserPushOperateMapper.insertTBSyncTask(tbSyncTaskDto);
-                if (!insertResult) {
-                    throw ExceptionResultEnum.ERROR.exception("推送任务新增失败");
-                }
-            }
-        } else {
-            id = SystemConstant.getDbUuid();
-            tbSyncTaskDto.setId(id);
-            boolean insertResult = cloudUserPushOperateMapper.insertTBSyncTask(tbSyncTaskDto);
-            if (!insertResult) {
-                throw ExceptionResultEnum.ERROR.exception("推送任务新增失败");
-            }
-        }
-    }
-
-    @Override
-    public TBSyncTaskDto findUserPushRecord(Long userId, Long schoolId) {
-        List<TBSyncTaskDto> userPushList = cloudUserPushOperateMapper.findPushRecord(schoolId, userId, PushTypeEnum.USER_PUSH.name());
-        if (userPushList != null && userPushList.size() > 0) {
-            if (userPushList.size() > 1) {
-                throw ExceptionResultEnum.ERROR.exception("异常:用户【" + userId + "】拥有多条推送记录");
-            }
-            return userPushList.get(0);
-        } else {
-            return null;
-        }
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    @Override
-    public void initUserPushTasks(Map<Long, List<UserPushParam>> userPushMap, SysUser requestUser) {
-        Long schoolId = requestUser.getSchoolId();
-        for (Long userId : userPushMap.keySet()) {
-            TBSyncTaskDto dbRecord = this.findUserPushRecord(userId, schoolId);
-            Long id;
-            if (Objects.nonNull(dbRecord)) {
-                id = dbRecord.getId();
-            } else {
-                id = SystemConstant.getDbUuid();
-            }
-            TBSyncTaskDto tbSyncTaskDto = new TBSyncTaskDto();
-            tbSyncTaskDto.setId(id);
-            tbSyncTaskDto.setSchoolId(schoolId);
-            tbSyncTaskDto.setType(PushTypeEnum.USER_PUSH.name());
-            tbSyncTaskDto.setObjectId(userId);
-            tbSyncTaskDto.setStatus(TaskStatusEnum.INIT.name());
-            tbSyncTaskDto.setRemark(sysUserService.getById(userId).getLoginName());
-            tbSyncTaskDto.setResult(null);
-            tbSyncTaskDto.setCreateId(requestUser.getId());
-            tbSyncTaskDto.setCreateTime(System.currentTimeMillis());
-            this.saveOrUpdateTBSyncTask(tbSyncTaskDto);
-        }
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    @Override
-    public TBSyncTaskDto runningUserPushTask(Long userId, SysUser requestUser) {
-        Long schoolId = requestUser.getSchoolId();
-        TBSyncTaskDto tbSyncTaskDto = this.findUserPushRecord(userId, schoolId);
-        if (Objects.isNull(tbSyncTaskDto)) {
-            throw ExceptionResultEnum.ERROR.exception("用户推送表信息缺失");
-        }
-        tbSyncTaskDto.setStatus(TaskStatusEnum.RUNNING.name());
-        tbSyncTaskDto.updateInfo(requestUser.getId());
-        this.saveOrUpdateTBSyncTask(tbSyncTaskDto);
-        return tbSyncTaskDto;
-    }
-}

+ 0 - 20
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/PushUserErrorServiceImpl.java

@@ -1,20 +0,0 @@
-package com.qmth.teachcloud.common.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qmth.teachcloud.common.entity.PushUserError;
-import com.qmth.teachcloud.common.mapper.PushUserErrorMapper;
-import com.qmth.teachcloud.common.service.PushUserErrorService;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- * 推送用户异常数据 服务实现类
- * </p>
- *
- * @author wangliang
- * @since 2021-10-29
- */
-@Service
-public class PushUserErrorServiceImpl extends ServiceImpl<PushUserErrorMapper, PushUserError> implements PushUserErrorService {
-
-}

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

@@ -1,208 +0,0 @@
-package com.qmth.teachcloud.common.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qmth.teachcloud.common.bean.params.UserPushParam;
-import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.entity.PushUserTrack;
-import com.qmth.teachcloud.common.entity.SysPrivilege;
-import com.qmth.teachcloud.common.entity.SysRolePrivilege;
-import com.qmth.teachcloud.common.entity.SysUser;
-import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
-import com.qmth.teachcloud.common.enums.userPush.UserPushTrackEnum;
-import com.qmth.teachcloud.common.mapper.PushUserTrackMapper;
-import com.qmth.teachcloud.common.service.PushUserTrackService;
-import com.qmth.teachcloud.common.service.SysPrivilegeService;
-import com.qmth.teachcloud.common.service.SysRolePrivilegeService;
-import com.qmth.teachcloud.common.service.SysUserService;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Resource;
-import java.util.*;
-import java.util.stream.Collectors;
-
-/**
- * <p>
- * 用户推送轨迹表 服务实现类
- * </p>
- *
- * @author wangliang
- * @since 2021-11-04
- */
-@Service
-public class PushUserTrackServiceImpl extends ServiceImpl<PushUserTrackMapper, PushUserTrack> implements PushUserTrackService {
-    @Resource
-    SysUserService sysUserService;
-    @Resource
-    SysPrivilegeService sysPrivilegeService;
-    @Resource
-    SysRolePrivilegeService sysRolePrivilegeService;
-
-
-    @Transactional
-    @Override
-    public List<PushUserTrack> createPushTrackUser(Set<Long> dbRoleIdSet, Set<Long> currentRoleIdSet, Long userId, boolean enable,Long requestUserId) {
-        List<PushUserTrack> pushUserTrackList = new ArrayList<>();
-        SysUser currentUser = sysUserService.getById(userId);
-        if (Objects.isNull(currentUser)) {
-            throw ExceptionResultEnum.ERROR.exception("用户不存在");
-        }
-        // 查询该学校特殊权限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 (currentRoleIdSet.size() > 0) {
-            List<SysRolePrivilege> sysRolePrivilegeList = sysRolePrivilegeService.list(new QueryWrapper<SysRolePrivilege>().lambda().in(SysRolePrivilege::getRoleId, currentRoleIdSet));
-            Set<Long> priIds = sysRolePrivilegeList.stream().map(SysRolePrivilege::getPrivilegeId).collect(Collectors.toSet());
-            if (priIds.size() > 0) {
-                PushUserTrack markerTrack = new PushUserTrack();
-                PushUserTrack headerTrack = new PushUserTrack();
-                // 直接查轨迹表的数据
-                List<PushUserTrack> specialUserTrack = this.list(new QueryWrapper<PushUserTrack>().lambda().eq(PushUserTrack::getUserId, userId));
-                if (specialUserTrack.size() > 0){
-                    List<PushUserTrack> markerTrackList = specialUserTrack.stream().filter(e -> SpecialPrivilegeEnum.MARKER.equals(e.getIdentify())).sorted(Comparator.comparing(PushUserTrack::getCreateTime).reversed()).limit(1).collect(Collectors.toList());
-                    List<PushUserTrack> headerTrackList = specialUserTrack.stream().filter(e -> SpecialPrivilegeEnum.SUBJECT_HEADER.equals(e.getIdentify())).sorted(Comparator.comparing(PushUserTrack::getCreateTime).reversed()).limit(1).collect(Collectors.toList());
-                    if (markerTrackList.size() == 1){
-                        markerTrack = markerTrackList.get(0);
-                    }
-                    if (headerTrackList.size() == 1){
-                        headerTrack = headerTrackList.get(0);
-                    }
-
-                }
-
-                markerTrack.setUserId(userId);
-                markerTrack.setSchoolId(currentUser.getSchoolId());
-                markerTrack.setIdentify(SpecialPrivilegeEnum.MARKER);
-
-
-                headerTrack.setUserId(userId);
-                headerTrack.setSchoolId(currentUser.getSchoolId());
-                headerTrack.setIdentify(SpecialPrivilegeEnum.SUBJECT_HEADER);
-
-                if (priIds.contains(markerId) && !priIds.contains(subjectHeaderId)) {
-
-                    // 当前角色权限为评卷员权限
-                    if (enable) {
-                        markerTrack.setOperate(UserPushTrackEnum.BIND);
-                    } else {
-                        markerTrack.setOperate(UserPushTrackEnum.UNBIND);
-                    }
-                    headerTrack.setOperate(UserPushTrackEnum.UNBIND);
-                } else if (!priIds.contains(markerId) && priIds.contains(subjectHeaderId)) {
-
-                    // 当前角色权限为科组长权限
-                    markerTrack.setOperate(UserPushTrackEnum.UNBIND);
-                    if (enable) {
-                        headerTrack.setOperate(UserPushTrackEnum.BIND);
-                    } else {
-                        headerTrack.setOperate(UserPushTrackEnum.UNBIND);
-                    }
-                } else if (priIds.contains(markerId) && priIds.contains(subjectHeaderId)) {
-
-                    // 当前角色权限为复合权限
-                    if (enable) {
-                        markerTrack.setOperate(UserPushTrackEnum.BIND);
-                        headerTrack.setOperate(UserPushTrackEnum.BIND);
-                    } else {
-                        markerTrack.setOperate(UserPushTrackEnum.UNBIND);
-                        headerTrack.setOperate(UserPushTrackEnum.UNBIND);
-                    }
-                } else {
-                    // 无特殊权限
-                    if (dbRoleIdSet != null && dbRoleIdSet.size() > 0) {
-                        // 可以获得原角色判断
-                        List<SysRolePrivilege> beforeSysRolePrivilegeList = sysRolePrivilegeService.list(new QueryWrapper<SysRolePrivilege>().lambda().in(SysRolePrivilege::getRoleId, dbRoleIdSet));
-                        Set<Long> beforePris = beforeSysRolePrivilegeList.stream().map(SysRolePrivilege::getPrivilegeId).collect(Collectors.toSet());
-                        if (beforePris.contains(markerId) || beforePris.contains(subjectHeaderId)) {
-                            // 如果该用户原先的角色且原先用户含有特殊角色,但新用户新角色一个都不含,要发送两个解绑
-                            markerTrack.setOperate(UserPushTrackEnum.UNBIND);
-                            headerTrack.setOperate(UserPushTrackEnum.UNBIND);
-                        } else {
-                            // 原先角色从没有过特殊权限,更新后的也没有(普通用户)
-                            markerTrack = null;
-                            headerTrack = null;
-                        }
-                    } else {
-                        // 无法获取原用户表角色 -> 去轨迹表查询
-                        List<PushUserTrack> specialUserCheck = this.list(new QueryWrapper<PushUserTrack>().lambda().eq(PushUserTrack::getUserId, userId));
-                        if (specialUserCheck.size() > 0) {
-                            // 该用户是特殊用户(就算现在不是曾经也是过)
-                            markerTrack.setOperate(UserPushTrackEnum.UNBIND);
-                            headerTrack.setOperate(UserPushTrackEnum.UNBIND);
-                        } else {
-                            // 原先角色从没有过特殊权限,更新后的也没有(普通用户)
-                            markerTrack = null;
-                            headerTrack = null;
-                        }
-                    }
-                }
-                if (Objects.nonNull(markerTrack)) {
-                    if (SystemConstant.longNotNull(markerTrack.getId())){
-                        // 更新
-                        markerTrack.updateInfo(requestUserId);
-                    }else {
-                        // 新增
-                        markerTrack.insertInfo(requestUserId);
-                    }
-                    pushUserTrackList.add(markerTrack);
-                    this.saveOrUpdate(markerTrack);
-                }
-                if (Objects.nonNull(headerTrack)) {
-                    if (SystemConstant.longNotNull(headerTrack.getId())){
-                        // 更新
-                        headerTrack.updateInfo(requestUserId);
-                    }else {
-                        // 新增
-                        headerTrack.insertInfo(requestUserId);
-                    }
-                    pushUserTrackList.add(headerTrack);
-                    this.saveOrUpdate(headerTrack);
-                }
-            }
-        }
-        return pushUserTrackList;
-    }
-
-
-    @Transactional
-    @Override
-    public List<UserPushParam> analyzeUserPushSpecialPrivilege(List<PushUserTrack> pushUserTrackList) {
-        List<UserPushParam> userPushParamList = new ArrayList<>();
-        if (pushUserTrackList != null && pushUserTrackList.size() > 0) {
-            for (PushUserTrack pushUserTrack : pushUserTrackList) {
-                Long userId = pushUserTrack.getUserId();
-                SysUser currentUser = sysUserService.getById(userId);
-                SpecialPrivilegeEnum identify = pushUserTrack.getIdentify();
-                UserPushTrackEnum operate = pushUserTrack.getOperate();
-
-                UserPushParam cell = new UserPushParam();
-                cell.setUserId(userId);
-                cell.setSchoolId(currentUser.getSchoolId());
-                cell.setName(currentUser.getRealName());
-                cell.setPassword("123456");
-                cell.setRole(identify);
-                cell.setAccount(identify.getPrefix() + currentUser.getLoginName());
-
-                if (UserPushTrackEnum.BIND.equals(operate)) {
-                    // 绑定
-                    cell.setEnable(true);
-                } else {
-                    // 解绑
-                    cell.setEnable(false);
-                }
-                userPushParamList.add(cell);
-            }
-        }
-        return userPushParamList;
-    }
-}

+ 3 - 120
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleServiceImpl.java

@@ -6,21 +6,16 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
-import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
-import com.qmth.teachcloud.common.enums.userPush.SyncStatusEnum;
-import com.qmth.teachcloud.common.enums.userPush.UserPushTrackEnum;
 import com.qmth.teachcloud.common.mapper.SysRoleMapper;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -42,13 +37,13 @@ import java.util.stream.Collectors;
 public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService {
     private final static Logger log = LoggerFactory.getLogger(SysRoleServiceImpl.class);
 
-    @Autowired
+    @Resource
     private SysUserRoleService sysUserRoleService;
 
-    @Autowired
+    @Resource
     private SysRolePrivilegeService sysRolePrivilegeService;
 
-    @Autowired
+    @Resource
     private CommonCacheService commonCacheService;
 
     @Resource
@@ -63,9 +58,6 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
     @Resource
     SysUserService sysUserService;
 
-    @Resource
-    PushUserTrackService pushUserTrackService;
-
     @Resource
     SysRoleGroupMemberService sysRoleGroupMemberService;
 
@@ -346,113 +338,4 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
 //        }
         return this.baseMapper.listRolesBySchoolId(Objects.nonNull(schoolId) ? Long.valueOf(schoolId) : null);
     }
-
-    /**
-     * 更新用户状态为重新推送
-     *
-     * @param dbPrivilege 角色旧权限
-     * @param upPrivilege 角色新权限
-     * @param roleId      角色id
-     * @param schoolId    学校id
-     */
-    @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);
-        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 ((dbPrivilege.contains(markerId) || upPrivilege.contains(markerId)) || (dbPrivilege.contains(subjectHeaderId) || upPrivilege.contains(subjectHeaderId))) {
-            List<SysUserRole> sysUserRoleList = sysUserRoleService.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getRoleId, roleId));
-            Set<Long> userIdSet = sysUserRoleList.stream().map(SysUserRole::getUserId).collect(Collectors.toSet());
-            if (userIdSet.size() > 0) {
-                List<SysUser> sysUserList = sysUserService.listByIds(userIdSet);
-                for (SysUser sysUser : sysUserList) {
-                    boolean enable = sysUser.getEnable();
-                    sysUser.setSyncStatus(SyncStatusEnum.NEED_PUSH_AGAIN);
-                    sysUserService.updateById(sysUser);
-                    Set<Long> roleIdSet = sysUserRoleService.listRoleByUserId(sysUser.getId()).stream().map(BaseEntity::getId).collect(Collectors.toSet());
-                    roleIdSet.remove(roleId);
-
-                    // 该用户除掉正要更改的角色所属的权限外其他角色所属权限的特殊权限枚举
-                    SpecialPrivilegeEnum otherRoleSpecialPrivilegeEnum = sysUserService.findUserSpecialPrivilegeByRoleIdSet(roleIdSet);
-
-                    PushUserTrack markerTrack = new PushUserTrack();
-                    PushUserTrack headerTrack = new PushUserTrack();
-                    List<PushUserTrack> specialUserTrack = pushUserTrackService.list(new QueryWrapper<PushUserTrack>().lambda().eq(PushUserTrack::getUserId, sysUser.getId()));
-                    if (specialUserTrack.size() > 0) {
-                        List<PushUserTrack> markerTrackList = specialUserTrack.stream().filter(e -> SpecialPrivilegeEnum.MARKER.equals(e.getIdentify())).sorted(Comparator.comparing(PushUserTrack::getCreateTime).reversed()).limit(1).collect(Collectors.toList());
-                        List<PushUserTrack> headerTrackList = specialUserTrack.stream().filter(e -> SpecialPrivilegeEnum.SUBJECT_HEADER.equals(e.getIdentify())).sorted(Comparator.comparing(PushUserTrack::getCreateTime).reversed()).limit(1).collect(Collectors.toList());
-                        if (markerTrackList.size() == 1) {
-                            markerTrack = markerTrackList.get(0);
-                        }
-                        if (headerTrackList.size() == 1) {
-                            headerTrack = headerTrackList.get(0);
-                        }
-                    }
-
-                    // 更新轨迹数据
-                    // 评卷员身份轨迹记录
-                    if (SystemConstant.longNotNull(markerTrack.getId())) {
-                        // 更新
-                        markerTrack.updateInfo(requestUser.getId());
-                    } else {
-                        // 新增
-                        markerTrack.insertInfo(requestUser.getId());
-                    }
-                    markerTrack.setUserId(sysUser.getId());
-                    markerTrack.setSchoolId(sysUser.getSchoolId());
-                    markerTrack.setIdentify(SpecialPrivilegeEnum.MARKER);
-
-                    // 科组长身份轨迹记录
-                    if (SystemConstant.longNotNull(markerTrack.getId())) {
-                        // 更新
-                        headerTrack.updateInfo(requestUser.getId());
-                    } else {
-                        // 新增
-                        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)) {
-                            // 该用户其他的角色也不包含评卷员权限 -> 评卷员角色解绑
-                            markerTrack.setOperate(UserPushTrackEnum.UNBIND);
-                            pushUserTrackService.saveOrUpdate(markerTrack);
-                        }
-                    } else if (!dbPrivilege.contains(markerId) && upPrivilege.contains(markerId)) {
-                        // 更新新增了评卷员权限
-                        if (enable) {
-                            markerTrack.setOperate(UserPushTrackEnum.BIND);
-                            pushUserTrackService.saveOrUpdate(markerTrack);
-                        }
-                    }
-                    // 科组长判断
-                    if (dbPrivilege.contains(subjectHeaderId) && !upPrivilege.contains(subjectHeaderId)) {
-                        // 该角色更新没收了科组长权限
-                        if (!SpecialPrivilegeEnum.SUBJECT_HEADER.equals(otherRoleSpecialPrivilegeEnum) && !SpecialPrivilegeEnum.COMPOSITE.equals(otherRoleSpecialPrivilegeEnum)) {
-                            // 该用户其他的角色也不包含科组长权限 -> 科组长角色解绑
-                            headerTrack.setOperate(UserPushTrackEnum.UNBIND);
-                            pushUserTrackService.saveOrUpdate(headerTrack);
-                        }
-                    } else if (!dbPrivilege.contains(subjectHeaderId) && upPrivilege.contains(subjectHeaderId)) {
-                        // 更新新增了科组长权限
-                        if (enable) {
-                            headerTrack.setOperate(UserPushTrackEnum.BIND);
-                            pushUserTrackService.saveOrUpdate(headerTrack);
-                        }
-                    }
-                }
-            }
-        }
-    }
 }

+ 2 - 137
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -1,6 +1,5 @@
 package com.qmth.teachcloud.common.service.impl;
 
-import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -8,7 +7,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.gson.Gson;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.bean.auth.AuthBean;
 import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
 import com.qmth.teachcloud.common.bean.dto.LoginDto;
@@ -17,7 +15,6 @@ import com.qmth.teachcloud.common.bean.dto.VerifyCodeCheckDto;
 import com.qmth.teachcloud.common.bean.dto.excel.DescribeImportDto;
 import com.qmth.teachcloud.common.bean.dto.excel.SysUserImportDto;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
-import com.qmth.teachcloud.common.bean.params.UserPushParam;
 import com.qmth.teachcloud.common.bean.params.UserSaveParams;
 import com.qmth.teachcloud.common.bean.params.UserSaveReportParams;
 import com.qmth.teachcloud.common.bean.result.*;
@@ -27,7 +24,6 @@ import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.*;
 import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
-import com.qmth.teachcloud.common.enums.userPush.SyncStatusEnum;
 import com.qmth.teachcloud.common.mapper.SysUserMapper;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.sync.CloudMarkingTaskUtils;
@@ -97,24 +93,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Resource
     TeachcloudCommonService teachcloudCommonService;
 
-    @Resource
-    SysPrivilegeService sysPrivilegeService;
-
-    @Resource
-    PushUserErrorService pushUserErrorService;
-
-    @Resource
-    PushUserTrackService pushUserTrackService;
-
     @Resource
     CloudMarkingTaskUtils stmmsUtils;
 
     @Resource
     SysRoleGroupMemberService sysRoleGroupMemberService;
 
-    @Resource
-    CloudUserPushService cloudUserPushService;
-
     @Override
     public IPage<UserDto> list(String loginName, String roleId, Boolean enable, String realName, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
@@ -144,7 +128,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     /**
      * 保存用户
      *
-     * @return
+     * @return 结果
      */
     @Override
     public boolean saveUserReport(UserSaveReportParams userSaveReportParams) {
@@ -157,7 +141,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Transactional
     @Override
     public boolean enable(SysUser user) throws NoSuchAlgorithmException, IllegalAccessException {
-        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         UpdateWrapper<SysUser> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(SysUser::getEnable, user.getEnable()).eq(SysUser::getId, user.getId());
         commonCacheService.updateUserCache(user.getId());
@@ -166,9 +149,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         if (!user.getEnable()) {
             commonService.removeUserInfo(user.getId(), true);
         }
-        if (success) {
-            this.analyzeUserEnableSpecialPrivilege(user.getId(), user.getEnable(), requestUser.getId());
-        }
         return success;
     }
 
@@ -265,7 +245,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         }
 
         // 登录
-        BasicSchool basicSchool = null;
+        BasicSchool basicSchool;
         String schoolCode = null;
         basicSchool = basicSchoolService.getById(sysUser.getSchoolId());
         if (Objects.isNull(basicSchool)) {
@@ -828,63 +808,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return sysUserService.count(sysUserQueryWrapper);
     }
 
-    @Transactional
-    @Override
-    @Deprecated
-    public boolean userPushService(List<UserPushParam> userPushParamList, Long requestUserId) throws IllegalAccessException {
-        SysUser requestUser = this.getById(requestUserId);
-        if (Objects.isNull(requestUser)) {
-            log.error("未找到请求用户信息 requestUserId = " + requestUserId);
-            throw ExceptionResultEnum.ERROR.exception("未找到请求用户信息");
-        }
-        boolean result = true;
-        for (UserPushParam userPushParam : userPushParamList) {
-            boolean syncResult = stmmsUtils.syncUser(userPushParam).getSuccess();
-            if (!syncResult) {
-                log.warn("-----------------------------用户同步推送失败----------------------------");
-                result = false;
-                PushUserError pushUserError = new PushUserError();
-                pushUserError.setId(SystemConstant.getDbUuid());
-                pushUserError.setSchoolId(userPushParam.getSchoolId());
-                pushUserError.setUserId(userPushParam.getUserId());
-                pushUserError.setAccount(userPushParam.getAccount());
-                pushUserError.setName(userPushParam.getName());
-                pushUserError.setPassword(userPushParam.getPassword());
-                pushUserError.setEnable(userPushParam.getEnable());
-                pushUserError.setSubjectCodes(userPushParam.getSubjectCodes());
-                pushUserError.setRole(userPushParam.getRole());
-                pushUserError.setCreateId(requestUser.getId());
-                log.warn(JSON.toJSONString(pushUserError));
-                pushUserErrorService.save(pushUserError);
-            }
-        }
-        return result;
-    }
-
-    @Transactional
-    @Override
-    public void autoPushUserErrorData() throws IllegalAccessException {
-        List<PushUserError> pushUserErrorList = pushUserErrorService.list();
-        Set<Long> userIdSet = pushUserErrorList.stream().map(PushUserError::getUserId).collect(Collectors.toSet());
-        if (userIdSet.size() > 0) {
-            List<SysUser> sysUserList = this.listByIds(userIdSet);
-            // 清空push-user-error表
-            pushUserErrorService.remove(new QueryWrapper<PushUserError>().lambda().in(PushUserError::getUserId, userIdSet));
-            for (SysUser sysUser : sysUserList) {
-                if (!SyncStatusEnum.NEED_PUSH_AGAIN.equals(sysUser.getSyncStatus())) {
-                    // 用户同步状态不为需要重新同步的错误数据再同步(防止和需要重新同步类型的数据冲突或因为权限改动导致的反复同步!)
-                    Long userId = sysUser.getId();
-                    Set<Long> roleIdSet = sysUserRoleService.listRoleByUserId(userId).stream().map(BaseEntity::getId).collect(Collectors.toSet());
-
-                    Long requestUserId = 1L; // 系统管理员
-                    List<PushUserTrack> pushUserTrackList = pushUserTrackService.createPushTrackUser(null, roleIdSet, userId, sysUser.getEnable(), requestUserId);
-                    List<UserPushParam> userPushParamList = pushUserTrackService.analyzeUserPushSpecialPrivilege(pushUserTrackList);
-                    this.userPushService(userPushParamList, requestUserId);
-                }
-            }
-        }
-    }
-
     @Override
     public SpecialPrivilegeEnum findUserSpecialPrivilegeByRoleIdSet(Set<Long> roleIdSet) {
         SpecialPrivilegeEnum result = SpecialPrivilegeEnum.UNIDENTIFIED;
@@ -924,43 +847,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return this.findUserSpecialPrivilegeByRoleIdSet(roleIdSet);
     }
 
-    @Transactional
-    @Override
-    public SyncCountResult needPushAgainOperate(SysUser requestUser) throws IllegalAccessException {
-        int correctCount = 0;
-        int totalCount = 0;
-        if (Objects.isNull(requestUser)) {
-            throw ExceptionResultEnum.ERROR.exception("未找到请求用户");
-        }
-        Long schoolId = requestUser.getSchoolId();
-        Long requestUserId = requestUser.getId();
-        // 需要同步的用户
-        QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(SysUser::getSyncStatus, SyncStatusEnum.NEED_PUSH_AGAIN);
-        if (SystemConstant.longNotNull(schoolId)) {
-            queryWrapper.lambda().eq(SysUser::getSchoolId, schoolId);
-        }
-        List<SysUser> sysUserList = sysUserService.list(queryWrapper);
-        totalCount = sysUserList.size();
-        for (SysUser user : sysUserList) {
-            Set<Long> roleIdSet = sysUserRoleService.listRoleByUserId(user.getId()).stream().map(BaseEntity::getId).collect(Collectors.toSet());
-            List<PushUserTrack> pushUserTrackList = pushUserTrackService.createPushTrackUser(null, roleIdSet, user.getId(), user.getEnable(), requestUserId);
-            List<UserPushParam> userPushParamList = pushUserTrackService.analyzeUserPushSpecialPrivilege(pushUserTrackList);
-
-            boolean syncResult = sysUserService.userPushService(userPushParamList, requestUserId);
-            if (syncResult) {
-                correctCount++;
-            }
-            UpdateWrapper<SysUser> updateWrapper = new UpdateWrapper<>();
-            updateWrapper.lambda().set(SysUser::getSyncStatus, null).eq(SysUser::getId, user.getId());
-            sysUserService.update(updateWrapper);
-        }
-        SyncCountResult syncCountResult = new SyncCountResult();
-        syncCountResult.setTotalCount(totalCount);
-        syncCountResult.setCorrectCount(correctCount);
-        return syncCountResult;
-    }
-
     /**
      * 查找用户角色名
      *
@@ -1181,25 +1067,4 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         }
         return roleIdList;
     }
-
-    /**
-     * 用户禁用启用特殊权限判断及处理
-     *
-     * @param userId        用户id
-     * @param enable        启用/禁用
-     * @param requestUserId 请求人id
-     */
-    @Deprecated
-    private void analyzeUserEnableSpecialPrivilege(Long userId, boolean enable, Long requestUserId) throws IllegalAccessException {
-        SysUser dbUser = sysUserService.getById(userId);
-        if (Objects.isNull(dbUser)) {
-            throw ExceptionResultEnum.ERROR.exception("未找到系统用户");
-        }
-        Set<Long> currentRoleIdSet = new HashSet<>(sysRoleService.getUserRoles(userId));
-        List<PushUserTrack> pushUserTrackList = pushUserTrackService.createPushTrackUser(null, currentRoleIdSet, userId, enable, requestUserId);
-        List<UserPushParam> userPushParamList = pushUserTrackService.analyzeUserPushSpecialPrivilege(pushUserTrackList);
-        if (userPushParamList != null && userPushParamList.size() > 0) {
-            this.userPushService(userPushParamList, requestUserId);
-        }
-    }
 }

+ 0 - 151
teachcloud-common/src/main/resources/mapper/CloudUserPushOperateMapper.xml

@@ -1,151 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.qmth.teachcloud.common.mapper.CloudUserPushOperateMapper">
-
-    <insert id="insertTBSyncTask">
-        INSERT INTO t_b_sync_task
-        SET
-            id = #{tbSyncTaskDto.id},
-            school_id = #{tbSyncTaskDto.schoolId},
-            org_id = #{tbSyncTaskDto.orgId},
-            type = #{tbSyncTaskDto.type},
-            third_relate_id = #{tbSyncTaskDto.thirdRelateId},
-            object_id = #{tbSyncTaskDto.objectId},
-            status = #{tbSyncTaskDto.status},
-            summary = #{tbSyncTaskDto.summary},
-            result = #{tbSyncTaskDto.result},
-            create_id = #{tbSyncTaskDto.createId},
-            create_time = #{tbSyncTaskDto.createTime},
-            update_id = #{tbSyncTaskDto.updateId},
-            update_time = #{tbSyncTaskDto.updateTime},
-            remark = #{tbSyncTaskDto.remark},
-            reset_count = #{tbSyncTaskDto.resetCount},
-            error_message = #{tbSyncTaskDto.errorMessage},
-            report_file_path = #{tbSyncTaskDto.reportFilePath}
-
-    </insert>
-    <update id="updateTBSyncTask">
-        UPDATE t_b_sync_task
-        <set>
-            <if test="tbSyncTaskDto.schoolId != null and tbSyncTaskDto.schoolId != ''">
-                school_id = #{tbSyncTaskDto.schoolId},
-            </if>
-
-            <if test="tbSyncTaskDto.orgId != null and tbSyncTaskDto.orgId != ''">
-                org_id = #{tbSyncTaskDto.orgId},
-            </if>
-
-            <if test="tbSyncTaskDto.type != null and tbSyncTaskDto.type != ''">
-                type = #{tbSyncTaskDto.type},
-            </if>
-
-            <if test="tbSyncTaskDto.thirdRelateId != null and tbSyncTaskDto.thirdRelateId != ''">
-                third_relate_id = #{tbSyncTaskDto.thirdRelateId},
-            </if>
-
-            <if test="tbSyncTaskDto.objectId != null and tbSyncTaskDto.objectId != ''">
-                object_id = #{tbSyncTaskDto.objectId},
-            </if>
-
-            <if test="tbSyncTaskDto.status != null and tbSyncTaskDto.status != ''">
-                status = #{tbSyncTaskDto.status},
-            </if>
-
-            <if test="tbSyncTaskDto.summary != null and tbSyncTaskDto.summary != ''">
-                summary = #{tbSyncTaskDto.summary},
-            </if>
-
-            <if test="tbSyncTaskDto.createId != null and tbSyncTaskDto.createId != ''">
-                create_id = #{tbSyncTaskDto.createId},
-            </if>
-
-            <if test="tbSyncTaskDto.createTime != null and tbSyncTaskDto.createTime != ''">
-                create_time = #{tbSyncTaskDto.createTime},
-            </if>
-
-            <if test="tbSyncTaskDto.schoolId != null and tbSyncTaskDto.schoolId != ''">
-                update_id = #{tbSyncTaskDto.updateId},
-            </if>
-
-            <if test="tbSyncTaskDto.schoolId != null and tbSyncTaskDto.schoolId != ''">
-                update_time = #{tbSyncTaskDto.updateTime},
-            </if>
-
-            <if test="tbSyncTaskDto.schoolId != null and tbSyncTaskDto.schoolId != ''">
-                remark = #{tbSyncTaskDto.remark},
-            </if>
-
-            <if test="tbSyncTaskDto.schoolId != null and tbSyncTaskDto.schoolId != ''">
-                reset_count = #{tbSyncTaskDto.resetCount},
-            </if>
-
-            <if test="tbSyncTaskDto.schoolId != null and tbSyncTaskDto.schoolId != ''">
-                error_message = #{tbSyncTaskDto.errorMessage},
-            </if>
-
-            <if test="tbSyncTaskDto.schoolId != null and tbSyncTaskDto.schoolId != ''">
-                report_file_path = #{tbSyncTaskDto.reportFilePath},
-            </if>
-            result = #{tbSyncTaskDto.result}
-        </set>
-        <where>
-            id = #{tbSyncTaskDto.id}
-        </where>
-    </update>
-    <select id="findById" resultType="com.qmth.teachcloud.common.bean.dto.TBSyncTaskDto">
-        SELECT
-            id,
-            school_id AS schoolId,
-            org_id AS orgId,
-            type,
-            third_relate_id AS thirdRelateId,
-            object_id AS objectId,
-            status,
-            summary,
-            result,
-            create_id AS createId,
-            create_time AS createTime,
-            update_id AS updateId,
-            update_time AS updateTime,
-            remark,
-            reset_count AS resetCount,
-            error_message AS errorMessage,
-            report_file_path AS reportFilePath
-        FROM
-            t_b_sync_task
-        WHERE id = #{id}
-    </select>
-    <select id="findPushRecord" resultType="com.qmth.teachcloud.common.bean.dto.TBSyncTaskDto">
-        SELECT
-            id,
-            school_id AS schoolId,
-            org_id AS orgId,
-            type,
-            third_relate_id AS thirdRelateId,
-            object_id AS objectId,
-            status,
-            summary,
-            result,
-            create_id AS createId,
-            create_time AS createTime,
-            update_id AS updateId,
-            update_time AS updateTime,
-            remark,
-            reset_count AS resetCount,
-            error_message AS errorMessage,
-            report_file_path AS reportFilePath
-        FROM
-            t_b_sync_task
-        <where>
-            <if test="schoolId != null and schoolId != ''">
-                AND school_id = #{schoolId}
-            </if>
-            <if test="objectId != null and objectId != ''">
-                AND object_id = #{objectId}
-            </if>
-            <if test="type != null and type != ''">
-                AND type = #{type}
-            </if>
-        </where>
-    </select>
-</mapper>

+ 0 - 5
teachcloud-common/src/main/resources/mapper/PushUserErrorMapper.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.qmth.teachcloud.common.mapper.PushUserErrorMapper">
-
-</mapper>

+ 0 - 5
teachcloud-common/src/main/resources/mapper/PushUserTrackMapper.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.qmth.teachcloud.common.mapper.PushUserTrackMapper">
-
-</mapper>

+ 4 - 2
teachcloud-common/src/main/resources/mapper/SysUserMapper.xml

@@ -46,13 +46,15 @@
             a.remark,
             a.org_id orgId,
             a.code code,
-            a.marker_status as markerStatus,
-            a.marker_leader_status as markerLeaderStatus,
+            c.marker_status as markerStatus,
+            c.marker_leader_status as markerLeaderStatus,
             b.name orgName
         FROM
             sys_user a
                 left join
             sys_org b on a.org_id = b.id
+                LEFT JOIN
+            cloud_user_push_status c on a.school_id = c.school_id and a.id = c.user_id
         <where>
             <if test="schoolId != null and schoolId != ''">
                 and a.school_id = #{schoolId}

+ 1 - 9
teachcloud-task/src/main/java/com/qmth/teachcloud/task/enums/JobEnum.java

@@ -29,15 +29,7 @@ public enum JobEnum {
 
     REDIS_MQ_JOB("学校信息同步定时任务"),
 
-    REDIS_MQ_JOB_GROUP("学校信息同步定时任务组"),
-
-    TIMED_SYNC_USER_PUSH_ERROR_JOB("用户推送失败再次推送定时任务"),
-
-    TIMED_SYNC_USER_PUSH_ERROR_JOB_GROUP("用户推送失败再次推送定时任务组"),
-
-    TIMED_SYNC_USER_NEED_PUSH_AGAIN_JOB("用户需重新推送再次推送定时任务"),
-
-    TIMED_SYNC_USER_NEED_PUSH_AGAIN_JOB_GROUP("用户需重新推送再次推送定时任务组");
+    REDIS_MQ_JOB_GROUP("学校信息同步定时任务组"),;
 
     private String title;
 

+ 0 - 31
teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/TimedSyncUserNeedPushAgainJob.java

@@ -1,31 +0,0 @@
-package com.qmth.teachcloud.task.job;
-
-import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.task.job.service.JobService;
-import org.quartz.JobExecutionContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.scheduling.quartz.QuartzJobBean;
-
-import javax.annotation.Resource;
-
-/**
- * @Description: 用户需重新推送再次推送定时任务
- * @Author: CaoZixuan
- * @Date: 2021-11-05
- */
-public class TimedSyncUserNeedPushAgainJob extends QuartzJobBean {
-    private final static Logger log = LoggerFactory.getLogger(TimedSyncUserNeedPushAgainJob.class);
-
-    @Resource
-    JobService jobService;
-
-    @Override
-    protected void executeInternal(JobExecutionContext context) {
-        try {
-            jobService.needPushAgain();
-        } catch (IllegalAccessException e) {
-            log.error(SystemConstant.LOG_ERROR, e);
-        }
-    }
-}

+ 0 - 31
teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/TimedSyncUserPushErrorJob.java

@@ -1,31 +0,0 @@
-package com.qmth.teachcloud.task.job;
-
-import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.task.job.service.JobService;
-import org.quartz.JobExecutionContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.scheduling.quartz.QuartzJobBean;
-
-import javax.annotation.Resource;
-
-/**
- * @Description: 用户推送失败重新推送
- * @Author: CaoZixuan
- * @Date: 2021-11-05
- */
-public class TimedSyncUserPushErrorJob extends QuartzJobBean {
-    private final static Logger log = LoggerFactory.getLogger(TimedSyncUserPushErrorJob.class);
-
-    @Resource
-    JobService jobService;
-
-    @Override
-    protected void executeInternal(JobExecutionContext context) {
-        try {
-            jobService.autoPushUserErrorData();
-        } catch (IllegalAccessException e) {
-            log.error(SystemConstant.LOG_ERROR, e);
-        }
-    }
-}

+ 0 - 4
teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/service/JobService.java

@@ -44,8 +44,4 @@ public interface JobService {
      * 机器心跳
      */
     void machineHeart();
-
-    void autoPushUserErrorData() throws IllegalAccessException;
-
-    void needPushAgain() throws IllegalAccessException;
 }

+ 2 - 24
teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/service/impl/JobServiceImpl.java

@@ -2,18 +2,14 @@ package com.qmth.teachcloud.task.job.service.impl;
 
 import com.qmth.boot.redis.uid.RedisMachineService;
 import com.qmth.distributed.print.business.service.BasicMessageService;
-import com.qmth.distributed.print.business.service.DataSyncService;
 import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.teachcloud.common.bean.dto.MqDto;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.entity.SysUser;
-import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.util.RedisUtil;
 import com.qmth.teachcloud.task.job.service.JobService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -36,24 +32,18 @@ public class JobServiceImpl implements JobService {
     @Resource
     PrintCommonService printCommonService;
 
-    @Autowired
+    @Resource
     ExamTaskService examTaskService;
 
-    @Autowired
+    @Resource
     BasicMessageService basicMessageService;
 
-    @Autowired
-    DataSyncService dataSyncService;
-
     @Resource
     RedisUtil redisUtil;
 
     @Resource
     RedisMachineService redisMachineService;
 
-    @Resource
-    SysUserService sysUserService;
-
     /**
      * 重新生成pdf失败任务
      *
@@ -84,18 +74,6 @@ public class JobServiceImpl implements JobService {
         redisUtil.set(SystemConstant.TASK_MACHINE_ID + redisMachineService.getMachineId(), redisMachineService.getMachineId(), 30, TimeUnit.SECONDS);
     }
 
-    @Override
-    public void autoPushUserErrorData() throws IllegalAccessException {
-        sysUserService.autoPushUserErrorData();
-    }
-
-    @Override
-    public void needPushAgain() throws IllegalAccessException {
-        SysUser requestUser = new SysUser();
-        requestUser.setId(1L);
-        sysUserService.needPushAgainOperate(requestUser);
-    }
-
     /**
      * 组装job
      *

+ 0 - 16
teachcloud-task/src/main/java/com/qmth/teachcloud/task/start/StartRunning.java

@@ -42,22 +42,6 @@ public class StartRunning implements CommandLineRunner {
         jobService.machineHeart();
         printCommonService.updateStatus();
 
-        log.info("增加用户推送失败再次推送定时任务 start");
-        Map userPushErrorMap = new HashMap();
-        userPushErrorMap.computeIfAbsent("name", v -> TimedSyncUserPushErrorJob.class.getName());
-        quartzService.deleteJob(JobEnum.TIMED_SYNC_USER_PUSH_ERROR_JOB.name(), JobEnum.TIMED_SYNC_USER_PUSH_ERROR_JOB_GROUP.name());
-        // 用户推送失败再次推送 每分钟推送一次
-        quartzService.addJob(TimedSyncUserPushErrorJob.class, JobEnum.TIMED_SYNC_USER_PUSH_ERROR_JOB.name(), JobEnum.TIMED_SYNC_USER_PUSH_ERROR_JOB_GROUP.name(), "0 0/1 * * * ?", userPushErrorMap);
-        log.info("增加用户推送失败再次推送定时任务 end");
-
-        log.info("增加用户需重新推送再次推送定时任务 start");
-        Map userNeedPushAgainMap = new HashMap();
-        userNeedPushAgainMap.computeIfAbsent("name", v -> TimedSyncUserNeedPushAgainJob.class.getName());
-        quartzService.deleteJob(JobEnum.TIMED_SYNC_USER_NEED_PUSH_AGAIN_JOB.name(), JobEnum.TIMED_SYNC_USER_NEED_PUSH_AGAIN_JOB_GROUP.name());
-        // 用户推送失败再次推送 每分钟推送一次
-        quartzService.addJob(TimedSyncUserNeedPushAgainJob.class, JobEnum.TIMED_SYNC_USER_NEED_PUSH_AGAIN_JOB.name(), JobEnum.TIMED_SYNC_USER_NEED_PUSH_AGAIN_JOB_GROUP.name(), "0 0 0 * * ?", userNeedPushAgainMap);
-        log.info("增加用户推送失败再次推送定时任务 end");
-
 
 //        log.info("增加重新生成pdf定时任务 start");
 //        Map taskJobMap = new HashMap();