package cn.lili.controller.other; import cn.lili.common.enums.ResultUtil; import cn.lili.common.vo.ResultMessage; import cn.lili.modules.search.entity.dos.HotWordsHistory; import cn.lili.modules.search.entity.dto.HotWordsDTO; import cn.lili.modules.search.entity.dto.HotWordsSearchParams; import cn.lili.modules.search.service.HotWordsHistoryService; import cn.lili.modules.search.service.HotWordsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.Data; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.constraints.NotNull; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.List; /** * 管理端,热词管理 * * @author Chopper * @since 2018-07-04 21:50:52 */ @RestController @Api(tags = "管理端,热词管理") @RequestMapping("/manager/hotwords/hotwords") public class HotWordsManagerController { @Autowired private HotWordsService hotWordsService; @Autowired private HotWordsHistoryService hotWordsHistoryService; @ApiOperation(value = "获取热词") @GetMapping public ResultMessage getHotWords() { return ResultUtil.data(hotWordsService.getHotWords(100)); } @ApiOperation(value = "设置热词") @PostMapping public ResultMessage setHotWords(@Validated HotWordsDTO hotWords) { hotWordsService.setHotWords(hotWords); return ResultUtil.success(); } @ApiOperation(value = "删除热词") @DeleteMapping public ResultMessage deleteWords(String words) { hotWordsService.deleteHotWords(words); return ResultUtil.success(); } @ApiOperation(value = "历史热词") @GetMapping("/history") public ResultMessage deleteWords(HistorySearchParams historySearchParams) { List hotWordsHistoryList = hotWordsHistoryService.queryByDay(historySearchParams.getDate()); Collections.sort(hotWordsHistoryList); return ResultUtil.data(hotWordsHistoryList); } @ApiOperation(value = "热词统计") @GetMapping("/statistics") public ResultMessage deleteWords(HotWordsSearchParams hotWordsSearchParams) { return ResultUtil.data(hotWordsHistoryService.statistics(hotWordsSearchParams)); } } @Data class HistorySearchParams { @DateTimeFormat(pattern = "yyyy-MM-dd") @NotNull(message = "查询日期不能为空") private Date date; }