Quellcode durchsuchen

作者:张哲
时间:2023/1/5
类型:优化
描述:修改bug

ZizgZh vor 2 Jahren
Ursprung
Commit
a6bf49ae0b

+ 10 - 2
src/main/java/com/redxun/knowledge/controller/KnowledgeController.java

@@ -12,6 +12,7 @@ import com.redxun.common.base.search.QueryFilterBuilder;
 import com.redxun.common.utils.ExceptionUtil;
 import com.redxun.knowledge.entity.dao.Knowledge;
 import com.redxun.knowledge.entity.dto.KnowledgeDto;
+import com.redxun.knowledge.entity.vo.KnowledgeVo;
 import com.redxun.knowledge.service.KnowledgeServiceImpl;
 import com.redxun.web.controller.BaseController;
 import io.swagger.annotations.Api;
@@ -67,8 +68,15 @@ public class KnowledgeController extends BaseController<Knowledge> {
     @GetMapping("info")
     public JsonResult info(@RequestParam(value = "pkId") String pkId,
                            @RequestParam(value = "isPc",required = false) Integer flag) {
-        JsonResult jsonResult = JsonResult.getSuccessResult("");
-        jsonResult.setData(knowledgeService.info(pkId,flag));
+        KnowledgeVo knowledgeVo = knowledgeService.info(pkId, flag);
+        JsonResult jsonResult;
+        if (knowledgeVo == null){
+            jsonResult = JsonResult.getFailResult("您查看的知识不存在或您没有权限查看该知识");
+            jsonResult.setData(null);
+        } else {
+            jsonResult = JsonResult.getSuccessResult("");
+            jsonResult.setData(knowledgeVo);
+        }
         return jsonResult;
     }
 

+ 122 - 8
src/main/java/com/redxun/knowledge/service/KnowledgeServiceImpl.java

@@ -155,7 +155,9 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
      */
     public KnowledgeVo info(String pkId,Integer flag) {
         Knowledge knowledge = get(pkId);
-
+        if (knowledge == null){
+            return null;
+        }
         List<KnowledgeApprove> approvalVoList = knowledgeApproveMapper.selectList(new QueryWrapper<KnowledgeApprove>().eq("KNOWLEDGER_ID", pkId).orderByAsc("SORT"));
         List<KnowledgeApprovalVo> approvals = new ArrayList<>();
         // 审核节点
@@ -226,15 +228,127 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
             String slyGrade = osUserDto.getSlyGrade();
             String deptId = osUserDto.getDeptId();
             // 如果知识最终审核通过,判断组织架构/职系/职等是否符合(前台判断)
-            if (knowledge.getApprovalStatus() == 5 && deptId.equals(organizationIdMap.get("organizationId")) &&
-                    sequenceCode.equals(organizationIdMap.get("gradeId")) &&
-                    slyGrade.equals(organizationIdMap.get("gradeLevelId"))){
-                knowledge.setIsOrganizationId(0);
-                // 符合条件,增加点击量
+            if (knowledge.getOrganizationId() == null){
                 knowledgeMapper.updateViewsById(pkId);
+                knowledgeVo.setIsOrganizationId(0);
             } else {
-                // 没有权限(不增加点击量)
-                knowledge.setIsOrganizationId(1);
+                // 如果职系,职等,组织架构id全部为空
+                if (organizationIdMap.get("organizationId") == null && organizationIdMap.get("gradeId") == null &&
+                        organizationIdMap.get("gradeLevelId") == null){
+                    // 符合条件,增加点击量
+                    knowledgeVo.setIsOrganizationId(0);
+                    knowledgeMapper.updateViewsById(pkId);
+                    return knowledgeVo;
+                }
+                // 如果职系,职等为空,组织架构id不为空
+                if (organizationIdMap.get("organizationId") != null && organizationIdMap.get("gradeId") == null &&
+                        organizationIdMap.get("gradeLevelId") == null){
+                    // 比较当前用户的组织架构是否符合条件
+                    if (deptId.equals(organizationIdMap.get("organizationId"))){
+                        // 符合条件,增加点击量
+                        knowledgeVo.setIsOrganizationId(0);
+                        knowledgeMapper.updateViewsById(pkId);
+                        return knowledgeVo;
+                    } else {
+                        // 没有权限(不增加点击量)
+                        knowledgeVo.setIsOrganizationId(1);
+                        return null;
+                    }
+                }
+
+                // 如果组织架构id,职等为空,职系不为空
+                if (organizationIdMap.get("organizationId") == null && organizationIdMap.get("gradeId") != null &&
+                        organizationIdMap.get("gradeLevelId") == null){
+                    // 比较当前用户的职系是否符合条件
+                    if (sequenceCode.equals(organizationIdMap.get("gradeId"))){
+                        // 符合条件,增加点击量
+                        knowledgeVo.setIsOrganizationId(0);
+                        knowledgeMapper.updateViewsById(pkId);
+                        return knowledgeVo;
+                    } else {
+                        // 没有权限(不增加点击量)
+                        knowledgeVo.setIsOrganizationId(1);
+                        return null;
+                    }
+                }
+
+                // 如果组织架构id,职系为空,职等不为空
+                if (organizationIdMap.get("organizationId") == null && organizationIdMap.get("gradeId") == null &&
+                        organizationIdMap.get("gradeLevelId") != null){
+                    // 比较当前用户的职系是否符合条件
+                    if (slyGrade.equals(organizationIdMap.get("gradeLevelId"))){
+                        // 符合条件,增加点击量
+                        knowledgeVo.setIsOrganizationId(0);
+                        knowledgeMapper.updateViewsById(pkId);
+                        return knowledgeVo;
+                    } else {
+                        // 没有权限(不增加点击量)
+                        knowledgeVo.setIsOrganizationId(1);
+                        return null;
+                    }
+                }
+
+                // 如果职等为空,组织架构id,职系不为空
+                if (organizationIdMap.get("organizationId") != null && organizationIdMap.get("gradeId") != null &&
+                        organizationIdMap.get("gradeLevelId") == null){
+                    if (deptId.equals(organizationIdMap.get("organizationId")) && sequenceCode.equals(organizationIdMap.get("gradeId"))){
+                        // 符合条件,增加点击量
+                        knowledgeVo.setIsOrganizationId(0);
+                        knowledgeMapper.updateViewsById(pkId);
+                        return knowledgeVo;
+                    } else {
+                        // 没有权限(不增加点击量)
+                        knowledgeVo.setIsOrganizationId(1);
+                        return null;
+                    }
+                }
+
+                // 如果职系为空,组织架构id,职等不为空
+                if (organizationIdMap.get("organizationId") != null && organizationIdMap.get("gradeId") == null &&
+                        organizationIdMap.get("gradeLevelId") != null){
+                    if (deptId.equals(organizationIdMap.get("organizationId")) && slyGrade.equals(organizationIdMap.get("gradeLevelId"))){
+                        // 符合条件,增加点击量
+                        knowledgeVo.setIsOrganizationId(0);
+                        knowledgeMapper.updateViewsById(pkId);
+                        return knowledgeVo;
+                    } else {
+                        // 没有权限(不增加点击量)
+                        knowledgeVo.setIsOrganizationId(1);
+                        return null;
+                    }
+                }
+
+                // 如果组织架构id为空,职系,职等不为空
+                if (organizationIdMap.get("organizationId") == null && organizationIdMap.get("gradeId") != null &&
+                        organizationIdMap.get("gradeLevelId") != null){
+                    if (sequenceCode.equals(organizationIdMap.get("gradeId")) && slyGrade.equals(organizationIdMap.get("gradeLevelId"))){
+                        // 符合条件,增加点击量
+                        knowledgeVo.setIsOrganizationId(0);
+                        knowledgeMapper.updateViewsById(pkId);
+                        return knowledgeVo;
+                    } else {
+                        // 没有权限(不增加点击量)
+                        knowledgeVo.setIsOrganizationId(1);
+                        return null;
+                    }
+                }
+
+                // 如果组织架构id,职系,职等都不为空
+                if (organizationIdMap.get("organizationId") != null && organizationIdMap.get("gradeId") != null &&
+                        organizationIdMap.get("gradeLevelId") != null){
+                    if (deptId.equals(organizationIdMap.get("organizationId")) &&
+                            sequenceCode.equals(organizationIdMap.get("gradeId")) &&
+                            slyGrade.equals(organizationIdMap.get("gradeLevelId"))){
+                        knowledgeVo.setIsOrganizationId(0);
+                        // 符合条件,增加点击量
+                        knowledgeMapper.updateViewsById(pkId);
+                        return knowledgeVo;
+                    } else {
+                        // 没有权限(不增加点击量)
+                        knowledgeVo.setIsOrganizationId(1);
+                        return null;
+                    }
+                }
             }
         }
         return knowledgeVo;