TimeRuleController.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. /*
  2. *
  3. * TimeRuleController
  4. *
  5. */
  6. package com.hboxs.control.admin;
  7. import com.alibaba.fastjson.JSONArray;
  8. import com.gexin.fastjson.JSON;
  9. import com.hboxs.ViewObject.TimeRuleVo;
  10. import com.hboxs.common.Filter;
  11. import com.hboxs.common.Message;
  12. import com.hboxs.common.Pageable;
  13. import com.hboxs.common.utils.PushUtils;
  14. import com.hboxs.entity.AD;
  15. import com.hboxs.entity.Equipment;
  16. import com.hboxs.entity.TimeRule;
  17. import com.hboxs.service.ADService;
  18. import com.hboxs.service.EquipmentService;
  19. import com.hboxs.service.TimeRuleService;
  20. import org.springframework.stereotype.Controller;
  21. import org.springframework.ui.ModelMap;
  22. import org.springframework.web.bind.annotation.*;
  23. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  24. import javax.annotation.Resource;
  25. import javax.servlet.http.HttpSession;
  26. import java.util.ArrayList;
  27. import java.util.List;
  28. /**
  29. * Controller - 广告时间规则
  30. */
  31. @Controller("adminTimeRuleController")
  32. @RequestMapping("/asl-admin/timeRule")
  33. public class TimeRuleController extends BaseController {
  34. @Resource(name = "timeRuleServiceImpl")
  35. private TimeRuleService timeRuleService;
  36. @Resource(name = "aDServiceImpl")
  37. private ADService aDService;
  38. @Resource(name = "equipmentServiceImpl")
  39. private EquipmentService equipmentService;
  40. private static final String[] times = {"0-1", "1-2", "2-3", "3-4", "4-5", "5-6", "6-7", "7-8",
  41. "8-9", "9-10", "10-11", "11-12", "12-13", "13-14", "14-15", "15-16", "16-17", "17-18", "18-19", "19-20"
  42. , "20-21", "21-22", "22-23", "23-24"};
  43. /**
  44. * 添加
  45. */
  46. @RequestMapping(value = "/add", method = RequestMethod.GET)
  47. public String add(ModelMap model, HttpSession session) {
  48. List<TimeRuleVo> list = new ArrayList<>();
  49. List<AD> adList = aDService.findAll();
  50. for (int i = 0; i < times.length; i++) {
  51. TimeRuleVo timeRuleVo = new TimeRuleVo();
  52. timeRuleVo.setName("");
  53. timeRuleVo.setTime(times[i]);
  54. timeRuleVo.setAds(adList);
  55. list.add(timeRuleVo);
  56. }
  57. model.addAttribute("list", list);
  58. return "/admin/timeRule/add";
  59. }
  60. /**
  61. * 保存
  62. */
  63. @RequestMapping(value = "/save", method = RequestMethod.POST)
  64. @ResponseBody
  65. public Message save(@RequestBody List<TimeRuleVo> timeRuleVos, RedirectAttributes redirectAttributes) {
  66. //获取广告名称
  67. String name = timeRuleVos.get(0).getName();
  68. String rule = JSONArray.toJSONString(timeRuleVos);
  69. /*String s = JsonUtil.objectToJson(timeRuleVos);
  70. System.out.println(s);*/
  71. TimeRule timeRule = new TimeRule();
  72. timeRule.setName(name);
  73. timeRule.setRule(rule);
  74. timeRuleService.save(timeRule);
  75. addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
  76. return SUCCESS_MESSAGE;
  77. }
  78. /**
  79. * 编辑
  80. */
  81. @RequestMapping(value = "/edit", method = RequestMethod.GET)
  82. public String edit(Long id, ModelMap model, HttpSession session) {
  83. List<AD> adList = aDService.findAll();
  84. TimeRule timeRule = timeRuleService.find(id);
  85. model.addAttribute("timeRule", timeRule);
  86. String rule = timeRule.getRule();
  87. //将json转换为list对象
  88. List<TimeRuleVo> timeRuleVos = JSON.parseArray(rule, TimeRuleVo.class);
  89. model.addAttribute("timeRules", timeRuleVos);
  90. model.addAttribute("adList", adList);
  91. return "/admin/timeRule/edit";
  92. }
  93. /**
  94. * 更新
  95. */
  96. @RequestMapping(value = "/update", method = RequestMethod.POST)
  97. @ResponseBody
  98. public Message update(@RequestBody List<TimeRuleVo> timeRuleVos, RedirectAttributes redirectAttributes) {
  99. Long id = timeRuleVos.get(0).getId();
  100. String rule = JSONArray.toJSONString(timeRuleVos);
  101. TimeRule timeRule = timeRuleService.find(id);
  102. timeRule.setRule(rule);
  103. timeRule.setName(timeRuleVos.get(0).getName());
  104. timeRuleService.update(timeRule);
  105. addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
  106. return SUCCESS_MESSAGE;
  107. }
  108. /**
  109. * 列表
  110. */
  111. @RequestMapping(value = "/list", method = RequestMethod.GET)
  112. public String list(Pageable pageable, ModelMap model) {
  113. model.addAttribute("page", timeRuleService.findPage(pageable));
  114. return "/admin/timeRule/list";
  115. }
  116. /**
  117. * 删除
  118. */
  119. @RequestMapping(value = "/delete", method = RequestMethod.POST)
  120. public
  121. @ResponseBody
  122. Message delete(Long[] ids) {
  123. for (int i = 0; i < ids.length; i++) {
  124. if (ids[i] == 1) {
  125. return Message.error("默认规则不能删");
  126. }
  127. }
  128. timeRuleService.delete(ids);
  129. return SUCCESS_MESSAGE;
  130. }
  131. /**
  132. * 推送时间规则广告id
  133. *
  134. * @param id 规则id
  135. * @return
  136. */
  137. @GetMapping(value = "/pullTimeRule")
  138. @ResponseBody
  139. public Message pullTimeRule(Long id, RedirectAttributes redirectAttributes) {
  140. //查询出用这个广告规则的设备
  141. ArrayList<Filter> filters = new ArrayList<>();
  142. filters.add(Filter.eq("timeRuleId", id));
  143. List<Equipment> list = equipmentService.findList(null, filters, null);
  144. for (Equipment equipment : list) {
  145. PushUtils.push(equipment.getGtClientId(), "", "", PushUtils.buildJson("pushTimeRule", id + "").toString());
  146. }
  147. addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
  148. return SUCCESS_MESSAGE;
  149. }
  150. }