xiaofei 1 год назад
Родитель
Сommit
68a1e3f1f2

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TPProfessionalMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.bean.dto.professional.ProfessionalDto;
 import com.qmth.distributed.print.business.entity.TPProfessional;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import org.apache.ibatis.annotations.Param;
 
 /**
@@ -17,5 +18,5 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface TPProfessionalMapper extends BaseMapper<TPProfessional> {
 
-    IPage<ProfessionalDto> pageData(@Param("page") Page<ProfessionalDto> page, @Param("schoolId") Long schoolId, @Param("name") String name, @Param("orgId") Long orgId);
+    IPage<ProfessionalDto> pageData(@Param("page") Page<ProfessionalDto> page, @Param("schoolId") Long schoolId, @Param("name") String name, @Param("orgId") Long orgId, @Param("dpr") DataPermissionRule dpr);
 }

+ 7 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TPProfessionalServiceImpl.java

@@ -10,7 +10,9 @@ import com.qmth.distributed.print.business.mapper.TPProfessionalMapper;
 import com.qmth.distributed.print.business.service.TPProfessionalService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.service.TPRequirementService;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -32,11 +34,15 @@ public class TPProfessionalServiceImpl extends ServiceImpl<TPProfessionalMapper,
 
     @Resource
     private TPRequirementService tpRequirementService;
+    @Resource
+    private BasicRoleDataPermissionService basicRoleDataPermissionService;
 
     @Override
     public IPage<ProfessionalDto> pageData(Page<ProfessionalDto> page, String name, Long orgId) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        return this.baseMapper.pageData(page, schoolId, name, orgId);
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, requestUser.getId(), ServletUtil.getRequest().getServletPath());
+        return this.baseMapper.pageData(page, schoolId, name, orgId, dpr);
     }
 
     @Transactional

+ 11 - 0
distributed-print-business/src/main/resources/mapper/TPProfessionalMapper.xml

@@ -39,6 +39,17 @@
             <if test="orgId != null">
                 and tpp.org_id = #{orgId}
             </if>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND tpp.create_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>
     </select>
 

+ 8 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/SysOrgController.java

@@ -10,6 +10,7 @@ import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
 import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.SysOrgService;
+import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -21,6 +22,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.util.Set;
 
 /**
  * <p>
@@ -40,6 +42,8 @@ public class SysOrgController {
 
     @Resource
     private PrintCommonService printCommonService;
+    @Resource
+    private TeachcloudCommonService teachcloudCommonService;
 
     /**
      * 查询机构树
@@ -50,8 +54,10 @@ public class SysOrgController {
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     public Result list(@RequestParam(value = "specialPrivilege", required = false) RoleTypeEnum specialPrivilege,
                        @RequestParam(value = "withoutPrintingRoom", required = false) boolean withoutPrintingRoom,
-                       @ApiParam(value = "科目编码") @RequestParam(required = false) String courseCode) {
-        return ResultUtil.ok(sysOrgService.listOrgTree(specialPrivilege, withoutPrintingRoom, courseCode));
+                       @ApiParam(value = "科目编码") @RequestParam(required = false) String courseCode,
+                       @ApiParam(value = "父机构ID") @RequestParam(required = false) Long orgId) {
+        Set<Long> longSet = teachcloudCommonService.listSubOrgIds(orgId);
+        return ResultUtil.ok(sysOrgService.listOrgTree(specialPrivilege, withoutPrintingRoom, courseCode, longSet));
     }
 
     /**

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysOrgService.java

@@ -28,9 +28,10 @@ public interface SysOrgService extends IService<SysOrg> {
      * @param specialPrivilegeEnum 特殊权限
      * @param withoutPrintingRoom  是否去除印刷室机构
      * @param courseCode
+     * @param orgId
      * @return 查询到的机构
      */
-    List<OrgDto> listOrgTree(RoleTypeEnum specialPrivilegeEnum, boolean withoutPrintingRoom, String courseCode);
+    List<OrgDto> listOrgTree(RoleTypeEnum specialPrivilegeEnum, boolean withoutPrintingRoom, String courseCode, Set<Long> orgId);
 
     /**
      * 获取所有机构

+ 4 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -64,12 +64,11 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     private SysOrgMapper sysOrgMapper;
     @Resource
     private CommonCacheService commonCacheService;
-
     @Resource
     private BasicCourseService basicCourseService;
 
     @Override
-    public List<OrgDto> listOrgTree(RoleTypeEnum specialPrivilegeEnum, boolean withoutPrintingRoom, String courseCode) {
+    public List<OrgDto> listOrgTree(RoleTypeEnum specialPrivilegeEnum, boolean withoutPrintingRoom, String courseCode, Set<Long> orgIds) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
 //        List<SysUserResult> sysUserResultList = sysUserService.findSysUserResultList();
 //        List<SysUserResult> finalSysUserResultList = sysUserResultList.stream()
@@ -107,6 +106,9 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         if (withoutPrintingRoom) {
             orgList = orgList.stream().filter(e -> !OrgTypeEnum.PRINTING_HOUSE.name().equals(e.getType())).collect(Collectors.toList());
         }
+        if (CollectionUtils.isNotEmpty(orgIds)) {
+            orgList = orgList.stream().filter(e -> orgIds.contains(e.getId())).collect(Collectors.toList());
+        }
         Map<Long, OrgDto> map = orgList.stream()
                 .peek(e -> {
                     // 加入机构下所有人员查询

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

@@ -33,7 +33,6 @@ import org.springframework.util.FileCopyUtils;
 import org.springframework.util.LinkedMultiValueMap;
 
 import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -657,7 +656,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         if (orgId == null) {
             return null;
         }
-        List<OrgDto> orgDtos = sysOrgService.listOrgTree(null, false, null);
+        List<OrgDto> orgDtos = sysOrgService.listOrgTree(null, false, null, null);
         Set<Long> stringSet = new HashSet<>();
         stringSet.add(orgId);
         stringSet = getOrgIds(stringSet, orgDtos, orgId);

+ 1 - 1
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SysOrgController.java

@@ -42,7 +42,7 @@ public class SysOrgController {
     @ApiOperation(value = "查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     public Result list() {
-        List<OrgDto> orgDtoList = sysOrgService.listOrgTree(null, false, null);
+        List<OrgDto> orgDtoList = sysOrgService.listOrgTree(null, false, null, null);
         return ResultUtil.ok(orgDtoList);
     }