Browse Source

数据权限控制

caozixuan 2 years ago
parent
commit
4c8377dbdb

+ 3 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TBSyncTaskMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.entity.TBSyncTask;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.result.SyncListResult;
 import com.qmth.teachcloud.common.enums.PushTypeEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
@@ -26,8 +27,7 @@ public interface TBSyncTaskMapper extends BaseMapper<TBSyncTask> {
      * @param status 任务状态
      * @param type 同步任务类型
      * @param result 任务结果
-     * @param createId 创建人主键
-     * @param orgIds 数据权限集合
+     * @param dpr 数据权限集合
      * @return 分页结果
      */
     IPage<SyncListResult> query(@Param("iPage") Page<SyncListResult> iPage,
@@ -35,6 +35,5 @@ public interface TBSyncTaskMapper extends BaseMapper<TBSyncTask> {
                                 @Param("status") TaskStatusEnum status,
                                 @Param("type") PushTypeEnum type,
                                 @Param("result") TaskResultEnum result,
-                                @Param("createId") Long createId,
-                                @Param("orgIds") Set<Long> orgIds);
+                                @Param("dpr") DataPermissionRule dpr);
 }

+ 8 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBSyncTaskServiceImpl.java

@@ -12,6 +12,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.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.params.UserPushParam;
 import com.qmth.teachcloud.common.bean.result.SyncListResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -20,6 +21,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.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -44,9 +46,6 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
     @Resource
     ExamPaperStructureService examPaperStructureService;
 
-    @Resource
-    ExamPrintPlanService examPrintPlanService;
-
     @Resource
     TeachcloudCommonService teachcloudCommonService;
 
@@ -65,6 +64,9 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
     @Resource
     SysUserService sysUserService;
 
+    @Resource
+    BasicRoleDataPermissionService basicRoleDataPermissionService;
+
     @Transactional
     @Override
     public TBSyncTask saveTask(Long schoolId, Long objectId, PushTypeEnum type, String remark) {
@@ -152,9 +154,10 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
     @Override
     public IPage<SyncListResult> query(Long schoolId, TaskStatusEnum status, PushTypeEnum type, TaskResultEnum result, int pageNumber, int pageSize) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,requestUser.getId(),ServletUtil.getRequest().getServletPath());
 
-        IPage<SyncListResult> page = this.baseMapper.query(new Page<>(pageNumber, pageSize), schoolId, status, type, result, sysUser.getId(), orgIds);
+        IPage<SyncListResult> page = this.baseMapper.query(new Page<>(pageNumber, pageSize), schoolId, status, type, result, dpr);
         List<SyncListResult> list = page.getRecords();
         for (SyncListResult syncListResult : list) {
             syncListResult.setStatus(Objects.nonNull(syncListResult.getStatus()) ? TaskStatusEnum.valueOf(syncListResult.getStatus()).getTitle() : null);

+ 10 - 8
distributed-print-business/src/main/resources/mapper/TBSyncTaskMapper.xml

@@ -32,14 +32,16 @@
             <if test="result != null">
                 and tbst.result = #{result}
             </if>
-            <if test="orgIds != null and orgIds != '' and orgIds.size > 0">
-                AND su.org_id IN
-                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
-            </if>
-            <if test="orgIds == null and createId != null and createId != ''">
-                and tbst.create_id = #{createId}
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND su.id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND su.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
             </if>
         </where>
         order by tbst.create_time desc

+ 0 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/TeachStudentController.java

@@ -1,7 +1,5 @@
 package com.qmth.distributed.print.api;
 
-import com.alibaba.fastjson.JSON;
-import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.params.TeachStudentBatchParam;
 import com.qmth.distributed.print.business.bean.params.TeachStudentParams;

+ 2 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/TBTaskMapper.java

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.common.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.result.TaskListResult;
 import com.qmth.teachcloud.common.entity.TBTask;
 import org.apache.ibatis.annotations.Param;
@@ -25,6 +26,5 @@ public interface TBTaskMapper extends BaseMapper<TBTask> {
                                        @Param("status") String status,
                                        @Param("type") String type,
                                        @Param("result") String result,
-                                       @Param("createId") Long createId,
-                                       @Param("orgIds") Set<Long> orgIds);
+                                       @Param("dpr") DataPermissionRule dpr);
 }

