KnowledgeController.java 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. package com.redxun.knowledge.controller;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.redxun.common.annotation.ClassDefine;
  4. import com.redxun.common.base.db.BaseService;
  5. import com.redxun.common.base.entity.JsonPageResult;
  6. import com.redxun.common.base.entity.JsonResult;
  7. import com.redxun.common.base.entity.QueryData;
  8. import com.redxun.common.base.search.QueryFilter;
  9. import com.redxun.common.base.search.QueryFilterBuilder;
  10. import com.redxun.common.utils.ExceptionUtil;
  11. import com.redxun.knowledge.entity.dao.Knowledge;
  12. import com.redxun.knowledge.entity.dto.KnowledgeDto;
  13. import com.redxun.knowledge.entity.validate.AddGroup;
  14. import com.redxun.knowledge.entity.vo.KnowledgeVo;
  15. import com.redxun.knowledge.service.KnowledgeServiceImpl;
  16. import com.redxun.web.controller.BaseController;
  17. import io.swagger.annotations.Api;
  18. import io.swagger.annotations.ApiImplicitParam;
  19. import io.swagger.annotations.ApiOperation;
  20. import io.swagger.annotations.ApiParam;
  21. import lombok.extern.slf4j.Slf4j;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.validation.BindingResult;
  24. import org.springframework.validation.annotation.Validated;
  25. import org.springframework.web.bind.annotation.*;
  26. import javax.validation.ConstraintViolation;
  27. import javax.validation.Validator;
  28. import javax.validation.groups.Default;
  29. import java.util.List;
  30. import java.util.Set;
  31. @Slf4j
  32. @RestController
  33. @RequestMapping("/api-knowledge/knowledge")
  34. @Api(tags = "业务--知识表")
  35. @ClassDefine(title = "业务--知识表", alias = "KnowledgeController", path = "/knowledge/knowledge", packages = "", packageName = "子系统名称")
  36. public class KnowledgeController extends BaseController<Knowledge> {
  37. @Autowired
  38. KnowledgeServiceImpl knowledgeService;
  39. @Autowired
  40. private Validator validator;
  41. @Override
  42. public BaseService getBaseService() {
  43. return knowledgeService;
  44. }
  45. @Override
  46. public String getComment() {
  47. return "业务--知识";
  48. }
  49. @ApiOperation(value = "根据分类id查询全部维基知识", httpMethod = "GET")
  50. @GetMapping("/findAllWiki/{categoryId}")
  51. public JsonResult findAllWiki(@PathVariable("categoryId") String categoryId) {
  52. JsonResult jsonResult = JsonResult.getSuccessResult("");
  53. List<Knowledge> wikiList = knowledgeService.findAllWiki(categoryId);
  54. jsonResult.setData(wikiList);
  55. return jsonResult;
  56. }
  57. @ApiOperation(value = "新增知识", httpMethod = "POST")
  58. @PostMapping("create")
  59. public JsonResult create(@RequestBody KnowledgeDto knowledgeDto) {
  60. JsonResult jsonResult = JsonResult.getSuccessResult("新增知识成功!");
  61. if (knowledgeDto.getIsDraft() != null && knowledgeDto.getIsDraft() == 1) {
  62. Set<ConstraintViolation<KnowledgeDto>> violations = validator.validate(knowledgeDto, AddGroup.class);
  63. if (!violations.isEmpty()) {
  64. ConstraintViolation<KnowledgeDto> v = violations.iterator().next();
  65. throw new RuntimeException(v.getMessage());
  66. }
  67. }
  68. if (knowledgeDto.getIsDraft() != null && knowledgeDto.getIsDraft() == 0) {
  69. jsonResult.setMessage("知识暂存成功!");
  70. }
  71. String pkId = null;
  72. try {
  73. pkId = knowledgeService.create(knowledgeDto);
  74. jsonResult.setData(pkId);
  75. } catch (Exception e) {
  76. jsonResult.setMessage(e.getMessage());
  77. jsonResult.setSuccess(false);
  78. }
  79. return jsonResult;
  80. }
  81. @ApiOperation(value = "修改知识", httpMethod = "POST")
  82. @Override
  83. public JsonResult save(@Validated @ApiParam @RequestBody Knowledge entity, BindingResult validResult) {
  84. JsonResult jsonResult = JsonResult.getSuccessResult("");
  85. int update = 0;
  86. try {
  87. update = knowledgeService.update(entity);
  88. } catch (Exception e) {
  89. jsonResult.setMessage(e.getMessage());
  90. jsonResult.setSuccess(false);
  91. }
  92. if (update == -1) {
  93. return JsonResult.Success("知识正在审核中,无法修改");
  94. } else {
  95. if (entity.getIsDraft() != null && entity.getIsDraft() == 0) {
  96. jsonResult.setMessage("知识暂存成功!");
  97. } else {
  98. jsonResult.setMessage("修改知识成功!");
  99. }
  100. return jsonResult;
  101. }
  102. }
  103. @ApiOperation(value = "知识详情", httpMethod = "GET")
  104. @GetMapping("info")
  105. public JsonResult info(@RequestParam(value = "pkId") String pkId,
  106. @RequestParam(value = "isPc", required = false) Integer flag) {
  107. KnowledgeVo knowledgeVo = knowledgeService.info(pkId, flag);
  108. JsonResult jsonResult;
  109. jsonResult = JsonResult.getSuccessResult("");
  110. if (knowledgeVo == null) {
  111. // 知识不存在或者没有权限
  112. jsonResult.setMessage("您查看的知识不存在或您没有访问权限");
  113. jsonResult.setData(1);
  114. } else {
  115. jsonResult.setData(knowledgeVo);
  116. }
  117. return jsonResult;
  118. }
  119. @ApiOperation(value = "知识列表(分页后台)")
  120. @ApiImplicitParam(name = "queryData", value = "查询条件")
  121. @PostMapping("findAllKnowledge")
  122. public JsonPageResult findAllKnowledge(@RequestBody QueryData queryData) {
  123. JsonPageResult jsonResult = JsonPageResult.getSuccess("");
  124. try {
  125. QueryFilter filter = QueryFilterBuilder.createQueryFilter(queryData);
  126. IPage page = knowledgeService.findAllKnowledge(filter);
  127. this.handlePage(page);
  128. jsonResult.setPageData(page);
  129. } catch (Exception e) {
  130. jsonResult.setSuccess(false);
  131. this.logger.error(ExceptionUtil.getExceptionMessage(e));
  132. jsonResult.setMessage(ExceptionUtil.getExceptionMessage(e));
  133. }
  134. return jsonResult;
  135. }
  136. @ApiOperation(value = "删除知识")
  137. @GetMapping("deleteKnowledge")
  138. public JsonResult deleteKnowledge(@RequestParam("knowledgeId") String knowledgeId) {
  139. Boolean result = knowledgeService.deleteKnowledge(knowledgeId);
  140. if (!result) {
  141. return JsonResult.Fail("删除失败,知识已关联其他模块");
  142. }
  143. return JsonResult.Success("删除成功!");
  144. }
  145. @ApiOperation(value = "知识审核")
  146. @ApiImplicitParam(name = "queryData", value = "查询条件")
  147. @PostMapping("findAllAuditKnowledge")
  148. public JsonPageResult findAllAuditKnowledge(@RequestBody QueryData queryData) {
  149. JsonPageResult jsonResult = JsonPageResult.getSuccess("");
  150. try {
  151. QueryFilter filter = QueryFilterBuilder.createQueryFilter(queryData);
  152. IPage page = knowledgeService.findAllAuditKnowledge(filter);
  153. this.handlePage(page);
  154. jsonResult.setPageData(page);
  155. } catch (Exception e) {
  156. jsonResult.setSuccess(false);
  157. this.logger.error(ExceptionUtil.getExceptionMessage(e));
  158. jsonResult.setMessage(ExceptionUtil.getExceptionMessage(e));
  159. }
  160. return jsonResult;
  161. }
  162. @ApiOperation("获取未审核的知识数量")
  163. @GetMapping("getAuditKnowledgeSum")
  164. public JsonResult getAuditKnowledgeSum() {
  165. JsonResult jsonResult = JsonResult.Success();
  166. Integer sum = knowledgeService.getAuditKnowledgeSum();
  167. return jsonResult.setData(sum);
  168. }
  169. @ApiOperation(value = "工作成果&经验案例列表(分页前台)")
  170. @ApiImplicitParam(name = "queryData", value = "查询条件")
  171. @PostMapping("getAllKnowledgeByCategoryId")
  172. public JsonPageResult getAllKnowledgeByCategoryId(@RequestBody QueryData queryData) {
  173. JsonPageResult jsonResult = JsonPageResult.getSuccess("");
  174. try {
  175. QueryFilter filter = QueryFilterBuilder.createQueryFilter(queryData);
  176. IPage page = knowledgeService.getAllKnowledgeByCategoryId(filter);
  177. this.handlePage(page);
  178. jsonResult.setPageData(page);
  179. } catch (Exception e) {
  180. jsonResult.setSuccess(false);
  181. this.logger.error(ExceptionUtil.getExceptionMessage(e));
  182. jsonResult.setMessage(ExceptionUtil.getExceptionMessage(e));
  183. }
  184. return jsonResult;
  185. }
  186. @ApiOperation("知识上传数量 PC")
  187. @GetMapping("getKnowledgeSum")
  188. public JsonResult getKnowledgeSum() {
  189. JsonResult jsonResult = JsonResult.Success();
  190. Integer sum = knowledgeService.getKnowledgeSum();
  191. return jsonResult.setData(sum);
  192. }
  193. }