IndexController.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package com.uas.search.controller;
  2. import com.uas.search.annotation.NotEmpty;
  3. import com.uas.search.constant.model.SPage;
  4. import com.uas.search.jms.JmsListener;
  5. import com.uas.search.jms.LuceneMessage;
  6. import com.uas.search.jms.LuceneMessageDao;
  7. import com.uas.search.jms.LuceneMessageService;
  8. import com.uas.search.service.IndexService;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Controller;
  11. import org.springframework.util.StringUtils;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.ResponseBody;
  14. import javax.servlet.http.HttpServletRequest;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. /**
  18. * 索引创建相关请求
  19. *
  20. * @author sunyj
  21. * @since 2016年8月5日 上午11:42:54
  22. */
  23. @Controller
  24. @RequestMapping("/index")
  25. public class IndexController {
  26. @Autowired
  27. private LuceneMessageDao luceneMessageDao;
  28. @Autowired
  29. private IndexService indexService;
  30. @Autowired
  31. private LuceneMessageService luceneMessageService;
  32. @Autowired
  33. private JmsListener jmsListener;
  34. @RequestMapping("/create")
  35. @ResponseBody
  36. public String initIndexes(String tableNames, HttpServletRequest request) {
  37. List<String> tableNameList = new ArrayList<>();
  38. if (!StringUtils.isEmpty(tableNames)) {
  39. String[] strs = tableNames.split(",");
  40. for (String str : strs) {
  41. tableNameList.add(str.toLowerCase());
  42. }
  43. }
  44. return String.format("Indexes created success in %.2fs",
  45. indexService.createIndexes(tableNameList, true) / 1000.0);
  46. }
  47. @RequestMapping("/downloadComponentData")
  48. @ResponseBody
  49. public String downloadComponentDataFromDatabase(Integer startFileIndex, HttpServletRequest request) {
  50. return "Data downloaded success in " + indexService.downloadComponentDataFromDatabase(startFileIndex)
  51. + " ms.";
  52. }
  53. @RequestMapping("/downloadGoods")
  54. @ResponseBody
  55. public String downloadGoods(Integer startFileIndex, HttpServletRequest request) {
  56. return "Data downloaded success in " + indexService.downloadGoods(startFileIndex)
  57. + " ms.";
  58. }
  59. @RequestMapping("/multiDownloadGoods")
  60. @ResponseBody
  61. public String multiDownloadGoods(Integer number, Integer startFileIndex, Integer endFileIndex, HttpServletRequest request) {
  62. indexService.multiDownloadGoods(number, startFileIndex, endFileIndex);
  63. return "start download";
  64. }
  65. @RequestMapping("/listen/start")
  66. @ResponseBody
  67. public String startListen(Long interval, HttpServletRequest request) {
  68. jmsListener.start(interval);
  69. return "开启成功";
  70. }
  71. @RequestMapping("/listen/stop")
  72. @ResponseBody
  73. public String stopListen(HttpServletRequest request) {
  74. jmsListener.stop();
  75. return "关闭成功";
  76. }
  77. @RequestMapping("/listen/restart")
  78. @ResponseBody
  79. public String restartListen(Long interval, HttpServletRequest request) {
  80. if (jmsListener.isRunning()) {
  81. jmsListener.stop();
  82. }
  83. jmsListener.start(interval);
  84. return "重启成功";
  85. }
  86. @RequestMapping("/listen/details")
  87. @ResponseBody
  88. public SPage<LuceneMessage> listenDetails(Integer page, Integer size, HttpServletRequest request) {
  89. return luceneMessageService.findAll(page, size);
  90. }
  91. @RequestMapping("/maintain")
  92. @ResponseBody
  93. public String maintainIndexes(@NotEmpty("tableName") String tableName, @NotEmpty("dataId") Long dataId, @NotEmpty("methodType") String methodType, String data,
  94. HttpServletRequest request) {
  95. return "已维护:" + indexService.maintainIndexes(tableName.toLowerCase(), dataId, methodType, data);
  96. }
  97. @RequestMapping("/dequeue")
  98. @ResponseBody
  99. public boolean dequeueLuceneQueueMessage(Long id, HttpServletRequest request) {
  100. luceneMessageDao.dequeueLuceneMessage(id);
  101. return true;
  102. }
  103. }