+ 12 - 6
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TBTaskServiceImpl.java

@@ -5,6 +5,7 @@ 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.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.bean.result.TaskListResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -15,6 +16,7 @@ import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
 import com.qmth.teachcloud.common.mapper.TBTaskMapper;
+import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.JacksonUtil;
@@ -43,6 +45,8 @@ public class TBTaskServiceImpl extends ServiceImpl<TBTaskMapper, TBTask> impleme
 
     @Resource
     private TeachcloudCommonService teachcloudCommonService;
+    @Resource
+    private BasicRoleDataPermissionService basicRoleDataPermissionService;
 
     @Resource
     TBTaskMapper tbTaskMapper;
@@ -202,11 +206,12 @@ public class TBTaskServiceImpl extends ServiceImpl<TBTaskMapper, TBTask> impleme
     @Override
     public IPage<TaskListResult> query(IPage<Map> iPage, Long schoolId, Long printPlanId, TaskStatusEnum status, TaskTypeEnum type, TaskResultEnum result) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        Set<Long> orgIds = null;
-        if (TaskTypeEnum.CREATE_PDF.equals(type)) {
-            orgIds = teachcloudCommonService.listSubOrgIds(null);
-        }
-        return tbTaskMapper.query(iPage, schoolId, printPlanId, Objects.nonNull(status) ? status.name() : null, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(result) ? result.name() : null, sysUser.getId(), orgIds);
+//        Set<Long> orgIds = null;
+//        if (TaskTypeEnum.CREATE_PDF.equals(type)) {
+//            orgIds = teachcloudCommonService.listSubOrgIds(null);
+//        }
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,sysUser.getId(),ServletUtil.getRequest().getServletPath());
+        return tbTaskMapper.query(iPage, schoolId, printPlanId, Objects.nonNull(status) ? status.name() : null, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(result) ? result.name() : null, dpr);
     }
 
     /**
@@ -265,6 +270,7 @@ public class TBTaskServiceImpl extends ServiceImpl<TBTaskMapper, TBTask> impleme
     public IPage<TaskListResult> queryResult(Page<Map> iPage, TaskStatusEnum status, TaskTypeEnum type, TaskResultEnum result) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        return tbTaskMapper.query(iPage, schoolId, null, Objects.nonNull(status) ? status.name() : null, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(result) ? result.name() : null, sysUser.getId(), null);
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,sysUser.getId(),ServletUtil.getRequest().getServletPath());
+        return tbTaskMapper.query(iPage, schoolId, null, Objects.nonNull(status) ? status.name() : null, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(result) ? result.name() : null, dpr);
     }
 }

+ 10 - 8
teachcloud-common/src/main/resources/mapper/TBTaskMapper.xml

@@ -38,14 +38,16 @@
                 <if test="result != null and result != ''">
                     and tbt.result = #{result}
                 </if>
-                <if test="orgIds != null and orgIds != '' and orgIds.size > 0">
-                    AND su.org_id IN
-                    <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
-                        #{item}
-                    </foreach>
-                </if>
-                <if test="orgIds == null and createId != null and createId != ''">
-                    and tbt.create_id = #{createId}
+                <if test="dpr != null">
+                    <if test="dpr.requestUserId != null">
+                        AND su.id = #{dpr.requestUserId}
+                    </if>
+                    <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                        AND su.org_id IN
+                        <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                            #{item}
+                        </foreach>
+                    </if>
                 </if>
             </where>
             order by tbt.create_time desc