123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366 |
- package com.caimei.modules.newhome.web;
- import com.caimei.constants.common.RedisKeyUtil;
- import com.caimei.modules.newhome.entity.NewPageZone;
- import com.caimei.modules.newhome.entity.NewPageZoneImage;
- import com.caimei.modules.newhome.service.NewPageZoneService;
- 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.caimei.utils.AppUtils;
- 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.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 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
- @RequestMapping(value = "${adminPath}/newhome/newPageZone")
- public class NewPageZoneController extends BaseController {
- @Resource
- private NewPageZoneService newPageZoneService;
- @Resource
- private ProductService productService;
- @Resource
- private RedisService redisService;
- @Resource
- private GenerateUtils generateUtils;
- @ModelAttribute
- public NewPageZone get(@RequestParam(required = false) String id) {
- NewPageZone entity = null;
- if (StringUtils.isNotBlank(id)) {
- entity = newPageZoneService.get(id);
- }
- if (entity == null) {
- entity = new NewPageZone();
- }
- return entity;
- }
- @RequiresPermissions("newhome:newPageZone:view")
- @RequestMapping(value = {"list", ""})
- public String list(NewPageZone newPageZone, HttpServletRequest request, HttpServletResponse response, Model model) {
- Page<NewPageZone> page = newPageZoneService.findPage(new Page<NewPageZone>(request, response), newPageZone);
- model.addAttribute("page", page);
- return "modules/newhome/newPageZoneList";
- }
- @RequestMapping(value = "imageList")
- public String imageList(NewPageZoneImage image, HttpServletRequest request, HttpServletResponse response, Model model) {
- Page<NewPageZoneImage> page = newPageZoneService.findImagePage(new Page<NewPageZoneImage>(request, response), image);
- model.addAttribute("zoneImage", image);
- model.addAttribute("page", page);
- return "modules/newhome/zoneImageList";
- }
- @RequestMapping(value = "imageForm")
- public String form(NewPageZoneImage image, Model model) {
- if (null != image.getImageId()) {
- image = newPageZoneService.getImage(image);
- }
- if (image == null) {
- image = new NewPageZoneImage();
- }
- model.addAttribute("zoneImage", image);
- return "modules/newhome/zoneImageForm";
- }
- @RequestMapping(value = "imageSave")
- public String save(NewPageZoneImage image, RedirectAttributes redirectAttributes, HttpServletRequest request) {
- newPageZoneService.saveImage(image, request);
- cleanRedisCache(null);
- //清除首页轮播图缓存
- redisService.remove("getHomeBanners::www");
- addMessage(redirectAttributes, "保存新首页轮播图成功");
- return "redirect:" + Global.getAdminPath() + "/newhome/newPageZone/imageList?zoneId=" + image.getZoneId();
- }
- @RequestMapping(value = "imageDelete")
- public String imageDelete(NewPageZoneImage image, RedirectAttributes redirectAttributes) {
- newPageZoneService.imageDelete(image);
- cleanRedisCache();
- addMessage(redirectAttributes, "删除楼层管理成功");
- return "redirect:" + Global.getAdminPath() + "/newhome/newPageZone/imageList/?zoneId=" + image.getZoneId();
- }
- @ResponseBody
- @RequestMapping(value = "updateImageCrmEnabledStatusByIds")
- public Map<String, Object> updateImageCrmEnabledStatusByIds(String crmEnabledStatus, String[] ids) {
- Map<String, Object> map = Maps.newLinkedHashMap();
- try {
- newPageZoneService.updateImageCrmEnabledStatusByIds(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;
- }
- @ResponseBody
- @RequestMapping(value = "updateImageEnabledStatus")
- public Map<String, Object> updateImageEnabledStatus(String enabledStatus, String[] ids) {
- Map<String, Object> map = Maps.newLinkedHashMap();
- try {
- newPageZoneService.updateImageEnabledStatusByIds(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;
- }
- @RequestMapping(value = "updateImageSort")
- @ResponseBody
- public Map<String, Object> updateImageSort(String sortNums) {
- Map<String, Object> map = Maps.newLinkedHashMap();
- try {
- newPageZoneService.updateImageSorts(sortNums);
- cleanRedisCache();
- map.put("success", true);
- map.put("msg", "更新排序成功");
- return map;
- } catch (Exception e) {
- map.put("success", false);
- map.put("msg", "更新排序失败");
- return map;
- }
- }
- @RequestMapping(value = "productList")
- public String productList(Integer zoneId, HttpServletRequest request, HttpServletResponse response, Model model) {
- Page<Product> page = new Page<Product>(request, response);
- if (0 == page.getPageSize() || -1 == page.getPageSize()) page.setPageSize(20);
- if (0 == page.getPageNo()) page.setPageNo(1);
- //获取组合列表
- List<Product> list = newPageZoneService.findZoneProductList(zoneId, page);
- page.setList(list);
- model.addAttribute("zoneId", zoneId);
- model.addAttribute("page", page);
- return "modules/newhome/zoneProductList";
- }
- @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<Product> productList = newPageZoneService.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<String, Object> saveAddProduct(Product product) {
- Map<String, Object> map = Maps.newLinkedHashMap();
- try {
- String[] split = product.getProductIds().split(",");
- //保存商品添加的组合
- newPageZoneService.addProducts(split, product.getZoneId());
- map.put("success", true);
- map.put("msg", "添加成功");
- } catch (Exception e) {
- map.put("success", false);
- map.put("msg", "添加失败");
- }
- return map;
- }
- @RequiresPermissions("newhome:newPageZone:view")
- @RequestMapping(value = "form")
- public String form(NewPageZone newPageZone, Model model) {
- model.addAttribute("newPageZone", newPageZone);
- return "modules/newhome/newPageZoneForm";
- }
- @RequestMapping(value = "save")
- public String save(Integer floor, NewPageZone newPageZone, Model model, RedirectAttributes redirectAttributes) {
- if (!beanValidator(model, newPageZone)) {
- return form(newPageZone, model);
- }
- newPageZoneService.save(newPageZone);
- cleanRedisCache();
- addMessage(redirectAttributes, "保存楼层管理成功");
- if (floor != null) {
- return "redirect:" + Global.getAdminPath() + "/newhome/newPageZone/lists";
- } else {
- return "redirect:" + Global.getAdminPath() + "/newhome/newPageZone";
- }
- }
- @RequestMapping(value = "delete")
- public String delete(NewPageZone newPageZone, RedirectAttributes redirectAttributes) {
- newPageZoneService.deleteZone(newPageZone);
- cleanRedisCache();
- addMessage(redirectAttributes, "删除楼层管理成功");
- return "redirect:" + Global.getAdminPath() + "/newhome/newPageZone/?repage";
- }
- @ResponseBody
- @RequestMapping(value = "updateEnabledStatus")
- public Map<String, Object> updateEnabledStatus(String enabledStatus, String[] ids) {
- Map<String, Object> map = Maps.newLinkedHashMap();
- try {
- newPageZoneService.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;
- }
- @ResponseBody
- @RequestMapping(value = "updateCrmEnabledStatusByIds")
- public Map<String, Object> updateCrmEnabledStatusByIds(String crmEnabledStatus, String[] ids) {
- Map<String, Object> map = Maps.newLinkedHashMap();
- try {
- newPageZoneService.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 = "batchSaveSort")
- @ResponseBody
- public Map<String, Object> batchSaveSort(String sortList, Integer zoneId) {
- Map<String, Object> 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;
- newPageZoneService.saveSort(sort, id, zoneId);
- } else {
- String id = split[0];
- String sort = split[1];
- if (isInteger(sort)) {
- newPageZoneService.saveSort(sort, id, zoneId);
- } 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<Product> page = productService.findProductImage(new Page<Product>(request, response), product);
- model.addAttribute("page", page);
- model.addAttribute("productCategory", product.getProductCategory());
- model.addAttribute("productIds", product.getProductIds());
- return "modules/newhome/addProductImage";
- }
- @RequestMapping(value = "deleteProduct")
- public String productDel(Integer productId, Integer zoneId, RedirectAttributes redirectAttributes) {
- newPageZoneService.productDel(productId, zoneId);
- addMessage(redirectAttributes, "删除成功");
- return "redirect:" + Global.getAdminPath() + "/newhome/newPageZone/productList?zoneId=" + zoneId;
- }
- /**
- * 有数据变动时需要清除缓存
- */
- 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();
- }
- public void cleanRedisCache(String caller) {
- if (null == caller) {
- String www = RedisKeyUtil.getNewPageHomeImageKey("WWW");
- if (redisService.exists(www)) {
- redisService.remove(www);
- }
- String crm = RedisKeyUtil.getNewPageHomeImageKey("CRM");
- if (redisService.exists(crm)) {
- redisService.remove(crm);
- }
- // 重新生成静态首页
- generateUtils.generateHome();
- }
- }
- }
|