JobCodeController.java 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.xxl.job.admin.controller;
  2. import com.xxl.job.admin.core.model.XxlJobInfo;
  3. import com.xxl.job.admin.core.model.XxlJobLogGlue;
  4. import com.xxl.job.admin.dao.XxlJobInfoDao;
  5. import com.xxl.job.admin.dao.XxlJobLogGlueDao;
  6. import com.xxl.job.core.biz.model.ReturnT;
  7. import com.xxl.job.core.glue.GlueTypeEnum;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.ui.Model;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.ResponseBody;
  12. import javax.annotation.Resource;
  13. import java.util.Date;
  14. import java.util.List;
  15. /**
  16. * job code controller
  17. * @author xuxueli 2015-12-19 16:13:16
  18. */
  19. @Controller
  20. @RequestMapping("/jobcode")
  21. public class JobCodeController {
  22. @Resource
  23. private XxlJobInfoDao xxlJobInfoDao;
  24. @Resource
  25. private XxlJobLogGlueDao xxlJobLogGlueDao;
  26. @RequestMapping
  27. public String index(Model model, int jobId) {
  28. XxlJobInfo jobInfo = xxlJobInfoDao.loadById(jobId);
  29. List<XxlJobLogGlue> jobLogGlues = xxlJobLogGlueDao.findByJobId(jobId);
  30. if (jobInfo == null) {
  31. throw new RuntimeException("抱歉,任务不存在.");
  32. }
  33. if (GlueTypeEnum.BEAN == GlueTypeEnum.match(jobInfo.getGlueType())) {
  34. throw new RuntimeException("该任务非GLUE模式.");
  35. }
  36. // Glue类型-字典
  37. model.addAttribute("GlueTypeEnum", GlueTypeEnum.values());
  38. model.addAttribute("jobInfo", jobInfo);
  39. model.addAttribute("jobLogGlues", jobLogGlues);
  40. return "jobcode/jobcode.index";
  41. }
  42. @RequestMapping("/save")
  43. @ResponseBody
  44. public ReturnT<String> save(Model model, int id, String glueSource, String glueRemark) {
  45. // valid
  46. if (glueRemark==null) {
  47. return new ReturnT<String>(500, "请输入备注");
  48. }
  49. if (glueRemark.length()<4 || glueRemark.length()>100) {
  50. return new ReturnT<String>(500, "备注长度应该在4至100之间");
  51. }
  52. XxlJobInfo exists_jobInfo = xxlJobInfoDao.loadById(id);
  53. if (exists_jobInfo == null) {
  54. return new ReturnT<String>(500, "参数异常");
  55. }
  56. // update new code
  57. exists_jobInfo.setGlueSource(glueSource);
  58. exists_jobInfo.setGlueRemark(glueRemark);
  59. exists_jobInfo.setGlueUpdatetime(new Date());
  60. xxlJobInfoDao.update(exists_jobInfo);
  61. // log old code
  62. XxlJobLogGlue xxlJobLogGlue = new XxlJobLogGlue();
  63. xxlJobLogGlue.setJobId(exists_jobInfo.getId());
  64. xxlJobLogGlue.setGlueType(exists_jobInfo.getGlueType());
  65. xxlJobLogGlue.setGlueSource(glueSource);
  66. xxlJobLogGlue.setGlueRemark(glueRemark);
  67. xxlJobLogGlueDao.save(xxlJobLogGlue);
  68. // remove code backup more than 30
  69. xxlJobLogGlueDao.removeOld(exists_jobInfo.getId(), 30);
  70. return ReturnT.SUCCESS;
  71. }
  72. }