123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- package com.lqkj.link.module.zone.controller;
- import com.lqkj.link.message.MessageBean;
- import com.lqkj.link.module.authority.service.UserInfoService;
- import com.lqkj.link.module.base.service.BaseService;
- import com.lqkj.link.module.jwt.service.JwtService;
- import com.lqkj.link.module.zone.domain.ModelCategory;
- import com.lqkj.link.module.zone.domain.ModelInfo;
- import com.lqkj.link.module.zone.service.ResourceService;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.Parameter;
- import io.swagger.v3.oas.annotations.media.Content;
- import io.swagger.v3.oas.annotations.media.Schema;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import jakarta.servlet.http.HttpServletRequest;
- import org.apache.commons.compress.archivers.ArchiveException;
- import org.apache.commons.lang3.StringUtils;
- import org.aspectj.bridge.Message;
- import org.springframework.data.domain.Page;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.IOException;
- import java.util.List;
- import java.util.Map;
- import static com.lqkj.link.APIVersion.VERSION_V1;
- @RestController
- @RequestMapping("/resource")
- @Tag(name = "资源管理", description = "资源管理")
- public class ResourceController {
- private final ResourceService resourceService;
- private final BaseService baseService;
- private final JwtService jwtService;
- private final UserInfoService userInfoService;
- public ResourceController(ResourceService resourceService, BaseService baseService, JwtService jwtService, UserInfoService userInfoService) {
- this.resourceService = resourceService;
- this.baseService = baseService;
- this.jwtService = jwtService;
- this.userInfoService = userInfoService;
- }
- @Operation(
- summary = "5.1.3.5 资源分页接口",
- description = "5.1.3.1 资源分页接口",
- parameters = {
- @Parameter(name = "name", description = "搜索关键词"),
- @Parameter(name = "page", description = "页码"),
- @Parameter(name = "pageSize", description = "每页数据条数")
- }
- )
- @PostMapping("/manage/pageQuery")
- public MessageBean<Page<ModelCategory>> pageQueryTemplate(@RequestParam(required = false, defaultValue = "") String name,
- @RequestParam(required = false, defaultValue = "0") Integer page,
- @RequestParam(required = false, defaultValue = "10") Integer pageSize){
- return MessageBean.ok(resourceService.pageQuery(name, page, pageSize), "资源分页接口");
- }
- @Operation(
- summary = "5.1.3.25 资源详情接口",
- description = "5.1.3.25 资源详情接口",
- parameters = {
- @Parameter(name = "categoryId", description = "资源ID")
- }
- )
- @PostMapping("/manage/detail")
- public MessageBean<ModelCategory> detail(@RequestParam Integer categoryId) {
- return MessageBean.ok(resourceService.detail(categoryId), "获取资源详情");
- }
- @Operation(
- summary = "5.1.3.26 上传图标文件",
- description = "5.1.3.26 上传图标文件",
- parameters = {
- @Parameter(name = "file", description = "图标文件", required = true)
- }
- )
- @PostMapping("/manage/uploadImg")
- public MessageBean<String> uploadImg(@RequestParam MultipartFile file) {
- return baseService.uploadImg(file, "resource/icon/");
- }
- @Operation(
- summary = "5.1.3.6 资源保存接口",
- description = "5.1.3.6 资源保存接口",
- requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(
- description = "资源信息对象",
- required = true,
- content = @Content(
- mediaType = "application/json",
- schema = @Schema(implementation = ModelCategory.class)
- )
- )
- )
- @PostMapping("/manage/save")
- public MessageBean<Object> save(@RequestBody ModelCategory category) throws IOException, ArchiveException {
- String msg = resourceService.save(category);
- if (StringUtils.isNotBlank(msg)) return MessageBean.error(msg);
- return MessageBean.ok(null, "资源保存接口");
- }
- @Operation(
- summary = "5.1.3.7 模型上传接口",
- description = "5.1.3.7 模型上传接口",
- parameters = {
- @Parameter(name = "file", description = "模型文件", required = true)
- }
- )
- @PostMapping({"/manage/addModel", "/" + VERSION_V1 + "/addModel"})
- public MessageBean<String> addModel(MultipartFile file,
- HttpServletRequest request) {
- String authHeader = request.getHeader("Authorization");
- String userCode = jwtService.decryptUsernameWithHeader(authHeader);
- Integer userId = userInfoService.detailByUserCode(userCode).getUserId();
- return baseService.uploadModel(file, "resource/model/" + userId + "/");
- }
- @Operation(
- summary = "5.1.3.33 空间信息json文件上传接口",
- description = "5.1.3.33 空间信息json文件上传接口",
- parameters = {
- @Parameter(name = "file", description = "空间信息json文件上传接口", required = true)
- }
- )
- @PostMapping({"/" + VERSION_V1 + "/addJsonFile"})
- public MessageBean<String> addJsonFile(MultipartFile file) {
- return baseService.uploadJsonFile(file, "resource/model/json/");
- }
- @Operation(
- summary = "5.1.3.7 模型压缩文件上传接口",
- description = "5.1.3.7 模型压缩文件上传接口",
- parameters = {
- @Parameter(name = "file", description = "模型压缩文件,只支持zip格式", required = true)
- }
- )
- @PostMapping({"/manage/addModelCompress"})
- public MessageBean<String> addModelCompress(MultipartFile file) {
- return baseService.uploadModelCompress(file, "resource/model/");
- }
- @Operation(
- summary = "5.1.3.8 资源删除接口",
- description = "5.1.3.8 资源删除接口",
- parameters = {
- @Parameter(name = "categoryId", description = "资源分类ID", required = true)
- }
- )
- @PostMapping({"/manage/delete", "/" + VERSION_V1 + "/deletePersonal"})
- public MessageBean<String > delete(@RequestParam List<Integer> categoryId) {
- resourceService.deleteCategory(categoryId);
- return MessageBean.ok(null, "删除资源");
- }
- @Operation(
- summary = "5.1.3.27 模型删除接口",
- description = "5.1.3.27 模型删除接口",
- parameters = {
- @Parameter(name = "modelId", description = "模型信息ID", required = true)
- }
- )
- @PostMapping({"/manage/deleteModel","/" + VERSION_V1 + "/deleteModel"})
- public MessageBean<Object> deleteModel(@RequestParam Integer modelId) {
- resourceService.deleteModel(modelId);
- return MessageBean.ok(null, "模型删除接口");
- }
- @Operation(
- summary = "5.1.2.19 资源分类列表接口",
- description = "5.1.2.19 资源分类列表接口"
- )
- @PostMapping("/" + VERSION_V1 + "/categories")
- public List<Map<String, Object>> resourceCategory(HttpServletRequest request) {
- String authHeader = request.getHeader("Authorization");
- String userCode = jwtService.decryptUsernameWithHeader(authHeader);
- return resourceService.resourceCategory(userCode);
- }
- @Operation(
- summary = "5.1.2.20 模型列表接口",
- description = "5.1.2.20 模型列表接口"
- )
- @PostMapping("/" + VERSION_V1 + "/models")
- public List<ModelInfo> models(HttpServletRequest request) {
- String authHeader = request.getHeader("Authorization");
- String userCode = jwtService.decryptUsernameWithHeader(authHeader);
- return resourceService.models(userCode);
- }
- @Operation(
- summary = "5.1.2.21 个人文件夹保存接口",
- description = "5.1.2.21 个人文件夹保存接口",
- requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(
- description = "资源信息对象",
- required = true,
- content = @Content(
- mediaType = "application/json",
- schema = @Schema(implementation = ModelCategory.class)
- )
- )
- )
- @PostMapping("/" + VERSION_V1 + "/savePersonal")
- public MessageBean<ModelCategory> savePersonal(@RequestBody ModelCategory category,
- HttpServletRequest request) {
- String authHeader = request.getHeader("Authorization");
- String userCode = jwtService.decryptUsernameWithHeader(authHeader);
- Map<String, Object> result = resourceService.savePersonal(category, userCode);
- if (result.containsKey("msg")) return MessageBean.error(String.valueOf(result.get("msg")));
- return MessageBean.ok((ModelCategory) result.get("category"), "个人文件夹保存接口");
- }
- @Operation(
- summary = "5.1.2.31 模型信息保存接口",
- description = "5.1.2.31 模型信息保存接口",
- requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(
- description = "模型信息对象",
- required = true,
- content = @Content(
- mediaType = "application/json",
- schema = @Schema(implementation = ModelInfo.class)
- )
- )
- )
- @PostMapping("/" + VERSION_V1 + "/saveModel")
- public MessageBean<ModelInfo> saveModel(@RequestBody ModelInfo modelInfo) {
- return MessageBean.ok(resourceService.saveModel(modelInfo), "个人文件夹保存接口");
- }
- @PostMapping("/" + VERSION_V1 + "/needRefresh")
- public MessageBean<Boolean> needRefresh(HttpServletRequest request) {
- String authHeader = request.getHeader("Authorization");
- String userCode = jwtService.decryptUsernameWithHeader(authHeader);
- return MessageBean.ok(resourceService.needRefreshResource(userCode), "资源更新检查");
- }
- }
|