package com.caimei.modules.newhome.web; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.caimei.constants.common.RedisKeyUtil; import com.caimei.modules.newhome.entity.NewPageQualitySupplierImage; import com.caimei.modules.opensearch.GenerateUtils; import com.caimei.modules.product.entity.CmBigtype; import com.caimei.redis.RedisService; import com.google.common.collect.Maps; import org.apache.commons.collections.CollectionUtils; 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 com.thinkgem.jeesite.common.config.Global; import com.thinkgem.jeesite.common.persistence.Page; import com.thinkgem.jeesite.common.web.BaseController; import com.thinkgem.jeesite.common.utils.StringUtils; import com.caimei.modules.newhome.entity.NewPageQualitySupplier; import com.caimei.modules.newhome.service.NewPageQualitySupplierService; import java.util.List; import java.util.Map; import java.util.regex.Pattern; /** * 优质供应商Controller * @author ye.qiin * @version 2019-03-18 */ @Controller @RequestMapping(value = "${adminPath}/newhome/newPageQualitySupplier") public class NewPageQualitySupplierController extends BaseController { @Autowired private NewPageQualitySupplierService newPageQualitySupplierService; @Autowired private RedisService redisService; @Resource private GenerateUtils generateUtils; @ModelAttribute public NewPageQualitySupplier get(@RequestParam(required=false) String id) { NewPageQualitySupplier entity = null; if (StringUtils.isNotBlank(id)){ entity = newPageQualitySupplierService.get(id); } if (entity == null){ entity = new NewPageQualitySupplier(); } return entity; } @RequiresPermissions("newhome:newPageQualitySupplier:view") @RequestMapping(value = {"list", ""}) public String list(NewPageQualitySupplier newPageQualitySupplier, HttpServletRequest request, HttpServletResponse response, Model model) { Page page = newPageQualitySupplierService.findPage(new Page(request, response), newPageQualitySupplier); model.addAttribute("page", page); return "modules/newhome/newPageQualitySupplierList"; } @RequiresPermissions("newhome:newPageQualitySupplier:view") @RequestMapping(value = "form") public String form(NewPageQualitySupplier newPageQualitySupplier, Model model) { model.addAttribute("newPageQualitySupplier", newPageQualitySupplier); return "modules/newhome/newPageQualitySupplierForm"; } @RequiresPermissions("newhome:newPageQualitySupplier:view") @RequestMapping(value = "formImage") public String formImage(NewPageQualitySupplierImage newPageQualitySupplierImage, Model model) { NewPageQualitySupplierImage image = newPageQualitySupplierService.getImage(); model.addAttribute("NewPageQualitySupplierImage", image); return "modules/newhome/newPageQualitySupplierImage"; } @RequiresPermissions("newhome:newPageQualitySupplier:edit") @RequestMapping(value = "saveImage") public String saveImage(NewPageQualitySupplierImage newPageQualitySupplierImage,HttpServletRequest request, Model model, RedirectAttributes redirectAttributes) { if (!beanValidator(model, newPageQualitySupplierImage)){ return formImage(newPageQualitySupplierImage, model); } if (checkValidator(model, newPageQualitySupplierImage)){ return formImage(newPageQualitySupplierImage, model); } newPageQualitySupplierService.saveImage(newPageQualitySupplierImage,request); cleanRedisCache(); addMessage(redirectAttributes, "保存供应商广告图成功"); return "redirect:"+Global.getAdminPath()+"/newhome/newPageQualitySupplier/"; } private boolean checkValidator(Model model, NewPageQualitySupplierImage image) { if (!beanValidator(model, image)){ return true; } if (StringUtils.isEmpty(image.getWwwImage())) { model.addAttribute("errorMsg", "请上传网站端图!"); return true; } if (StringUtils.isEmpty(image.getCrmImage())) { model.addAttribute("errorMsg", "请上传小程序端图!"); return true; } return false; } @RequiresPermissions("newhome:newPageQualitySupplier:edit") @RequestMapping(value = "batchSaveSort") @ResponseBody public Map batchSaveSort(String newPageList, HttpServletRequest request, Model model, RedirectAttributes redirectAttributes) { Map map = Maps.newLinkedHashMap(); try { String[] newPageLists = newPageList.split(","); for(String list:newPageLists){ String[] split = list.split("-"); String s = split[1];//判断是否是数字,或者为空 if(StringUtils.isNotEmpty(s)){ if( isInteger(s)){ NewPageQualitySupplier newPageQualitySupplier = new NewPageQualitySupplier(); newPageQualitySupplier.setId(split[0]); newPageQualitySupplier.setSort(split[1]); newPageQualitySupplierService.saveSort(newPageQualitySupplier,request); }else{ map.put("success",false); map.put("msg", "排序值只能为数字"); return map; } }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; } } public static boolean isInteger(String str) { Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); return pattern.matcher(str).matches(); } @RequiresPermissions("newhome:newPageQualitySupplier:edit") @RequestMapping(value = "save") public String save(NewPageQualitySupplier newPageQualitySupplier,HttpServletRequest request, Model model, RedirectAttributes redirectAttributes) { if (!beanValidator(model, newPageQualitySupplier)){ return form(newPageQualitySupplier, model); } newPageQualitySupplierService.save(newPageQualitySupplier,request); cleanRedisCache(); addMessage(redirectAttributes, "保存优质供应商成功"); return "redirect:"+Global.getAdminPath()+"/newhome/newPageQualitySupplier/?repage"; } @RequiresPermissions("newhome:newPageQualitySupplier:delete") @RequestMapping(value = "delete") public String delete(NewPageQualitySupplier newPageQualitySupplier, RedirectAttributes redirectAttributes) { newPageQualitySupplierService.delete(newPageQualitySupplier); cleanRedisCache(); addMessage(redirectAttributes, "删除优质供应商成功"); return "redirect:"+Global.getAdminPath()+"/newhome/newPageQualitySupplier/?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 { newPageQualitySupplierService.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 { newPageQualitySupplierService.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; } /** * 有数据变动时需要清除缓存 */ public void cleanRedisCache() { //首页缓存 String homeData = "getHomeData*"; redisService.removePattern(homeData); redisService.removePattern("getHomeCommodityData*"); // 重新生成静态首页 generateUtils.generateHome(); } }