package com.zhiqiyun.open.mvc.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhiqiyun.open.annotation.Permission; import com.zhiqiyun.open.core.models.statistics.PopularFeelings; import com.zhiqiyun.open.core.models.statistics.PopularFeelingsPage; import com.zhiqiyun.open.core.models.user.OauthInfo; import com.zhiqiyun.open.core.service.OauthService; import com.zhiqiyun.open.core.service.PopularFeelingsPageService; import com.zhiqiyun.open.core.service.PopularFeelingsService; import com.zhiqiyun.open.core.service.SequenceService; import com.zhiqiyun.open.mvc.Result; import com.zhiqiyun.open.mvc.params.statistics.QueryPopularFeelingsPageParam; import com.zhiqiyun.open.mvc.params.statistics.QueryPopularFeelingsParam; import com.zhiqiyun.open.mvc.params.statistics.SavePopularFeelingsParam; import com.zhiqiyun.open.utils.DateUtil; import com.zhiqiyun.open.utils.ServletContext; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; import java.util.List; /** * @author jtoms */ @RestController @RequestMapping("/popular/feelings") public class PopularFeelingsController { @Autowired private PopularFeelingsService popularFeelingsService; @Autowired private PopularFeelingsPageService popularFeelingsPageService; @Autowired private OauthService oauthService; @Autowired private SequenceService sequenceService; @Permission(value = "popular.feelings.find", tags = "查询舆情监控") @PostMapping("/findPage") public Result findPage(@RequestBody QueryPopularFeelingsParam param) { QueryWrapper wrapper = new QueryWrapper<>(); if (StringUtils.isNotBlank(param.getTitle())) { wrapper.like("title", param.getTitle()); } if (StringUtils.isNotBlank(param.getKeywords())) { wrapper.like("keywords", param.getKeywords()); } if (StringUtils.isNotBlank(param.getSiteUrl())) { wrapper.like("site_url", param.getSiteUrl()); } Page page = param.getPage(); page.addOrder(OrderItem.desc("id")); Page resultData = this.popularFeelingsService.page(page, wrapper); return Result.instance(Result.Code.SUCCESS).setData(resultData); } @Permission(value = "popular.feelings.add", tags = "新建舆情监控") @PostMapping("/save") public Result save(@Valid @RequestBody SavePopularFeelingsParam param) throws Exception { PopularFeelings entity = new PopularFeelings(); BeanUtils.copyProperties(param, entity); OauthInfo oauthInfo = this.oauthService.getAuth(ServletContext.getAccessToken()); entity.setCreatedTime(DateUtil.current()); entity.setCreatedBy(oauthInfo.getId()); entity.setUpdatedTime(DateUtil.current()); entity.setUpdatedBy(oauthInfo.getId()); entity.setId(this.sequenceService.nextId()); this.popularFeelingsService.save(entity); return Result.instance(Result.Code.MESSAGE_SUCCESS); } @Permission(value = "popular.feelings.edit", tags = "更新舆情监控") @PostMapping("/updateById") public Result updateById(Long id, @Valid @RequestBody SavePopularFeelingsParam param) { PopularFeelings entity = new PopularFeelings(); BeanUtils.copyProperties(param, entity); OauthInfo oauthInfo = this.oauthService.getAuth(ServletContext.getAccessToken()); entity.setUpdatedBy(oauthInfo.getId()); entity.setUpdatedTime(DateUtil.current()); entity.setId(id); this.popularFeelingsService.updateById(entity); return Result.instance(Result.Code.MESSAGE_SUCCESS); } @Permission(value = "popular.feelings.delete", tags = "删除舆情监控") @PostMapping("/deleteByIds") public Result deleteByIds(@RequestBody List ids) { this.popularFeelingsService.removeByIds(ids); return Result.instance(Result.Code.MESSAGE_SUCCESS); } @Permission(value = "popular.feelings.delete", tags = "启动舆情监控") @PostMapping("/startSpider") public Result startSpider(@RequestBody List ids) { List listData = this.popularFeelingsService.listByIds(ids); for (PopularFeelings popularFeelings : listData) { this.popularFeelingsService.start(popularFeelings); } return Result.instance(Result.Code.MESSAGE_SUCCESS); } @Permission(value = "popular.feelings.delete", tags = "查询舆情监控详情") @PostMapping("/findDetailPage") public Result findDetailPage(@RequestBody QueryPopularFeelingsPageParam param) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.select("id", "popular_feelings_id", "url", "title", "spider_time"); wrapper.eq("popular_feelings_id", param.getPopularFeelingsId()); Page page = param.getPage(); page.addOrder(OrderItem.desc("id")); Page resultData = this.popularFeelingsPageService.page(page, wrapper); return Result.instance(Result.Code.SUCCESS).setData(resultData); } }