c44b357c16af933c812ff874d9c6ca09e6064b10.svn-base 3.1 KB

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