PopularFeelingsController.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. package com.zhiqiyun.open.mvc.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.OrderItem;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.zhiqiyun.open.annotation.Permission;
  6. import com.zhiqiyun.open.core.models.statistics.PopularFeelings;
  7. import com.zhiqiyun.open.core.models.statistics.PopularFeelingsPage;
  8. import com.zhiqiyun.open.core.models.user.OauthInfo;
  9. import com.zhiqiyun.open.core.service.OauthService;
  10. import com.zhiqiyun.open.core.service.PopularFeelingsPageService;
  11. import com.zhiqiyun.open.core.service.PopularFeelingsService;
  12. import com.zhiqiyun.open.core.service.SequenceService;
  13. import com.zhiqiyun.open.mvc.Result;
  14. import com.zhiqiyun.open.mvc.params.statistics.QueryPopularFeelingsPageParam;
  15. import com.zhiqiyun.open.mvc.params.statistics.QueryPopularFeelingsParam;
  16. import com.zhiqiyun.open.mvc.params.statistics.SavePopularFeelingsParam;
  17. import com.zhiqiyun.open.utils.DateUtil;
  18. import com.zhiqiyun.open.utils.ServletContext;
  19. import org.apache.commons.lang3.StringUtils;
  20. import org.springframework.beans.BeanUtils;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.web.bind.annotation.PostMapping;
  23. import org.springframework.web.bind.annotation.RequestBody;
  24. import org.springframework.web.bind.annotation.RequestMapping;
  25. import org.springframework.web.bind.annotation.RestController;
  26. import javax.validation.Valid;
  27. import java.util.List;
  28. /**
  29. * @author jtoms
  30. */
  31. @RestController
  32. @RequestMapping("/popular/feelings")
  33. public class PopularFeelingsController {
  34. @Autowired
  35. private PopularFeelingsService popularFeelingsService;
  36. @Autowired
  37. private PopularFeelingsPageService popularFeelingsPageService;
  38. @Autowired
  39. private OauthService oauthService;
  40. @Autowired
  41. private SequenceService sequenceService;
  42. @Permission(value = "popular.feelings.find", tags = "查询舆情监控")
  43. @PostMapping("/findPage")
  44. public Result findPage(@RequestBody QueryPopularFeelingsParam param) {
  45. QueryWrapper<PopularFeelings> wrapper = new QueryWrapper<>();
  46. if (StringUtils.isNotBlank(param.getTitle())) {
  47. wrapper.like("title", param.getTitle());
  48. }
  49. if (StringUtils.isNotBlank(param.getKeywords())) {
  50. wrapper.like("keywords", param.getKeywords());
  51. }
  52. if (StringUtils.isNotBlank(param.getSiteUrl())) {
  53. wrapper.like("site_url", param.getSiteUrl());
  54. }
  55. Page<PopularFeelings> page = param.getPage();
  56. page.addOrder(OrderItem.desc("id"));
  57. Page<PopularFeelings> resultData = this.popularFeelingsService.page(page, wrapper);
  58. return Result.instance(Result.Code.SUCCESS).setData(resultData);
  59. }
  60. @Permission(value = "popular.feelings.add", tags = "新建舆情监控")
  61. @PostMapping("/save")
  62. public Result save(@Valid @RequestBody SavePopularFeelingsParam param) throws Exception {
  63. PopularFeelings entity = new PopularFeelings();
  64. BeanUtils.copyProperties(param, entity);
  65. OauthInfo oauthInfo = this.oauthService.getAuth(ServletContext.getAccessToken());
  66. entity.setCreatedTime(DateUtil.current());
  67. entity.setCreatedBy(oauthInfo.getId());
  68. entity.setUpdatedTime(DateUtil.current());
  69. entity.setUpdatedBy(oauthInfo.getId());
  70. entity.setId(this.sequenceService.nextId());
  71. this.popularFeelingsService.save(entity);
  72. return Result.instance(Result.Code.MESSAGE_SUCCESS);
  73. }
  74. @Permission(value = "popular.feelings.edit", tags = "更新舆情监控")
  75. @PostMapping("/updateById")
  76. public Result updateById(Long id, @Valid @RequestBody SavePopularFeelingsParam param) {
  77. PopularFeelings entity = new PopularFeelings();
  78. BeanUtils.copyProperties(param, entity);
  79. OauthInfo oauthInfo = this.oauthService.getAuth(ServletContext.getAccessToken());
  80. entity.setUpdatedBy(oauthInfo.getId());
  81. entity.setUpdatedTime(DateUtil.current());
  82. entity.setId(id);
  83. this.popularFeelingsService.updateById(entity);
  84. return Result.instance(Result.Code.MESSAGE_SUCCESS);
  85. }
  86. @Permission(value = "popular.feelings.delete", tags = "删除舆情监控")
  87. @PostMapping("/deleteByIds")
  88. public Result deleteByIds(@RequestBody List<Long> ids) {
  89. this.popularFeelingsService.removeByIds(ids);
  90. return Result.instance(Result.Code.MESSAGE_SUCCESS);
  91. }
  92. @Permission(value = "popular.feelings.delete", tags = "启动舆情监控")
  93. @PostMapping("/startSpider")
  94. public Result startSpider(@RequestBody List<Long> ids) {
  95. List<PopularFeelings> listData = this.popularFeelingsService.listByIds(ids);
  96. for (PopularFeelings popularFeelings : listData) {
  97. this.popularFeelingsService.start(popularFeelings);
  98. }
  99. return Result.instance(Result.Code.MESSAGE_SUCCESS);
  100. }
  101. @Permission(value = "popular.feelings.delete", tags = "查询舆情监控详情")
  102. @PostMapping("/findDetailPage")
  103. public Result findDetailPage(@RequestBody QueryPopularFeelingsPageParam param) {
  104. QueryWrapper<PopularFeelingsPage> wrapper = new QueryWrapper<>();
  105. wrapper.select("id", "popular_feelings_id", "url", "title", "spider_time");
  106. wrapper.eq("popular_feelings_id", param.getPopularFeelingsId());
  107. Page<PopularFeelingsPage> page = param.getPage();
  108. page.addOrder(OrderItem.desc("id"));
  109. Page<PopularFeelingsPage> resultData = this.popularFeelingsPageService.page(page, wrapper);
  110. return Result.instance(Result.Code.SUCCESS).setData(resultData);
  111. }
  112. }