AnalysisCommonController.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. package com.redxun.knowledge.analysis.controller;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.redxun.common.annotation.ClassDefine;
  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.knowledge.analysis.entity.dto.PersonVisitDto;
  9. import com.redxun.knowledge.analysis.entity.page.MyJsonResult;
  10. import com.redxun.knowledge.analysis.entity.vo.*;
  11. import com.redxun.knowledge.analysis.service.*;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.validation.BindingResult;
  17. import org.springframework.web.bind.annotation.*;
  18. import javax.validation.Valid;
  19. import java.util.ArrayList;
  20. import java.util.Date;
  21. import java.util.List;
  22. import java.util.Map;
  23. /**
  24. * 文件名: CommonController
  25. * 作者: zizg
  26. * 时间: 2023/3/17
  27. * 描述:
  28. * 修改人:
  29. * 修改时间:
  30. * 修改内容:
  31. */
  32. @Slf4j
  33. @RestController
  34. @RequestMapping("/api-knowledge/analysis")
  35. @Api(tags = "业务--系统页面访问量统计")
  36. @ClassDefine(title = "业务--系统页面访问量统计", alias = "CommonController", path = "/api-knowledge/analysis", packages = "analysis", packageName = "子系统名称")
  37. public class AnalysisCommonController {
  38. @Autowired
  39. private AnalysisCommonServiceImpl analysisCommonService;
  40. @Autowired
  41. private AnalysisAlbumServiceImpl analysisAlbumService;
  42. @Autowired
  43. private AnalysisMapServiceImpl analysisMapService;
  44. @Autowired
  45. private AnalysisSearchServiceImpl analysisSearchService;
  46. @Autowired
  47. private AnalysisSynthesizeServiceImpl analysisSynthesizeService;
  48. @ApiOperation("PC 各模块整体数量统计")
  49. @GetMapping("totalAmount")
  50. public JsonResult totalAmount() {
  51. Map<String, Object> result = analysisCommonService.totalAmount();
  52. return JsonResult.getSuccessResult(result);
  53. }
  54. @ApiOperation("PC 获取搜索服务访问量分布柱状图数据")
  55. @GetMapping("searchVisitHistogram")
  56. public JsonResult searchVisitHistogram() {
  57. SearchVisitHistogramVo searchVisitHistogramVo = analysisCommonService.searchVisitHistogram();
  58. return JsonResult.getSuccessResult(searchVisitHistogramVo);
  59. }
  60. @ApiOperation("PC 获取搜索服务分词的词云数据")
  61. @GetMapping("searchParticipleWordCloud")
  62. public JsonResult searchParticipleWordCloud(@RequestParam(value = "tops", required = false, defaultValue = "100") Integer tops) {
  63. List<SearchParticipleWordCloudVo> result = analysisCommonService.searchParticipleWordCloud(tops);
  64. return JsonResult.getSuccessResult(result);
  65. }
  66. @ApiOperation("PC 查询各类型(维基、文档)知识数量")
  67. @GetMapping("knowledgeTypeAmount")
  68. public JsonResult knowledgeTypeAmount() {
  69. Map<String, Object> result = analysisCommonService.knowledgeTypeAmount();
  70. return JsonResult.getSuccessResult(result);
  71. }
  72. @ApiOperation("知识类型访问量分布")
  73. @GetMapping("knowledgeTypeVisitProportion")
  74. public JsonResult knowledgeTypeVisitProportion(@RequestParam("type") String type) {
  75. Map<String, Object> result = analysisCommonService.knowledgeTypeVisitProportion(type);
  76. return JsonResult.getSuccessResult(result);
  77. }
  78. @ApiOperation("各一级分类知识创建数量")
  79. @GetMapping("level1KnowledgeHistogram")
  80. public JsonResult level1KnowledgeHistogram(@RequestParam("type") String type,
  81. @RequestParam(value = "sort", required = false) String sort) {
  82. List<KnowledgeCategoryVo> knowledgeCategoryVoList = analysisCommonService.level1KnowledgeHistogram(type, sort);
  83. return JsonResult.getSuccessResult(knowledgeCategoryVoList);
  84. }
  85. @ApiOperation("组织创建知识数量")
  86. @PostMapping("organizationKnowledges")
  87. public JsonPageResult organizationKnowledges(@RequestBody QueryData queryData) {
  88. JsonPageResult jsonResult = JsonPageResult.getSuccess("");
  89. IPage knowledgeCompanyVoList = analysisCommonService.organizationKnowledges(queryData);
  90. jsonResult.setPageData(knowledgeCompanyVoList);
  91. return jsonResult;
  92. }
  93. @ApiOperation("组织创建知识数量(新)")
  94. @GetMapping("organizationKnowledge")
  95. public JsonResult organizationKnowledge(@RequestParam(value = "type",required = false) String type,
  96. @RequestParam("organizationId") String organizationId,
  97. @RequestParam(value = "createTime",required = false) String createTime,
  98. @RequestParam(value = "endTime",required = false) String endTime) {
  99. KnowledgeCompanyVo result = analysisCommonService.organizationKnowledge(type, organizationId,createTime,endTime);
  100. return JsonResult.getSuccessResult(result);
  101. }
  102. @ApiOperation("人员创建知识数量")
  103. @PostMapping("personKnowledge")
  104. public JsonResult personKnowledge(@RequestBody @Valid PersonVisitDto personVisitDto,BindingResult validResult) {
  105. JsonResult jsonResult = JsonResult.getSuccessResult("");
  106. if (validResult.hasErrors()) {
  107. return jsonResult.setMessage("组织Id不能为空");
  108. }
  109. List<KnowledgeCompanyVo> result = analysisCommonService.personKnowledge(personVisitDto);
  110. return JsonResult.getSuccessResult(result);
  111. }
  112. @ApiOperation("专辑创建总量")
  113. @GetMapping("albumAmount")
  114. public JsonResult albumAmount(@RequestParam("type") String type) {
  115. CreateCountTotal result = analysisAlbumService.albumAmount(type);
  116. return JsonResult.getSuccessResult(result);
  117. }
  118. @ApiOperation("专辑详情Top访问量(pv)统计")
  119. @GetMapping("albumDetailVisits")
  120. public JsonResult albumDetailVisits(@RequestParam("type") String type,
  121. @RequestParam(value = "tops", required = false, defaultValue = "10") Integer tops) {
  122. List<AlbumDetailVisitsVo> result = analysisAlbumService.albumDetailVisits(type, tops);
  123. return JsonResult.getSuccessResult(result);
  124. }
  125. @ApiOperation("各一级分类专辑创建数量")
  126. @GetMapping("level1AlbumHistogram")
  127. public JsonResult level1AlbumHistogram(@RequestParam("type") String type,
  128. @RequestParam(value = "sort", required = false) String sort) {
  129. List<AlbumCategoryVo> result = analysisAlbumService.level1AlbumHistogram(type, sort);
  130. return JsonResult.getSuccessResult(result);
  131. }
  132. @ApiOperation("组织创建和访问专辑数量")
  133. @PostMapping("organizationAlbums")
  134. public JsonPageResult organizationAlbums(@RequestBody QueryData queryData) {
  135. JsonPageResult jsonResult = JsonPageResult.getSuccess("");
  136. IPage result = analysisAlbumService.organizationAlbums(queryData);
  137. jsonResult.setPageData(result);
  138. return jsonResult;
  139. }
  140. @ApiOperation("组织创建和访问专辑数量(新)")
  141. @GetMapping("organizationAlbum")
  142. public JsonResult organizationAlbum(@RequestParam(value = "type",required = false) String type,
  143. @RequestParam("organizationId") String organizationId,
  144. @RequestParam(value = "createTime",required = false) String createTime,
  145. @RequestParam(value = "endTime",required = false) String endTime) {
  146. AlbumCompanyVo result = analysisAlbumService.organizationAlbum(type, organizationId,createTime,endTime);
  147. return JsonResult.getSuccessResult(result);
  148. }
  149. @ApiOperation("人员创建和访问专辑数量")
  150. @PostMapping("personAlbum")
  151. public JsonResult personAlbum(@RequestBody @Valid PersonVisitDto personVisitDto,BindingResult validResult) {
  152. JsonResult jsonResult = JsonResult.getSuccessResult("");
  153. if (validResult.hasErrors()) {
  154. return jsonResult.setMessage("组织Id不能为空");
  155. }
  156. List<AlbumCompanyVo> result = analysisAlbumService.personAlbum(personVisitDto);
  157. return JsonResult.getSuccessResult(result);
  158. }
  159. @ApiOperation("地图创建总量")
  160. @GetMapping("mapAmount")
  161. public JsonResult mapAmount(@RequestParam("type") String type) {
  162. CreateCountTotal result = analysisMapService.mapAmount(type);
  163. return JsonResult.getSuccessResult(result);
  164. }
  165. @ApiOperation("各类型地图创建数量")
  166. @GetMapping("typeMapPie")
  167. public JsonResult typeMapPie(@RequestParam("type") String type) {
  168. List<MapTypeCountVo> result = analysisMapService.typeMapPie(type);
  169. return JsonResult.getSuccessResult(result);
  170. }
  171. @ApiOperation("地图页面访问量")
  172. @GetMapping("mapPageHistogram")
  173. public JsonResult mapPageHistogram(@RequestParam("type") String type) {
  174. List<MapPagePvVo> result = analysisMapService.mapPageHistogram(type);
  175. return JsonResult.getSuccessResult(result);
  176. }
  177. @ApiOperation("组织创建和访问地图数量")
  178. @PostMapping("organizationMaps")
  179. public JsonPageResult organizationMaps(@RequestBody QueryData queryData) {
  180. JsonPageResult jsonResult = JsonPageResult.getSuccess("");
  181. IPage result = analysisMapService.organizationMaps(queryData);
  182. jsonResult.setPageData(result);
  183. return jsonResult;
  184. }
  185. @ApiOperation("组织创建和访问地图数量(新)")
  186. @GetMapping("organizationMap")
  187. public JsonResult organizationMap(@RequestParam(value = "type",required = false) String type,
  188. @RequestParam("organizationId") String organizationId,
  189. @RequestParam(value = "createTime",required = false) String createTime,
  190. @RequestParam(value = "endTime",required = false) String endTime) {
  191. MapCompanyVo result = analysisMapService.organizationMap(type, organizationId,createTime,endTime);
  192. return JsonResult.getSuccessResult(result);
  193. }
  194. @ApiOperation("人员创建和访问地图数量")
  195. @PostMapping("personMap")
  196. public JsonResult personMap(@RequestBody @Valid PersonVisitDto personVisitDto,BindingResult validResult) {
  197. JsonResult jsonResult = JsonResult.getSuccessResult("");
  198. if (validResult.hasErrors()) {
  199. return jsonResult.setMessage("组织Id不能为空");
  200. }
  201. List<MapCompanyVo> result = analysisMapService.personMap(personVisitDto);
  202. return JsonResult.getSuccessResult(result);
  203. }
  204. @ApiOperation("各业务系统分布")
  205. @GetMapping("searchSystemDetailVisits")
  206. public JsonResult searchSystemDetailVisits(@RequestParam("type") String type) {
  207. List<SystemDetailVisitsVo> result = analysisSearchService.searchSystemDetailVisits(type);
  208. return JsonResult.getSuccessResult(result);
  209. }
  210. @ApiOperation("组织访问量")
  211. @PostMapping("organizationSearchs")
  212. public JsonPageResult organizationSearchs(@RequestBody QueryData queryData) {
  213. JsonPageResult jsonResult = JsonPageResult.getSuccess("");
  214. Map<String, List> result = analysisSearchService.organizationSearchs(queryData);
  215. MyJsonResult myJsonResult = new MyJsonResult(result.get("rows"), result.get("columns"));
  216. jsonResult.setResult(myJsonResult);
  217. return jsonResult;
  218. }
  219. @ApiOperation("组织访问量(新)")
  220. @GetMapping("organizationSearch")
  221. public JsonResult organizationSearch(@RequestParam(value = "type",required = false) String type,
  222. @RequestParam("organizationId") String organizationId,
  223. @RequestParam(value = "createTime",required = false) String createTime,
  224. @RequestParam(value = "endTime",required = false) String endTime) {
  225. OrganizationSearchVo result = analysisSearchService.organizationSearch(type, organizationId,createTime,endTime);
  226. return JsonResult.getSuccessResult(result);
  227. }
  228. @ApiOperation("人员访问量")
  229. @PostMapping("personSearch")
  230. public JsonResult personSearch(@RequestBody @Valid PersonVisitDto personVisitDto,BindingResult validResult) {
  231. JsonResult jsonResult = JsonResult.getSuccessResult("");
  232. if (validResult.hasErrors()) {
  233. return jsonResult.setMessage("组织Id不能为空");
  234. }
  235. List<OrganizationSearchVo> result = analysisSearchService.personSearch(personVisitDto);
  236. return JsonResult.getSuccessResult(result);
  237. }
  238. @ApiOperation("用户访问总量")
  239. @GetMapping("totalUserVisits")
  240. public JsonResult totalUserVisits(@RequestParam("module") String module,
  241. @RequestParam("type") String type) {
  242. CreateUserView createUserView = analysisSynthesizeService.totalUserVisits(module, type);
  243. return JsonResult.getSuccessResult(createUserView);
  244. }
  245. @ApiOperation("各板块访问量分布")
  246. @GetMapping("moduleUserVisits")
  247. public JsonResult moduleUserVisits(@RequestParam("type") String type) {
  248. Map<String, Object> map = analysisSynthesizeService.moduleUserVisits(type);
  249. return JsonResult.getSuccessResult(map);
  250. }
  251. @ApiOperation("各板块访问量分布(UV)")
  252. @GetMapping("moduleUserUniqueVisits")
  253. public JsonResult moduleUserUniqueVisits(@RequestParam("type") String type) {
  254. Map<String, Object> map = analysisSynthesizeService.moduleUserUniqueVisits(type);
  255. return JsonResult.getSuccessResult(map);
  256. }
  257. @ApiOperation("组织访问量")
  258. @PostMapping("organizationVisits")
  259. public JsonPageResult organizationVisits(@RequestBody QueryData queryData) {
  260. JsonPageResult jsonResult = JsonPageResult.getSuccess("");
  261. IPage result = analysisSynthesizeService.organizationVisits(queryData);
  262. jsonResult.setPageData(result);
  263. return jsonResult;
  264. }
  265. @ApiOperation("组织访问量(新)")
  266. @GetMapping("organizationVisit")
  267. public JsonResult organizationVisit(@RequestParam(value = "type",required = false) String type,
  268. @RequestParam("organizationId") String organizationId,
  269. @RequestParam(value = "createTime",required = false) String createTime,
  270. @RequestParam(value = "endTime",required = false) String endTime) {
  271. SynthesizeCompanyVo result = analysisSynthesizeService.organizationVisit(type, organizationId,createTime,endTime,null);
  272. return JsonResult.getSuccessResult(result);
  273. }
  274. @ApiOperation("人员访问量")
  275. @PostMapping("personVisit")
  276. public JsonResult personVisit(@RequestBody @Valid PersonVisitDto personVisitDto, BindingResult validResult) {
  277. JsonResult jsonResult = JsonResult.getSuccessResult("");
  278. if (validResult.hasErrors()) {
  279. return jsonResult.setMessage("组织Id不能为空");
  280. }
  281. SynthesizeCompanyVo result = analysisSynthesizeService.personVisit(personVisitDto);
  282. return jsonResult.setData(result);
  283. }
  284. }