Explorar o código

三级校审复核问题汇总部分代码

徐滕 hai 1 semana
pai
achega
0feb13bc35

+ 41 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/commonIssue/controller/CommonIssueController.java

@@ -80,4 +80,45 @@ public class CommonIssueController {
     public ResponseEntity getEnabledList(@RequestParam(value = "auditLevel", required = false) String auditLevel) {
         return ResponseEntity.ok(commonIssueService.getEnabledList(auditLevel));
     }
+
+    /**
+     * 获取树结构数据(含各节点计数)
+     */
+    @ApiLog("获取树结构数据")
+    @GetMapping("getTreeData")
+    public ResponseEntity getTreeData() {
+        return ResponseEntity.ok(commonIssueService.getTreeData());
+    }
+
+    /**
+     * 获取所有分类列表(供下拉选择)
+     */
+    @ApiLog("获取分类列表")
+    @GetMapping("getCategoryList")
+    public ResponseEntity getCategoryList() {
+        return ResponseEntity.ok(commonIssueService.getCategoryList());
+    }
+
+    /**
+     * 批量更新状态(启用/停用)
+     */
+    @ApiLog("批量更新状态")
+    @PreAuthorize("hasAuthority('program:commonIssue:edit')")
+    @PostMapping("updateStatus")
+    public ResponseEntity updateStatus(@RequestBody UpdateStatusParam param) {
+        return commonIssueService.batchUpdateStatus(param.getIds(), param.getStatus());
+    }
+
+    /**
+     * 请求参数封装
+     */
+    public static class UpdateStatusParam {
+        private String ids;
+        private String status;
+
+        public String getIds() { return ids; }
+        public void setIds(String ids) { this.ids = ids; }
+        public String getStatus() { return status; }
+        public void setStatus(String status) { this.status = status; }
+    }
 }

+ 2 - 2
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/commonIssue/dto/CommonIssueDto.java

@@ -1,13 +1,13 @@
 package com.jeeplus.assess.program.commonIssue.dto;
 
-import com.jeeplus.core.service.dto.BaseDTO;
+import com.jeeplus.core.domain.BaseEntity;
 import lombok.Data;
 
 /**
  * 常见漏洞字典 DTO
  */
 @Data
