package com.uas.search.controller; import com.uas.search.annotation.NotEmpty; import com.uas.search.constant.model.SPage; import com.uas.search.jms.JmsListener; import com.uas.search.jms.LuceneMessage; import com.uas.search.jms.LuceneMessageDao; import com.uas.search.jms.LuceneMessageService; import com.uas.search.service.IndexService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; /** * 索引创建相关请求 * * @author sunyj * @since 2016年8月5日 上午11:42:54 */ @Controller @RequestMapping("/index") public class IndexController { @Autowired private LuceneMessageDao luceneMessageDao; @Autowired private IndexService indexService; @Autowired private LuceneMessageService luceneMessageService; @Autowired private JmsListener jmsListener; @RequestMapping("/create") @ResponseBody public String initIndexes(String tableNames, HttpServletRequest request) { List tableNameList = new ArrayList<>(); if (!StringUtils.isEmpty(tableNames)) { String[] strs = tableNames.split(","); for (String str : strs) { tableNameList.add(str.toLowerCase()); } } return String.format("Indexes created success in %.2fs", indexService.createIndexes(tableNameList, true) / 1000.0); } @RequestMapping("/downloadComponentData") @ResponseBody public String downloadComponentDataFromDatabase(Integer startFileIndex, HttpServletRequest request) { return "Data downloaded success in " + indexService.downloadComponentDataFromDatabase(startFileIndex) + " ms."; } @RequestMapping("/downloadGoods") @ResponseBody public String downloadGoods(Integer startFileIndex, HttpServletRequest request) { return "Data downloaded success in " + indexService.downloadGoods(startFileIndex) + " ms."; } @RequestMapping("/multiDownloadGoods") @ResponseBody public String multiDownloadGoods(Integer number, Integer startFileIndex, Integer endFileIndex, HttpServletRequest request) { indexService.multiDownloadGoods(number, startFileIndex, endFileIndex); return "start download"; } @RequestMapping("/listen/start") @ResponseBody public String startListen(Long interval, HttpServletRequest request) { jmsListener.start(interval); return "开启成功"; } @RequestMapping("/listen/stop") @ResponseBody public String stopListen(HttpServletRequest request) { jmsListener.stop(); return "关闭成功"; } @RequestMapping("/listen/restart") @ResponseBody public String restartListen(Long interval, HttpServletRequest request) { if (jmsListener.isRunning()) { jmsListener.stop(); } jmsListener.start(interval); return "重启成功"; } @RequestMapping("/listen/details") @ResponseBody public SPage listenDetails(Integer page, Integer size, HttpServletRequest request) { return luceneMessageService.findAll(page, size); } @RequestMapping("/maintain") @ResponseBody public String maintainIndexes(@NotEmpty("tableName") String tableName, @NotEmpty("dataId") Long dataId, @NotEmpty("methodType") String methodType, String data, HttpServletRequest request) { return "已维护:" + indexService.maintainIndexes(tableName.toLowerCase(), dataId, methodType, data); } @RequestMapping("/dequeue") @ResponseBody public boolean dequeueLuceneQueueMessage(Long id, HttpServletRequest request) { luceneMessageDao.dequeueLuceneMessage(id); return true; } }