DcDocumentController.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package com.gqy.web.controller.document;
  2. import com.gqy.common.core.domain.AjaxResult;
  3. import com.gqy.common.core.domain.AjaxResultCQY;
  4. import com.gqy.common.core.domain.entity.SysUser;
  5. import com.gqy.common.core.domain.model.LoginUser;
  6. import com.gqy.common.core.text.Convert;
  7. import com.gqy.common.enums.BusinessType;
  8. import com.gqy.document.domain.vo.PageResult;
  9. import com.gqy.document.domain.Document;
  10. import com.gqy.document.service.IDocumentService;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.security.access.prepost.PreAuthorize;
  15. import org.springframework.web.bind.annotation.PostMapping;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.RequestParam;
  18. import org.springframework.web.bind.annotation.RestController;
  19. import com.gqy.common.annotation.Log;
  20. import com.gqy.common.core.controller.BaseController;
  21. import org.springframework.web.multipart.MultipartFile;
  22. import javax.servlet.http.HttpServletRequest;
  23. /**
  24. * 【请填写功能名称】Controller
  25. *
  26. * @author raycos
  27. * @date 2024-10-30
  28. */
  29. @RestController
  30. @RequestMapping("/document")
  31. public class DcDocumentController extends BaseController
  32. {
  33. private static final Logger log = LoggerFactory.getLogger(DcDocumentController.class);
  34. @Autowired
  35. private IDocumentService documentService;
  36. /**
  37. * 创建文档
  38. */
  39. @PostMapping("/create")
  40. @PreAuthorize("@ss.hasPermi('system:document:add')")
  41. @Log(title = "文档管理", businessType = BusinessType.INSERT)
  42. public AjaxResult create(HttpServletRequest request, @RequestParam(value = "file", required = false) MultipartFile file) {
  43. return documentService.create(request, file);
  44. }
  45. /**
  46. * 分页查询文档列表
  47. *
  48. * @param request HTTP请求对象,包含以下参数:
  49. * page: 页码(默认1)
  50. * pageSize: 每页数量(默认10)
  51. * title: 文档标题(可选)
  52. * category_id: 分类ID(可选)
  53. * user_id: 用户ID(可选)
  54. * @return AjaxResult 返回结果:
  55. * status: 状态码(200成功,500失败)
  56. * message: 提示信息
  57. * data: 分页数据对象
  58. */
  59. @PostMapping("/pageDocument")
  60. public AjaxResultCQY pageDocument(HttpServletRequest request) {
  61. try {
  62. // 4. 设置用户权限(非管理员只能查看自己的文档和管理员的模板)
  63. LoginUser loginUser = getLoginUser();
  64. Integer page = Convert.toInt(request.getParameter("page"), 1);
  65. Integer pageSize = Convert.toInt(request.getParameter("pageSize"), 10);
  66. // 2. 获取查询条件
  67. String title = request.getParameter("title");
  68. Long categoryId = Convert.toLong(request.getParameter("category_id"));
  69. Long userId = loginUser.getUserId();
  70. // 3. 构建查询对象
  71. Document document = new Document();
  72. document.setTitle(title);
  73. document.setCategory_id(categoryId);
  74. document.setUser_id(userId);
  75. document.setStatus(5); // 默认查询使用中状态
  76. if (!SysUser.isAdmin(loginUser.getUser().getUserId())) {
  77. document.setCurrent_user_id(loginUser.getUser().getUserId());
  78. }
  79. // 5. 调用分页查询
  80. PageResult pageResult = documentService.pageDocument(page, pageSize, document);
  81. // 6. 返回成功结果
  82. return AjaxResultCQY.success("查询成功", pageResult);
  83. } catch (Exception e) {
  84. log.error("查询文档列表失败", e);
  85. return AjaxResultCQY.success("查询成功", new PageResult());
  86. }
  87. }
  88. }