EquipmentApplyController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. /*
  2. *
  3. * EquipmentApplyController
  4. *
  5. */
  6. package com.hboxs.control.admin;
  7. import com.hboxs.common.Filter;
  8. import com.hboxs.common.Message;
  9. import com.hboxs.common.Pageable;
  10. import com.hboxs.common.utils.PushUtils;
  11. import com.hboxs.entity.Admin;
  12. import com.hboxs.entity.Equipment;
  13. import com.hboxs.entity.EquipmentApply;
  14. import com.hboxs.entity.Product;
  15. import com.hboxs.service.*;
  16. import org.apache.commons.lang.StringUtils;
  17. import org.springframework.stereotype.Controller;
  18. import org.springframework.ui.ModelMap;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.RequestMethod;
  21. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  22. import javax.annotation.Resource;
  23. import java.math.BigDecimal;
  24. import java.util.ArrayList;
  25. import java.util.List;
  26. /**
  27. * Controller - 初始化申请表
  28. */
  29. @Controller("adminEquipmentApplyController")
  30. @RequestMapping("/asl-admin/equipmentApply")
  31. public class EquipmentApplyController extends BaseController {
  32. @Resource(name = "equipmentApplyServiceImpl")
  33. private EquipmentApplyService equipmentApplyService;
  34. @Resource(name = "productServiceImpl")
  35. private ProductService productService;
  36. @Resource(name = "equipmentServiceImpl")
  37. private EquipmentService equipmentService;
  38. @Resource(name = "adminServiceImpl")
  39. private AdminService adminService;
  40. @Resource(name = "timeRuleServiceImpl")
  41. private TimeRuleService timeRuleService;
  42. /**
  43. * 设备初始化列表
  44. *
  45. * @param clientId
  46. * @param managerId
  47. * @param pageable
  48. * @param model
  49. * @return
  50. */
  51. @RequestMapping(value = "/listInit", method = RequestMethod.GET)
  52. public String listInit(String clientId, String managerId, String adminUserName,
  53. EquipmentApply.StatusType statusType, EquipmentApply.Type type,
  54. Pageable pageable, ModelMap model) {
  55. Admin admin = adminService.getCurrent();
  56. model.addAttribute("admin", admin);
  57. List<Admin> admins = adminService.findAllLowerAdmin(admin.getId());
  58. Long[] lowerIds = null;
  59. if (admins == null) {
  60. lowerIds = new Long[]{};
  61. } else {
  62. lowerIds = new Long[admins.size()];
  63. for (int i = 0; i < admins.size(); i++) {
  64. lowerIds[i] = admins.get(i).getId();
  65. }
  66. }
  67. List<Filter> filters = pageable.getFilters();
  68. switch (admin.getType()) {
  69. case admin:
  70. break;
  71. case agency:
  72. filters.add(Filter.in("adminId", lowerIds));
  73. break;
  74. case merchant:
  75. filters.add(Filter.in("adminId", lowerIds));
  76. break;
  77. case personage:
  78. filters.add(Filter.in("adminId", lowerIds));
  79. break;
  80. }
  81. if (!StringUtils.isEmpty(clientId)) {
  82. filters.add(Filter.like("clientId", "%" + clientId + "%"));
  83. }
  84. if (!StringUtils.isEmpty(managerId)) {
  85. filters.add(Filter.like("managerId", "%" + managerId + "%"));
  86. }
  87. if (!StringUtils.isEmpty(adminUserName)) {
  88. filters.add(Filter.like("adminUserName", "%" + adminUserName + "%"));
  89. }
  90. if (statusType != null) {
  91. filters.add(Filter.eq("statusType", statusType));
  92. }
  93. if (type != null) {
  94. filters.add(Filter.eq("type", type));
  95. }
  96. model.addAttribute("clientId", clientId);
  97. model.addAttribute("managerId", managerId);
  98. model.addAttribute("adminUserName", adminUserName);
  99. model.addAttribute("statusType", statusType);
  100. model.addAttribute("type", type);
  101. model.addAttribute("admin", adminService.getCurrent());
  102. model.addAttribute("page", equipmentApplyService.findPage(pageable));
  103. return "/admin/equipmentApply/list";
  104. }
  105. /**
  106. * 更新申请状态
  107. */
  108. @RequestMapping(value = "/changeStatus", method = RequestMethod.GET)
  109. public String changeStatus(Long id, String status, RedirectAttributes redirectAttributes) {
  110. if (null != id) {
  111. EquipmentApply equipmentApply = equipmentApplyService.find(id);
  112. if (equipmentApply != null) {
  113. if (!StringUtils.isEmpty(status)) {
  114. if (status.equals("agreed")) {
  115. String clientId = equipmentApply.getClientId();
  116. //判端是否有默认规则
  117. if (timeRuleService.find(Long.valueOf(1)) == null) {
  118. addFlashMessage(redirectAttributes, Message.error("请先填写默认广告规则"));
  119. return "redirect:listInit.htm";
  120. }
  121. //判断是否设备初始化
  122. if (equipmentService.findByClientId(clientId) != null) {
  123. addFlashMessage(redirectAttributes, Message.error("该设备已经初始化"));
  124. return "redirect:listInit.htm";
  125. }
  126. Long adminId = equipmentApply.getAdminId();
  127. String adminLevel = equipmentApply.getAdminLevel();
  128. String adminUserName = equipmentApply.getAdminUserName();
  129. String type = equipmentApply.getType().toValue();
  130. String gtClientId = equipmentApply.getGtClientId();
  131. Long merchantId = equipmentApply.getMerchantId();
  132. Long agencyId = equipmentApply.getAgencyId();
  133. Long personageId = equipmentApply.getPersonageId();
  134. String old = "";
  135. ArrayList<Filter> filters = new ArrayList<>();
  136. filters.add(Filter.eq("clientId", clientId + "xxx"));
  137. List<Equipment> list = equipmentService.findList(null, filters, null);
  138. equipmentApply.setStatusType(EquipmentApply.StatusType.agreed);
  139. if (list.size() > 0) {
  140. //表示设备第二次申请了:主要为了区分脱离以及初始化
  141. old = "1";
  142. //重新修改设备名称
  143. Equipment equipment = list.get(0);
  144. equipment.setClientId(clientId);
  145. equipment.setGtClientId(gtClientId);
  146. equipment.setAdminId(adminId);
  147. equipment.setAdminLevel(adminLevel);
  148. equipment.setAdminUserName(adminUserName);
  149. equipment.setMerchantId(merchantId);
  150. equipment.setAgencyId(agencyId);
  151. equipment.setPersonageId(personageId);
  152. equipment.setType(Equipment.Type.forValue(type));
  153. equipmentService.update(equipment);
  154. addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
  155. PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  156. equipmentApplyService.update(equipmentApply);
  157. return "redirect:listInit.htm";
  158. }
  159. PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  160. Equipment equipment = new Equipment();
  161. equipment.setClientId(clientId);
  162. equipment.setManagerId(equipmentApply.getManagerId());
  163. equipment.setAdminId(adminId);
  164. equipment.setAdminLevel(adminLevel);
  165. equipment.setGtClientId(gtClientId);
  166. equipment.setAdminUserName(adminUserName);
  167. equipment.setIsUsing(true);
  168. equipment.setIsNetWork(true);
  169. equipment.setPayType(Equipment.PayType.onlinePayment);
  170. equipment.setGuestPwd("123456");
  171. equipment.setAdminPwd("123456");
  172. equipment.setMerchantId(merchantId);
  173. equipment.setAgencyId(agencyId);
  174. equipment.setPersonageId(personageId);
  175. equipment.setProductTotal(0);
  176. equipment.setType(Equipment.Type.forValue(type));
  177. //设置默认规则
  178. equipment.setTimeRuleId(Long.valueOf(1));
  179. equipmentService.save(equipment);
  180. //获取设备的id
  181. Long equipmentId = equipmentService.findByClientId(clientId).getId();
  182. if (!productService.exists(Filter.eq("equipmentId", equipmentId))) {
  183. if(equipmentApply.getEquimentType().equals("MG280")){
  184. saveProductMG280(equipmentId);
  185. }else{
  186. saveProduct(equipmentId);
  187. }
  188. }
  189. } else if (status.equals("rejected")) {
  190. equipmentApply.setStatusType(EquipmentApply.StatusType.rejected);
  191. PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "拒绝", PushUtils.buildJson("statusType", "rejected").toString());
  192. }
  193. equipmentApplyService.update(equipmentApply);
  194. addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
  195. }
  196. }
  197. }
  198. return "redirect:listInit.htm";
  199. }
  200. /**
  201. * 添加产品
  202. *
  203. * @param id
  204. */
  205. private void saveProduct(Long id) {
  206. String[] str = {"玫瑰精灵", "童心未泯", "五彩缤纷", "天雪恋舞", "水中芙蓉", "烈焰红唇", "美梦成真", "一见钟情", "幽兰爱恋", "心之守护",
  207. "夏日爱恋", "冰美人", "国色天香", "赤子之心", "海洋之心", "水晶之恋", "彩色精灵", "小棉袄"};
  208. for (int i = 0; i < str.length; i++) {
  209. Product product = new Product();
  210. product.setEquipmentId(id);
  211. product.setProductName(str[i]);
  212. product.setRmbPrice(BigDecimal.ZERO);
  213. product.setCodePrice(BigDecimal.ZERO);
  214. productService.save(product);
  215. }
  216. }
  217. private void saveProductMG280(Long id) {
  218. String[] str = { "水中芙蓉mini", "水中芙蓉", "烈焰红唇", "烈焰红唇mini", "夏日爱恋", "夏日爱恋mini", "冰美人", "冰美人mini", "彩色精灵", "彩色精灵mini"};
  219. for (int i = 0; i < str.length; i++) {
  220. Product product = new Product();
  221. product.setEquipmentId(id);
  222. product.setProductName(str[i]);
  223. product.setRmbPrice(BigDecimal.ZERO);
  224. product.setCodePrice(BigDecimal.ZERO);
  225. productService.save(product);
  226. }
  227. }
  228. }