package com.caimei.modules.newhome.web; import com.caimei.modules.newhome.entity.NewPageFloor; import com.caimei.modules.newhome.entity.NewPageFloorContent; import com.caimei.modules.newhome.entity.NewPageFloorImage; import com.caimei.modules.newhome.service.NewPageFloorService; import com.caimei.modules.opensearch.GenerateUtils; import com.caimei.modules.product.entity.Product; import com.caimei.modules.product.service.ProductService; import com.caimei.redis.RedisService; import com.google.common.collect.Maps; import com.thinkgem.jeesite.common.config.Global; import com.thinkgem.jeesite.common.persistence.Page; import com.thinkgem.jeesite.common.utils.StringUtils; import com.thinkgem.jeesite.common.web.BaseController; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Map; import static com.caimei.modules.newhome.web.NewPageQualitySupplierController.isInteger; /** * 楼层管理Controller * * @author ye.qin * @version 2019-03-14 */ @Controller @RequestMapping(value = "${adminPath}/newhome/newPageFloor") public class NewPageFloorController extends BaseController { @Autowired private NewPageFloorService newPageFloorService; @Autowired private ProductService productService; @Autowired private RedisService redisService; @Resource private GenerateUtils generateUtils; @ModelAttribute public NewPageFloor get(@RequestParam(required = false) String id) { NewPageFloor entity = null; if (StringUtils.isNotBlank(id)) { entity = newPageFloorService.get(id); } if (entity == null) { entity = new NewPageFloor(); } return entity; } @RequiresPermissions("newhome:newPageFloor:view") @RequestMapping(value = {"list", ""}) public String list(NewPageFloor newPageFloor, HttpServletRequest request, HttpServletResponse response, Model model) { Page page = newPageFloorService.findPage(new Page(request, response), newPageFloor); model.addAttribute("page", page); return "modules/newhome/newPageFloorList"; } @RequiresPermissions("newhome:newPageFloor:view") @RequestMapping(value = "form") public String form(NewPageFloor newPageFloor, Model model) { model.addAttribute("newPageFloor", newPageFloor); return "modules/newhome/newPageFloorForm"; } @RequiresPermissions("newhome:newPageFloor:edit") @RequestMapping(value = "save") public String save(NewPageFloor newPageFloor, Model model, RedirectAttributes redirectAttributes) { if (!beanValidator(model, newPageFloor)) { return form(newPageFloor, model); } newPageFloorService.save(newPageFloor); cleanRedisCache(); addMessage(redirectAttributes, "保存楼层管理成功"); return "redirect:" + Global.getAdminPath() + "/newhome/newPageFloor/?repage"; } @RequiresPermissions("newhome:newPageFloor:delete") @RequestMapping(value = "delete") public String delete(NewPageFloor newPageFloor, RedirectAttributes redirectAttributes) { newPageFloorService.delete(newPageFloor); cleanRedisCache(); addMessage(redirectAttributes, "删除楼层管理成功"); return "redirect:" + Global.getAdminPath() + "/newhome/newPageFloor/?repage"; } @RequiresPermissions("newhome:newPageHomeimage:edit") @ResponseBody @RequestMapping(value = "updateEnabledStatus") public Map updateEnabledStatus(String enabledStatus, String[] ids, String[] supplierIDs, HttpServletRequest request, HttpServletResponse response) { Map map = Maps.newLinkedHashMap(); try { newPageFloorService.updateEnabledStatusByIds(enabledStatus, ids); cleanRedisCache(); map.put("success", true); map.put("msg", "修改成功"); } catch (Exception e) { logger.debug(e.toString(), e); map.put("success", false); map.put("msg", "修改失败"); } return map; } @RequiresPermissions("newhome:newPageHomeimage:edit") @ResponseBody @RequestMapping(value = "updateCrmEnabledStatusByIds") public Map updateCrmEnabledStatusByIds(String crmEnabledStatus, String[] ids, String[] supplierIDs, HttpServletRequest request, HttpServletResponse response) { Map map = Maps.newLinkedHashMap(); try { newPageFloorService.updateCrmEnabledStatusByIds(crmEnabledStatus, ids); cleanRedisCache(); map.put("success", true); map.put("msg", "修改成功"); } catch (Exception e) { logger.debug(e.toString(), e); map.put("success", false); map.put("msg", "修改失败"); } return map; } @RequestMapping(value = "goContentPage") public String goContentPage(NewPageFloorContent floorContent, Model model) { floorContent = newPageFloorService.findFloorContent(floorContent.getFloorId()); model.addAttribute("floorContent", floorContent); return "modules/newhome/newPageFloorContentForm"; } /** * 批量更新排序值 */ @RequestMapping(value = "batchSaveSort") @ResponseBody public Map batchSaveSort(String sortList) { Map map = Maps.newLinkedHashMap(); try { String[] newPageLists = sortList.split(","); for (String list : newPageLists) { String[] split = list.split("-"); if (split.length == 1 || split.length < 1) { String id = split[0]; String sort = null; newPageFloorService.saveSort(sort, id); } else { String id = split[0]; String sort = split[1]; if (isInteger(sort)) { if (StringUtils.equals("0", sort)) { map.put("success", false); map.put("msg", "排序值只能填写大于等于1的整数"); return map; } newPageFloorService.saveSort(sort, id); } else { map.put("success", false); map.put("msg", "排序值只能为数字"); return map; } } } cleanRedisCache(); map.put("success", true); map.put("msg", "更新排序成功"); return map; } catch (Exception e) { map.put("success", false); map.put("msg", "更新排序失败"); return map; } } /** * 添加商品 */ @RequestMapping("/addProductImage") public String addProductImage(Product product, Model model, HttpServletRequest request, HttpServletResponse response) { product.setValidFlag("2"); Page page = productService.findProductImage(new Page(request, response), product); model.addAttribute("page", page); model.addAttribute("productCategory", product.getProductCategory()); model.addAttribute("productIds", product.getProductIds()); return "modules/newhome/addProductImage"; } /** * 活动专题添加图片 */ @RequestMapping("/addActivityImage") public String addActivityImage(Product product, String type, Integer templateType, NewPageFloorImage newPageFloorImage, Model model, HttpServletRequest request, HttpServletResponse response) { if ("productImage".equals(type)) { product.setValidFlag("2"); Page page = productService.findProductImage(new Page(request, response), product); model.addAttribute("page", page); model.addAttribute("productCategory", product.getProductCategory()); model.addAttribute("productIds", product.getProductIds()); return "modules/newhome/addProductImage"; } else { //图片建议尺寸 String pcImageSize = ""; String appletsImageSize = ""; if (templateType != null) { if (templateType > 50) { //移动端模板序号处理 templateType = templateType - 50; } if (templateType == 1) { pcImageSize = "184px*184px"; appletsImageSize = "164px*164px"; } else if (templateType == 2) { pcImageSize = "370px*260px"; appletsImageSize = "224px*156px"; } else if (templateType == 3) { pcImageSize = "168px*168px"; appletsImageSize = "202px*202px"; } else if (templateType == 4) { pcImageSize = "560px*290px"; appletsImageSize = "702px*360px"; } else if (templateType == 5 || templateType == 6) { pcImageSize = "370px*210px"; if (templateType == 5) { appletsImageSize = "310px*220px"; } else if (templateType == 6) { appletsImageSize = "339px*240px"; } } else if (templateType == 7) { pcImageSize = "270px*210px"; appletsImageSize = "310px*240px"; } else if (templateType == 8 || templateType == 9) { pcImageSize = "560px*350px"; if (templateType == 8) { appletsImageSize = "702px*360px"; } else { appletsImageSize = "339px*210px"; } } else if (templateType == 10) { pcImageSize = "1140px*340px"; appletsImageSize = "750px*342px"; } else if (templateType == 22) { pcImageSize = "384px*260px"; appletsImageSize = "339px*230px"; } else if (templateType == 23) { pcImageSize = "284px*220px"; appletsImageSize = "310px*240px"; } else if (templateType == 24) { pcImageSize = "588px*360px"; appletsImageSize = "339px*210px"; } else if (templateType == 25) { pcImageSize = "588px*360px"; appletsImageSize = "702px*360px"; } else if (templateType == 26) { pcImageSize = "384px*260px"; appletsImageSize = "339px*230px"; } else if (templateType == 27) { pcImageSize = "282px*220px"; appletsImageSize = "310px*240px"; } else if (templateType == 28) { pcImageSize = "588px*320px"; appletsImageSize = "339px*210px"; } else if (templateType == 29) { pcImageSize = "588px*360px"; appletsImageSize = "702px*360px"; } pcImageSize = "建议图片尺寸" + pcImageSize; appletsImageSize = "建议图片尺寸" + appletsImageSize; } model.addAttribute("pcImageSize", pcImageSize); model.addAttribute("appletsImageSize", appletsImageSize); model.addAttribute("type", type); model.addAttribute("floorImage", newPageFloorImage); return "modules/newhome/addActivityAdsImage"; } } /** * 添加其他图片 */ @RequestMapping("/addOtherImage") public String addOtherImage(NewPageFloorImage floorImage, Model model) { model.addAttribute("floorImage", floorImage); return "modules/newhome/addOtherImage"; } /** * 楼层内容保存 */ @RequestMapping("/saveFloorContent") public String saveFloorContent(NewPageFloorContent floorContent, RedirectAttributes redirectAttributes) { newPageFloorService.saveFloorContent(floorContent); cleanRedisCache(); addMessage(redirectAttributes, "保存成功"); if (floorContent.getFloorId() != null) { return "redirect:" + Global.getAdminPath() + "/newhome/newPageFloor/?repage"; } else if (StringUtils.isNotBlank(floorContent.getFormType())) { if (floorContent.getRedirectFlag() == 1) { return "redirect:" + Global.getAdminPath() + "/cmpage/cmPageCentre/?pageId=" + floorContent.getPageId() + "&type=" + floorContent.getFormType(); } else { return "redirect:" + Global.getAdminPath() + "/cmpage/cmPageCentre/goContentPage?centreId=" + floorContent.getCentreId() + "&pageId=" + floorContent.getPageId() + "&type=" + floorContent.getFormType(); } } else { return "redirect:" + Global.getAdminPath() + "/cmpage/cmPageCentre/?pageId=" + floorContent.getPageId() + "&type=5"; } } @RequestMapping("/showTemplate") public String showTemplate() { return "modules/newhome/showTemplate"; } /** * 有数据变动时需要清除缓存 */ public void cleanRedisCache() { //清除活动专题缓存 redisService.removePattern("getPageFloorData*"); //清除活动专题缓存 redisService.removePattern("activityData*"); //清除产品仪器缓存 redisService.removePattern("instrumentData*"); redisService.removePattern("insCommodityData*"); //首页缓存 String homeData = "getHomeData*"; redisService.removePattern(homeData); redisService.removePattern("getHomeCommodityData*"); // 重新生成静态首页 generateUtils.generateHome(); } }