123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package cn.cslg.pas.controller;
- import cn.cslg.pas.common.core.annotation.Permission;
- import cn.cslg.pas.common.core.base.Constants;
- import cn.cslg.pas.common.core.exception.PermissionException;
- import cn.cslg.pas.common.model.PersonnelVO;
- import cn.cslg.pas.common.model.vo.*;
- import cn.cslg.pas.common.utils.*;
- import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
- import cn.cslg.pas.common.utils.auth.checkAuth;
- import cn.cslg.pas.domain.ProjectExport;
- import cn.cslg.pas.domain.User;
- import cn.cslg.pas.domain.Project;
- import cn.cslg.pas.service.*;
- import cn.dev33.satoken.stp.StpUtil;
- import cn.hutool.core.util.IdUtil;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import lombok.RequiredArgsConstructor;
- import okhttp3.Request;
- import org.springframework.context.annotation.Lazy;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.util.List;
- /**
- * <p>
- * 专题库 前端控制器
- * </p>
- *
- * @author 王岩
- * @since 2021-12-24
- */
- @Tag(name = "专题库")
- @RestController
- @RequestMapping(Constants.API_VERSION_V2 + "/project")
- @RequiredArgsConstructor(onConstructor_ = {@Lazy})
- public class ProjectController {
- private final ProjectService projectService;
- private final CacheUtils cacheUtils;
- private final ProjectExportService projectExportService;
- private final ProjectPatentLinkService projectPatentLinkService;
- private final LoginUtils loginUtils;
- @checkAuth(FunId = 8)
- @PostMapping("list")
- @Operation(summary = "专题库列表")
- public String getPageList(@RequestBody ProjectVO params) {
- return Response.success(projectService.getPageList(params));
- }
- @PostMapping("add")
- @Operation(summary = "新增专题库")
- public String add(@RequestBody Project project) {
- PersonnelVO user = cacheUtils.getLoginUserPersonnel(loginUtils.getId());
- // if (user.getUserType().equals(0)) {
- // throw new PermissionException("用户创建专题库拦截");
- // }
- return projectService.add(project);
- }
- @Permission(roles = {2})
- @PostMapping("edit")
- @Operation(summary = "编辑专题库")
- public String edit(@RequestBody Project project) {
- return projectService.edit(project);
- }
- @Permission(roles = {2})
- @PostMapping("delete")
- @Operation(summary = "删除专题库")
- public String delete(Integer id) {
- return projectService.delete(id);
- }
- @Permission(roles = {1, 2})
- @PostMapping("/patent/delete")
- @Operation(summary = "删除专题库专利")
- public String deletePatent(Integer projectId, String ids) {
- List<Integer> patentIds = StringUtils.changeStringToInteger(ids, ",");
- projectPatentLinkService.deleteByProjectIdAndPatentIds(projectId, patentIds);
- return Response.success(true);
- }
- @GetMapping("total")
- @Operation(summary = "专题库企业应用场景统计数据")
- public String getScenarioAndTypeTotal() {
- return Response.success(projectService.getScenarioAndTypeTotal());
- }
- @GetMapping("/status/total")
- @Operation(summary = "专题库状态统计数据")
- public String getProjectStatusTotal() {
- return Response.success(projectService.getProjectStatusTotal());
- }
- @GetMapping("/type/total")
- @Operation(summary = "专题库调查类型统计数据")
- public String getProjectTypeTotal(String scenario) {
- return Response.success(projectService.getProjectTypeTotal(scenario));
- }
- @GetMapping("chartData")
- @Operation(summary = "专题库图表统计数据")
- public String getChartData() {
- return Response.success();
- }
- @PostMapping("share")
- @Permission(roles = {1, 2})
- @Operation(summary = "分享专题库")
- public String share(Integer id, @RequestBody List<Integer> userIds) {
- return projectService.share(id, userIds);
- }
- @PostMapping("importExcel")
- @Permission(roles = {2})
- @Operation(summary = "根据模板导入专题库信息")
- public String importExcel(MultipartFile file) {
- return projectService.importExcel(file);
- }
- @PostMapping("/export/list")
- @Permission(roles = {2})
- @Operation(summary = "导出专题库信息列表")
- public void exportProjectList(HttpServletResponse response) {
- projectService.exportProject(response);
- }
- }
|