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; /** *
* 专题库 前端控制器 *
* * @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