/* * * EquipmentApplyController * */ package com.hboxs.control.admin; import com.hboxs.common.Filter; import com.hboxs.common.Message; import com.hboxs.common.Pageable; import com.hboxs.common.utils.PushUtils; import com.hboxs.entity.Admin; import com.hboxs.entity.Equipment; import com.hboxs.entity.EquipmentApply; import com.hboxs.entity.Product; import com.hboxs.service.*; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; /** * Controller - 初始化申请表 */ @Controller("adminEquipmentApplyController") @RequestMapping("/asl-admin/equipmentApply") public class EquipmentApplyController extends BaseController { @Resource(name = "equipmentApplyServiceImpl") private EquipmentApplyService equipmentApplyService; @Resource(name = "productServiceImpl") private ProductService productService; @Resource(name = "equipmentServiceImpl") private EquipmentService equipmentService; @Resource(name = "adminServiceImpl") private AdminService adminService; @Resource(name = "timeRuleServiceImpl") private TimeRuleService timeRuleService; /** * 设备初始化列表 * * @param clientId * @param managerId * @param pageable * @param model * @return */ @RequestMapping(value = "/listInit", method = RequestMethod.GET) public String listInit(String clientId, String managerId, String adminUserName, EquipmentApply.StatusType statusType, EquipmentApply.Type type, Pageable pageable, ModelMap model) { Admin admin = adminService.getCurrent(); model.addAttribute("admin", admin); List admins = adminService.findAllLowerAdmin(admin.getId()); Long[] lowerIds = null; if (admins == null) { lowerIds = new Long[]{}; } else { lowerIds = new Long[admins.size()]; for (int i = 0; i < admins.size(); i++) { lowerIds[i] = admins.get(i).getId(); } } List filters = pageable.getFilters(); switch (admin.getType()) { case admin: break; case agency: filters.add(Filter.in("adminId", lowerIds)); break; case merchant: filters.add(Filter.in("adminId", lowerIds)); break; case personage: filters.add(Filter.in("adminId", lowerIds)); break; } if (!StringUtils.isEmpty(clientId)) { filters.add(Filter.like("clientId", "%" + clientId + "%")); } if (!StringUtils.isEmpty(managerId)) { filters.add(Filter.like("managerId", "%" + managerId + "%")); } if (!StringUtils.isEmpty(adminUserName)) { filters.add(Filter.like("adminUserName", "%" + adminUserName + "%")); } if (statusType != null) { filters.add(Filter.eq("statusType", statusType)); } if (type != null) { filters.add(Filter.eq("type", type)); } model.addAttribute("clientId", clientId); model.addAttribute("managerId", managerId); model.addAttribute("adminUserName", adminUserName); model.addAttribute("statusType", statusType); model.addAttribute("type", type); model.addAttribute("admin", adminService.getCurrent()); model.addAttribute("page", equipmentApplyService.findPage(pageable)); return "/admin/equipmentApply/list"; } /** * 更新申请状态 */ @RequestMapping(value = "/changeStatus", method = RequestMethod.GET) public String changeStatus(Long id, String status, RedirectAttributes redirectAttributes) { if (null != id) { EquipmentApply equipmentApply = equipmentApplyService.find(id); if (equipmentApply != null) { if (!StringUtils.isEmpty(status)) { if (status.equals("agreed")) { String clientId = equipmentApply.getClientId(); //判端是否有默认规则 if (timeRuleService.find(Long.valueOf(1)) == null) { addFlashMessage(redirectAttributes, Message.error("请先填写默认广告规则")); return "redirect:listInit.htm"; } //判断是否设备初始化 if (equipmentService.findByClientId(clientId) != null) { addFlashMessage(redirectAttributes, Message.error("该设备已经初始化")); return "redirect:listInit.htm"; } Long adminId = equipmentApply.getAdminId(); String adminLevel = equipmentApply.getAdminLevel(); String adminUserName = equipmentApply.getAdminUserName(); String type = equipmentApply.getType().toValue(); String gtClientId = equipmentApply.getGtClientId(); Long merchantId = equipmentApply.getMerchantId(); Long agencyId = equipmentApply.getAgencyId(); Long personageId = equipmentApply.getPersonageId(); String old = ""; ArrayList filters = new ArrayList<>(); filters.add(Filter.eq("clientId", clientId + "xxx")); List list = equipmentService.findList(null, filters, null); equipmentApply.setStatusType(EquipmentApply.StatusType.agreed); if (list.size() > 0) { //表示设备第二次申请了:主要为了区分脱离以及初始化 old = "1"; //重新修改设备名称 Equipment equipment = list.get(0); equipment.setClientId(clientId); equipment.setGtClientId(gtClientId); equipment.setAdminId(adminId); equipment.setAdminLevel(adminLevel); equipment.setAdminUserName(adminUserName); equipment.setMerchantId(merchantId); equipment.setAgencyId(agencyId); equipment.setPersonageId(personageId); equipment.setType(Equipment.Type.forValue(type)); equipmentService.update(equipment); addFlashMessage(redirectAttributes, SUCCESS_MESSAGE); PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString()); equipmentApplyService.update(equipmentApply); return "redirect:listInit.htm"; } PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString()); Equipment equipment = new Equipment(); equipment.setClientId(clientId); equipment.setManagerId(equipmentApply.getManagerId()); equipment.setAdminId(adminId); equipment.setAdminLevel(adminLevel); equipment.setGtClientId(gtClientId); equipment.setAdminUserName(adminUserName); equipment.setIsUsing(true); equipment.setIsNetWork(true); equipment.setPayType(Equipment.PayType.onlinePayment); equipment.setGuestPwd("123456"); equipment.setAdminPwd("123456"); equipment.setMerchantId(merchantId); equipment.setAgencyId(agencyId); equipment.setPersonageId(personageId); equipment.setProductTotal(0); equipment.setType(Equipment.Type.forValue(type)); //设置默认规则 equipment.setTimeRuleId(Long.valueOf(1)); equipmentService.save(equipment); //获取设备的id Long equipmentId = equipmentService.findByClientId(clientId).getId(); if (!productService.exists(Filter.eq("equipmentId", equipmentId))) { if(equipmentApply.getEquimentType().equals("MG280")){ saveProductMG280(equipmentId); }else{ saveProduct(equipmentId); } } } else if (status.equals("rejected")) { equipmentApply.setStatusType(EquipmentApply.StatusType.rejected); PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "拒绝", PushUtils.buildJson("statusType", "rejected").toString()); } equipmentApplyService.update(equipmentApply); addFlashMessage(redirectAttributes, SUCCESS_MESSAGE); } } } return "redirect:listInit.htm"; } /** * 添加产品 * * @param id */ private void saveProduct(Long id) { String[] str = {"玫瑰精灵", "童心未泯", "五彩缤纷", "天雪恋舞", "水中芙蓉", "烈焰红唇", "美梦成真", "一见钟情", "幽兰爱恋", "心之守护", "夏日爱恋", "冰美人", "国色天香", "赤子之心", "海洋之心", "水晶之恋", "彩色精灵", "小棉袄"}; for (int i = 0; i < str.length; i++) { Product product = new Product(); product.setEquipmentId(id); product.setProductName(str[i]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } private void saveProductMG280(Long id) { String[] str = { "水中芙蓉mini", "水中芙蓉", "烈焰红唇", "烈焰红唇mini", "夏日爱恋", "夏日爱恋mini", "冰美人", "冰美人mini", "彩色精灵", "彩色精灵mini"}; for (int i = 0; i < str.length; i++) { Product product = new Product(); product.setEquipmentId(id); product.setProductName(str[i]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } }