JobCodeController.java 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package org.poem.controller;
  2. import org.poem.core.model.XxlJobInfo;
  3. import org.poem.core.model.XxlJobLogGlue;
  4. import org.poem.core.util.I18nUtil;
  5. import org.poem.dao.XxlJobInfoDao;
  6. import org.poem.dao.XxlJobLogGlueDao;
  7. import org.poem.biz.model.ReturnT;
  8. import org.poem.glue.GlueTypeEnum;
  9. import org.poem.util.SnowFlake;
  10. import org.springframework.stereotype.Controller;
  11. import org.springframework.ui.Model;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.ResponseBody;
  14. import javax.annotation.Resource;
  15. import javax.servlet.http.HttpServletRequest;
  16. import java.util.Date;
  17. import java.util.List;
  18. /**
  19. * job code controller
  20. * @author xuxueli 2015-12-19 16:13:16
  21. */
  22. @Controller
  23. @RequestMapping("/jobcode")
  24. public class JobCodeController {
  25. @Resource
  26. private XxlJobInfoDao xxlJobInfoDao;
  27. @Resource
  28. private XxlJobLogGlueDao xxlJobLogGlueDao;
  29. @RequestMapping
  30. public String index(HttpServletRequest request, Model model, int jobId) {
  31. XxlJobInfo jobInfo = xxlJobInfoDao.loadById(jobId);
  32. List<XxlJobLogGlue> jobLogGlues = xxlJobLogGlueDao.findByJobId(jobId);
  33. if (jobInfo == null) {
  34. throw new RuntimeException(I18nUtil.getString("jobinfo_glue_jobid_unvalid"));
  35. }
  36. if (GlueTypeEnum.BEAN == GlueTypeEnum.match(jobInfo.getGlueType())) {
  37. throw new RuntimeException(I18nUtil.getString("jobinfo_glue_gluetype_unvalid"));
  38. }
  39. // valid permission
  40. JobInfoController.validPermission(request, jobInfo.getJobGroup());
  41. // Glue类型-字典
  42. model.addAttribute("GlueTypeEnum", GlueTypeEnum.values());
  43. model.addAttribute("jobInfo", jobInfo);
  44. model.addAttribute("jobLogGlues", jobLogGlues);
  45. return "jobcode/jobcode.index";
  46. }
  47. @RequestMapping("/save")
  48. @ResponseBody
  49. public ReturnT<String> save(Model model, long id, String glueSource, String glueRemark) {
  50. // valid
  51. if (glueRemark==null) {
  52. return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_glue_remark")) );
  53. }
  54. if (glueRemark.length()<4 || glueRemark.length()>100) {
  55. return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_remark_limit"));
  56. }
  57. XxlJobInfo exists_jobInfo = xxlJobInfoDao.loadById(id);
  58. if (exists_jobInfo == null) {
  59. return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_jobid_unvalid"));
  60. }
  61. // update new code
  62. exists_jobInfo.setGlueSource(glueSource);
  63. exists_jobInfo.setGlueRemark(glueRemark);
  64. exists_jobInfo.setGlueUpdatetime(new Date());
  65. exists_jobInfo.setUpdateTime(new Date());
  66. xxlJobInfoDao.update(exists_jobInfo);
  67. // log old code
  68. XxlJobLogGlue xxlJobLogGlue = new XxlJobLogGlue();
  69. xxlJobLogGlue.setJobId((int) exists_jobInfo.getId());
  70. xxlJobLogGlue.setGlueType(exists_jobInfo.getGlueType());
  71. xxlJobLogGlue.setGlueSource(glueSource);
  72. xxlJobLogGlue.setGlueRemark(glueRemark);
  73. xxlJobLogGlue.setAddTime(new Date());
  74. xxlJobLogGlue.setUpdateTime(new Date());
  75. xxlJobLogGlue.setId(SnowFlake.genLongId());
  76. xxlJobLogGlueDao.save(xxlJobLogGlue);
  77. // remove code backup more than 30
  78. xxlJobLogGlueDao.removeOld(exists_jobInfo.getId(), 30);
  79. return ReturnT.SUCCESS;
  80. }
  81. }