KnowledgeController.java 10 KB

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