-public class CommonIssueDto extends BaseDTO {
+public class CommonIssueDto extends BaseEntity {
 
     /**
      * 漏洞名称

+ 63 - 3
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/commonIssue/service/CommonIssueService.java

@@ -11,13 +11,13 @@ import com.google.common.collect.Lists;
 import com.jeeplus.assess.program.commonIssue.domain.CommonIssue;
 import com.jeeplus.assess.program.commonIssue.dto.CommonIssueDto;
 import com.jeeplus.assess.program.commonIssue.mapper.CommonIssueMapper;
-import com.jeeplus.assess.program.commonIssue.service.mapstruct.CommonIssueWrapper;
+import org.springframework.beans.BeanUtils;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -37,7 +37,8 @@ public class CommonIssueService extends ServiceImpl<CommonIssueMapper, CommonIss
     }
 
     public ResponseEntity save(CommonIssueDto dto) {
-        CommonIssue entity = CommonIssueWrapper.INSTANCE.toEntity(dto);
+        CommonIssue entity = new CommonIssue();
+        BeanUtils.copyProperties(dto, entity);
         this.saveOrUpdate(entity);
         return ResponseEntity.ok("保存成功");
     }
@@ -63,4 +64,63 @@ public class CommonIssueService extends ServiceImpl<CommonIssueMapper, CommonIss
         wrapper.orderByAsc("category", "sort_order");
         return this.list(wrapper);
     }
+
+    /**
+     * 获取树结构数据(含各节点计数)
+     */
+    public List<Map<String, Object>> getTreeData() {
+        List<Map<String, Object>> tree = new ArrayList<>();
+        // 全部节点
+        long totalCount = this.count(new QueryWrapper<CommonIssue>().eq("del_flag", 0));
+        Map<String, Object> allNode = new LinkedHashMap<>();
+        allNode.put("id", "all");
+        allNode.put("label", "全部");
+        allNode.put("count", totalCount);
+        tree.add(allNode);
+        // 一级/二级/三级
+        String[] levels = {"1", "2", "3"};
+        String[] levelNames = {"一级校审", "二级校审", "三级校审"};
+        for (int i = 0; i < levels.length; i++) {
+            long count = this.count(new QueryWrapper<CommonIssue>().eq("del_flag", 0).eq("audit_level", levels[i]));
+            Map<String, Object> node = new LinkedHashMap<>();
+            node.put("id", levels[i]);
+            node.put("label", levelNames[i]);
+            node.put("count", count);
+            tree.add(node);
+        }
+        return tree;
+    }
+
+    /**
+     * 获取所有分类列表(去重)
+     */
+    public List<String> getCategoryList() {
+        List<CommonIssue> list = this.list(new QueryWrapper<CommonIssue>()
+                .eq("del_flag", 0)
+                .isNotNull("category")
+                .ne("category", "")
+                .select("category")
+                .groupBy("category")
+                .orderByAsc("category"));
+        return list.stream().map(CommonIssue::getCategory).distinct().collect(Collectors.toList());
+    }
+
+    /**
+     * 批量更新状态
+     */
+    public ResponseEntity batchUpdateStatus(String ids, String status) {
+        if (StrUtil.isBlank(ids) || StrUtil.isBlank(status)) {
+            return ResponseEntity.ok("参数错误");
+        }
+        String[] idArray = ids.split(",");
+        List<CommonIssue> updateList = new ArrayList<>();
+        for (String id : idArray) {
+            CommonIssue entity = new CommonIssue();
+            entity.setId(id);
+            entity.setStatus(status);
+            updateList.add(entity);
+        }
+        this.updateBatchById(updateList);
+        return ResponseEntity.ok("操作成功");
+    }
 }

+ 0 - 17
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/commonIssue/service/mapstruct/CommonIssueWrapper.java

@@ -1,17 +0,0 @@
-package com.jeeplus.assess.program.commonIssue.service.mapstruct;
-
-import com.jeeplus.assess.program.commonIssue.domain.CommonIssue;
-import com.jeeplus.assess.program.commonIssue.dto.CommonIssueDto;
-import com.jeeplus.core.mapstruct.EntityWrapper;
-import org.mapstruct.Mapper;
-import org.mapstruct.ReportingPolicy;
-import org.mapstruct.factory.Mappers;
-
-/**
- * CommonIssue Wrapper
- */
-@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
-public interface CommonIssueWrapper extends EntityWrapper<CommonIssueDto, CommonIssue> {
-
-    CommonIssueWrapper INSTANCE = Mappers.getMapper(CommonIssueWrapper.class);
-}

+ 4 - 3
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/issueRecord/controller/IssueRecordController.java

@@ -20,10 +20,10 @@ public class IssueRecordController {
     private IssueRecordService issueRecordService;
 
     /**
-     * 批量保存漏洞标记记录(驳回时调用)
+     * 批量保存漏洞标记记录(校审提交时调用)
      */
     @ApiLog("保存漏洞标记记录")
-    @PreAuthorize("hasAuthority('program:issueRecord:save')")
+    @PreAuthorize("hasAuthority('program:registered:edit')")
     @PostMapping("saveRecords")
     public ResponseEntity saveRecords(@RequestBody SaveRecordsParam param) {
         return issueRecordService.saveIssueRecords(
@@ -39,7 +39,7 @@ public class IssueRecordController {
      * 删除标记记录(管理员操作)
      */
     @ApiLog("删除漏洞标记记录")
-    @PreAuthorize("hasAuthority('program:issueRecord:del')")
+    @PreAuthorize("hasAuthority('program:registered:del')")
     @DeleteMapping("delete")
     public ResponseEntity delete(String ids) {
         return issueRecordService.deleteByIds(ids);
@@ -51,6 +51,7 @@ public class IssueRecordController {
      * @param auditLevel 校审级别
      */
     @ApiLog("查询漏洞提醒")
+    @PreAuthorize("hasAuthority('program:registered:view')")
     @GetMapping("getReminders")
     public ResponseEntity<List<Map<String, Object>>> getReminders(
             @RequestParam("targetUserId") String targetUserId,