PopularFeelingsApi.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. package com.zhiqiyun.open.router.apis;
  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.dliyun.oap.framework.annotation.ServiceMethod;
  6. import com.dliyun.oap.framework.annotation.ServiceMethodBean;
  7. import com.dliyun.oap.framework.response.OapResponse;
  8. import com.zhiqiyun.open.annotation.Permission;
  9. import com.zhiqiyun.open.core.models.statistics.PopularFeelings;
  10. import com.zhiqiyun.open.core.models.statistics.PopularFeelingsPage;
  11. import com.zhiqiyun.open.core.service.PopularFeelingsPageService;
  12. import com.zhiqiyun.open.core.service.PopularFeelingsService;
  13. import com.zhiqiyun.open.core.service.SequenceService;
  14. import com.zhiqiyun.open.mvc.Result;
  15. import com.zhiqiyun.open.mvc.params.statistics.QueryPopularFeelingsPageParam;
  16. import com.zhiqiyun.open.router.request.statistics.*;
  17. import com.zhiqiyun.open.utils.DateUtil;
  18. import lombok.extern.slf4j.Slf4j;
  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 java.util.List;
  25. @Slf4j
  26. @ServiceMethodBean
  27. public class PopularFeelingsApi {
  28. @Autowired
  29. private PopularFeelingsPageService popularFeelingsPageService;
  30. @Autowired
  31. private PopularFeelingsService popularFeelingsService;
  32. @Autowired
  33. private SequenceService sequenceService;
  34. @ServiceMethod(method = "popular.feelings.findPage", title = "互联网舆情监控查询")
  35. public OapResponse findPage(QueryPopularFeelingsRequest request) {
  36. QueryWrapper<PopularFeelings> wrapper = new QueryWrapper<>();
  37. if (StringUtils.isNotBlank(request.getTitle())) {
  38. wrapper.like("title", request.getTitle());
  39. }
  40. if (StringUtils.isNotBlank(request.getKeywords())) {
  41. wrapper.like("keywords", request.getKeywords());
  42. }
  43. if (StringUtils.isNotBlank(request.getDomain())) {
  44. wrapper.like("domain", request.getDomain());
  45. }
  46. Page<PopularFeelings> page = new Page<>(request.getCurrent(), request.getPageSize());
  47. page.addOrder(OrderItem.desc("id"));
  48. Page<PopularFeelings> resultData = this.popularFeelingsService.page(page, wrapper);
  49. return OapResponse.success().setBody(resultData);
  50. }
  51. @ServiceMethod(method = "popular.feelings.add", title = "新建舆情监控")
  52. public OapResponse save(SavePopularFeelingsRequest request) {
  53. PopularFeelings entity = new PopularFeelings();
  54. BeanUtils.copyProperties(request, entity);
  55. entity.setCreatedTime(DateUtil.current());
  56. entity.setCreatedBy(1000L);
  57. entity.setUpdatedTime(DateUtil.current());
  58. entity.setUpdatedBy(1000L);
  59. entity.setId(this.sequenceService.nextId());
  60. this.popularFeelingsService.save(entity);
  61. return OapResponse.success().setBody(entity);
  62. }
  63. @ServiceMethod(method = "popular.feelings.updateById", title = "更新舆情监控")
  64. public OapResponse updateById(UpdatePopularFeelingsRequest request) {
  65. PopularFeelings entity = new PopularFeelings();
  66. BeanUtils.copyProperties(request, entity);
  67. entity.setUpdatedBy(1000L);
  68. entity.setUpdatedTime(DateUtil.current());
  69. this.popularFeelingsService.updateById(entity);
  70. return OapResponse.success().setBody(entity);
  71. }
  72. @ServiceMethod(method = "popular.feelings.deleteByIds", title = "删除舆情监控")
  73. public OapResponse deleteByIds(PopularFeelingsIdsRequest request) {
  74. this.popularFeelingsService.removeByIds(request.getIds());
  75. return OapResponse.success();
  76. }
  77. @ServiceMethod(method = "popular.feelings.start", title = "启动舆情监控")
  78. public OapResponse startSpider(PopularFeelingsIdsRequest request) {
  79. List<PopularFeelings> listData = this.popularFeelingsService.listByIds(request.getIds());
  80. for (PopularFeelings popularFeelings : listData) {
  81. this.popularFeelingsService.start(popularFeelings);
  82. }
  83. return OapResponse.success();
  84. }
  85. @ServiceMethod(method = "popular.feelings.stop", title = "停止舆情监控")
  86. public OapResponse stopSpider(PopularFeelingsIdsRequest request) {
  87. List<PopularFeelings> listData = this.popularFeelingsService.listByIds(request.getIds());
  88. for (PopularFeelings popularFeelings : listData) {
  89. this.popularFeelingsService.stop(popularFeelings);
  90. }
  91. return OapResponse.success();
  92. }
  93. @ServiceMethod(method = "popular.feelings.findDetailPage", title = "分页查询舆情监控详情")
  94. public OapResponse findDetailPage(QueryPopularFeelingsDetailPageRequest request) {
  95. QueryWrapper<PopularFeelingsPage> wrapper = new QueryWrapper<>();
  96. wrapper.select("id", "popular_feelings_id", "url", "title", "spider_time");
  97. wrapper.eq("popular_feelings_id", request.getPopularFeelingsId());
  98. Page<PopularFeelingsPage> page = new Page<>(request.getCurrent(), request.getPageSize());
  99. page.addOrder(OrderItem.desc("id"));
  100. Page<PopularFeelingsPage> resultData = this.popularFeelingsPageService.page(page, wrapper);
  101. return OapResponse.success().setBody(resultData);
  102. }
  103. }