package com.caimei.modules.cmpage.web; import com.caimei.modules.cmpage.entity.CmImage; import com.caimei.modules.cmpage.entity.CmPageCentre; import com.caimei.modules.cmpage.service.CmImageService; import com.caimei.modules.cmpage.service.CmPageCentreService; import com.caimei.modules.newhome.entity.NewPageFloorContent; import com.caimei.modules.opensearch.GenerateUtils; import com.caimei.modules.product.entity.ActType; import com.caimei.modules.product.service.ActTypeService; 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.List; import java.util.Map; import static com.caimei.modules.newhome.web.NewPageQualitySupplierController.isInteger; /** * 相关商品管理Controller * * @author Lijun * @version 2017-05-04 */ @Controller @RequestMapping(value = "${adminPath}/cmpage/cmPageCentre") public class CmPageCentreController extends BaseController { @Autowired private CmPageCentreService cmPageCentreService; @Autowired private CmImageService cmImageService; @Autowired private ActTypeService actTypeService; @Autowired private RedisService redisService; @Resource private GenerateUtils generateUtils; @ModelAttribute public CmPageCentre get(@RequestParam(required = false) String id) { CmPageCentre entity = null; if (StringUtils.isNotBlank(id)) { entity = cmPageCentreService.get(id); } if (entity == null) { entity = new CmPageCentre(); } return entity; } @RequiresPermissions("cmpage:cmPageCentre:view") @RequestMapping(value = {"list", ""}) public String list(CmPageCentre cmPageCentre, HttpServletRequest request, HttpServletResponse response, Model model) { Page page = cmPageCentreService.findPage(new Page(request, response), cmPageCentre); model.addAttribute("page", page); if (StringUtils.isNotBlank(cmPageCentre.getPageId())) { String pageTitle = cmPageCentreService.findPageTitle(cmPageCentre.getPageId()); model.addAttribute("pageTitle", pageTitle); } //分页详情商品楼层 if ("5".equals(cmPageCentre.getType())) { return "modules/cmpage/cmPageDetailsCentreList"; } //活动专题商品楼层 if ("6".equals(cmPageCentre.getType())) { return "modules/cmpage/cmPageActivityCentreList"; } return "modules/cmpage/cmPageCentreList"; } @RequiresPermissions("cmpage:cmPageCentre:view") @RequestMapping(value = "form") public String form(CmPageCentre cmPageCentre, Model model) { model.addAttribute("cmPageCentre", cmPageCentre); //分页详情商品楼层 if ("5".equals(cmPageCentre.getType())) { return "modules/cmpage/cmPageDetailsCentreForm"; } //活动专题商品楼层 if ("6".equals(cmPageCentre.getType())) { return "modules/cmpage/cmPageActivityCentreForm"; } return "modules/cmpage/cmPageCentreForm"; } @RequiresPermissions("cmpage:cmPageCentre:edit") @RequestMapping(value = "save") public String save(CmPageCentre cmPageCentre, Model model, RedirectAttributes redirectAttributes) { if (!beanValidator(model, cmPageCentre)) { return form(cmPageCentre, model); } cmPageCentreService.save(cmPageCentre); addMessage(redirectAttributes, "保存成功"); if ("5".equals(cmPageCentre.getType())) { //清除产品仪器缓存 cleanRedisCache(); } else if ("6".equals(cmPageCentre.getType())) { //清除活动专题缓存 redisService.removePattern("activityData*"); } return "redirect:" + Global.getAdminPath() + "/cmpage/cmPageCentre/?pageId=" + cmPageCentre.getPageId() + "&type=" + cmPageCentre.getType(); } @RequiresPermissions("cmpage:cmPageCentre:delete") @RequestMapping(value = "delete") public String delete(CmPageCentre cmPageCentre, RedirectAttributes redirectAttributes) { cmPageCentreService.delete(cmPageCentre); if ("5".equals(cmPageCentre.getType())) { //清除产品仪器缓存 cleanRedisCache(); } if ("6".equals(cmPageCentre.getType())) { //清除活动专题缓存 redisService.removePattern("activityData*"); } addMessage(redirectAttributes, "删除成功"); return "redirect:" + Global.getAdminPath() + "/cmpage/cmPageCentre/?pageId=" + cmPageCentre.getPageId() + "&type=" + cmPageCentre.getType(); } @RequiresPermissions("cmpage:cmPageCentre:edit") @ResponseBody @RequestMapping(value = "updateEnabledStatus") public Map updateEnabledStatus(String enabledStatus, String[] ids, String[] supplierIDs, HttpServletRequest request, HttpServletResponse response) { Map map = Maps.newLinkedHashMap(); try { cmPageCentreService.updateEnabledStatusByIds(enabledStatus, ids); map.put("success", true); map.put("msg", "修改成功"); cleanRedisCache(); } catch (Exception e) { logger.debug(e.toString(), e); map.put("success", false); map.put("msg", "修改失败"); } return map; } @RequiresPermissions("cmpage:cmPageBigTopicFloor:edit") @ResponseBody @RequestMapping(value = "updateCrmEnabledStatusByIds") public Map updateCrmEnabledStatusByIds(String crmEnabledStatus, String[] ids, String[] supplierIDs, HttpServletRequest request, HttpServletResponse response) { Map map = Maps.newLinkedHashMap(); try { cmPageCentreService.updateCrmEnabledStatusByIds(crmEnabledStatus, ids); map.put("success", true); map.put("msg", "修改成功"); cleanRedisCache(); } catch (Exception e) { logger.debug(e.toString(), e); map.put("success", false); map.put("msg", "修改失败"); } return map; } @RequestMapping(value = {"pageList_multiselect"}) public String infoPageMulti(CmImage cmImage, HttpServletRequest request, HttpServletResponse response, Model model) { Page page = cmImageService.findPage(new Page(request, response), cmImage); model.addAttribute("page", page); model.addAttribute("type", cmImage.getType()); List typeList = actTypeService.findList(new ActType()); model.addAttribute("typeList", typeList); return "modules/cmpage/pageList_multiselect"; } /** * 批量更新排序值 */ @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; cmPageCentreService.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; } cmPageCentreService.saveSort(sort, id); } else { map.put("success", false); map.put("msg", "排序值只能为数字"); return map; } } } //清除产品仪器缓存 cleanRedisCache(); //清除活动专题缓存 redisService.removePattern("activityData*"); map.put("success", true); map.put("msg", "更新排序成功"); return map; } catch (Exception e) { map.put("success", false); map.put("msg", "更新排序失败"); return map; } } @RequestMapping(value = "goContentPage") public String goContentPage(NewPageFloorContent newPageFloorContent, Model model) { NewPageFloorContent floorContent = cmPageCentreService.findFloorContent(newPageFloorContent.getCentreId()); floorContent.setPageId(newPageFloorContent.getPageId()); floorContent.setType(newPageFloorContent.getType()); floorContent.setRedirectFlag(1); model.addAttribute("floorContent", floorContent); if ("6".equals(newPageFloorContent.getType())) { return "modules/newhome/activityFloorContentForm"; } return "modules/newhome/newPageFloorContentForm"; } public void cleanRedisCache() { //清除产品仪器缓存 redisService.removePattern("instrumentData*"); redisService.removePattern("insCommodityData*"); // 重新生成静态产品仪器页 generateUtils.generateProductType(286); generateUtils.generateProductType(287); } }