GenerateHistoryController.java 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package com.gitee.gen.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.gitee.gen.common.Action;
  4. import com.gitee.gen.common.GeneratorParam;
  5. import com.gitee.gen.common.Result;
  6. import com.gitee.gen.controller.vo.GenerateHistoryVO;
  7. import com.gitee.gen.entity.DatasourceConfig;
  8. import com.gitee.gen.entity.GenerateHistory;
  9. import com.gitee.gen.entity.TemplateConfig;
  10. import com.gitee.gen.service.DatasourceConfigService;
  11. import com.gitee.gen.service.GenerateHistoryService;
  12. import com.gitee.gen.service.TemplateConfigService;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.web.bind.annotation.RequestMapping;
  15. import org.springframework.web.bind.annotation.RestController;
  16. import java.text.SimpleDateFormat;
  17. import java.util.List;
  18. import java.util.Objects;
  19. import java.util.stream.Collectors;
  20. @RestController
  21. @RequestMapping("history")
  22. public class GenerateHistoryController {
  23. @Autowired
  24. private GenerateHistoryService generateHistoryService;
  25. @Autowired
  26. private DatasourceConfigService datasourceConfigService;
  27. @Autowired
  28. private TemplateConfigService templateConfigService;
  29. /**
  30. * 查询所有记录
  31. *
  32. * @return 返回集合,没有返回空List
  33. */
  34. @RequestMapping("list")
  35. public Result listAll() {
  36. List<GenerateHistory> generateHistories = generateHistoryService.listAll();
  37. List<GenerateHistoryVO> generateHistoryVOS = generateHistories.stream()
  38. .map(generateHistory -> {
  39. GenerateHistoryVO generateHistoryVO = new GenerateHistoryVO();
  40. GeneratorParam generatorParam = JSON.parseObject(generateHistory.getConfigContent(), GeneratorParam.class);
  41. String datasourceInfo = getDatasourceInfo(generatorParam.getDatasourceConfigId());
  42. if (datasourceInfo == null) {
  43. return null;
  44. }
  45. List<String> templateNames = this.listTemplateNames(generatorParam.getTemplateConfigIdList());
  46. generateHistoryVO.setGenerateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(generateHistory.getGenerateTime()));
  47. generateHistoryVO.setConfigContent(generatorParam);
  48. generateHistoryVO.setDatasource(datasourceInfo);
  49. generateHistoryVO.setTemplateNames(templateNames);
  50. return generateHistoryVO;
  51. })
  52. .filter(Objects::nonNull)
  53. .collect(Collectors.toList());
  54. return Action.ok(generateHistoryVOS);
  55. }
  56. private String getDatasourceInfo(int datasourceConfigId) {
  57. DatasourceConfig datasourceConfig = datasourceConfigService.getById(datasourceConfigId);
  58. if (datasourceConfig == null) {
  59. return null;
  60. }
  61. String tpl = "%s(%s:%s)";
  62. return String.format(tpl, datasourceConfig.getDbName(), datasourceConfig.getHost(), datasourceConfig.getPort());
  63. }
  64. private List<String> listTemplateNames(List<Integer> idList) {
  65. return templateConfigService.listTemplate(idList)
  66. .stream()
  67. .map(TemplateConfig::getName)
  68. .collect(Collectors.toList());
  69. }
  70. }