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.modules.product.entity.CmProductCombination; import com.caimei.modules.product.entity.Product; import com.caimei.redis.RedisService; import com.caimei.utils.AppUtils; import com.google.common.collect.Maps; import org.apache.commons.collections.CollectionUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; 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 { @Resource private NewPageQualitySupplierService newPageQualitySupplierService; @Resource 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 = "product") public String productList(NewPageQualitySupplier newPageQualitySupplier, Model model) { List productList = newPageQualitySupplierService.findSupplierProducts(newPageQualitySupplier); model.addAttribute("productList", productList); model.addAttribute("newPageQualitySupplier", newPageQualitySupplier); return "modules/newhome/newPageProductList"; } @RequestMapping(value = "batchSaveSorts") @ResponseBody public Map batchSaveSorts(String newProducSorttList, HttpServletRequest request, Model model, RedirectAttributes redirectAttributes) { Map map = Maps.newLinkedHashMap(); try { String[] newPageLists = newProducSorttList.split(","); for(String list:newPageLists){ String[] split = list.split("-"); if(split.length == 1 || split.length < 1){ map.put("success",false); map.put("msg", "排序值不能为空!"); return map; } String s = split[1]; //判断是否是数字,或者为空 if(StringUtils.isNotEmpty(s)){ if( isInteger(s)){ String id = split[0]; String sort = split[1]; //保存数据, newPageQualitySupplierService.saveBatchSort(sort,id); }else{ map.put("success",false); map.put("msg", "排序值只能为数字"); return map; } }else{ map.put("success",false); map.put("msg", "排序值不能为空!"); return map; } } map.put("success",true); map.put("msg", "更新排序成功"); return map; } catch (Exception e) { map.put("success",false); map.put("msg", "更新排序失败"); return map; } } @RequiresPermissions("newhome:newPageQualitySupplier:view") @RequestMapping(value = "productDel") public String productDel(NewPageQualitySupplier newPageQualitySupplier, RedirectAttributes redirectAttributes) { newPageQualitySupplierService.productDel(Integer.valueOf(newPageQualitySupplier.getId()),newPageQualitySupplier.getProductId()); addMessage(redirectAttributes, "删除成功"); return "redirect:" + Global.getAdminPath() + "/newhome/newPageQualitySupplier/product?id=" + newPageQualitySupplier.getId(); } @RequestMapping(value = "toAddProduct") public String toAddProduct(Product product, Page page, Model model) { //获取采美所有商品 if (0 == page.getPageSize() || -1 == page.getPageSize()) page.setPageSize(30); if (0 == page.getPageNo()) page.setPageNo(1); product.setPage(page); List productList = newPageQualitySupplierService.findProductList(product); if (CollectionUtils.isNotEmpty(productList)) { for (Product p : productList) { p.setMainImage(AppUtils.getProductImageURL(p.getMainImage(), 0, Global.getConfig("wwwServer"))); } } page.setList(productList); model.addAttribute("page", page); model.addAttribute("Product", product); return "modules/newhome/toSelectProduct"; } @ResponseBody @RequestMapping(value = "saveAddProduct") public Map saveAddProduct(String productIds,Integer id) { Map map = Maps.newLinkedHashMap(); try { String[] split = productIds.split(","); //保存商品添加的组合 newPageQualitySupplierService.addProducts(id,split); 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: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(); } }