浏览代码

Merge remote-tracking branch 'remotes/origin/developer' into developerA

Aslee 4 年之前
父节点
当前提交
53d1d24be9
共有 25 个文件被更改,包括 207 次插入88 次删除
  1. 9 4
      src/main/java/com/caimei/modules/cmpage/web/CmImageController.java
  2. 3 3
      src/main/java/com/caimei/modules/cmpage/web/CmPageCentreController.java
  3. 14 1
      src/main/java/com/caimei/modules/info/web/InfoController.java
  4. 18 2
      src/main/java/com/caimei/modules/live/web/NewPageLiveController.java
  5. 25 0
      src/main/java/com/caimei/modules/newhome/web/NewPageFirstNavigationController.java
  6. 1 1
      src/main/java/com/caimei/modules/newhome/web/NewPageFloorController.java
  7. 17 9
      src/main/java/com/caimei/modules/opensearch/GenerateUtils.java
  8. 17 26
      src/main/java/com/caimei/modules/opensearch/SearchUitls.java
  9. 23 22
      src/main/java/com/caimei/modules/product/web/CmBigtypeController.java
  10. 21 5
      src/main/java/com/caimei/modules/product/web/CmPromotionController.java
  11. 6 1
      src/main/java/com/caimei/modules/product/web/CmSecondHandDetailController.java
  12. 1 0
      src/main/java/com/caimei/modules/product/web/CmSmalltypeController.java
  13. 1 0
      src/main/java/com/caimei/modules/product/web/CmTinytypeController.java
  14. 20 3
      src/main/java/com/caimei/modules/product/web/ProductNewController.java
  15. 1 0
      src/main/resources/config/beta/caimei.properties
  16. 1 1
      src/main/resources/config/dev/caimei.properties
  17. 1 0
      src/main/resources/config/product/caimei.properties
  18. 1 0
      src/main/webapp/WEB-INF/views/modules/basesetting/helpPageEdit.jsp
  19. 3 2
      src/main/webapp/WEB-INF/views/modules/cmpage/cmPageList.jsp
  20. 1 0
      src/main/webapp/WEB-INF/views/modules/info/infoForm.jsp
  21. 3 2
      src/main/webapp/WEB-INF/views/modules/info/infoList.jsp
  22. 14 3
      src/main/webapp/WEB-INF/views/modules/newhome/newPageFirstNavigationList.jsp
  23. 1 0
      src/main/webapp/WEB-INF/views/modules/product-new/productEdit.jsp
  24. 3 2
      src/main/webapp/WEB-INF/views/modules/product-new/productList.jsp
  25. 2 1
      src/main/webapp/WEB-INF/views/modules/product-new/secondHand.jsp

+ 9 - 4
src/main/java/com/caimei/modules/cmpage/web/CmImageController.java

@@ -4,6 +4,7 @@ import com.caimei.constants.common.RedisKeyUtil;
 import com.caimei.modules.cmpage.entity.CmImage;
 import com.caimei.modules.cmpage.service.CmImageService;
 import com.caimei.modules.info.entity.Info;
+import com.caimei.modules.opensearch.GenerateUtils;
 import com.caimei.redis.RedisService;
 import com.google.common.collect.Maps;
 import com.thinkgem.jeesite.common.config.Global;
@@ -21,6 +22,7 @@ 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.text.ParseException;
@@ -41,7 +43,8 @@ public class CmImageController extends BaseController {
 
 	@Autowired
 	private CmImageService cmImageService;
-
+    @Resource
+    private GenerateUtils generateUtils;
 	@Autowired
 	private RedisService redisService;
 
@@ -56,7 +59,7 @@ public class CmImageController extends BaseController {
 		}
 		return entity;
 	}
-	
+
 	@RequiresPermissions("cmpage:cmImage:view")
 	@RequestMapping(value = {"list", ""})
 	public String list(CmImage cmImage, HttpServletRequest request, HttpServletResponse response, Model model) {
@@ -184,7 +187,7 @@ public class CmImageController extends BaseController {
 		}
 		return "redirect:"+Global.getAdminPath()+"/cmpage/cmImage?flag="+cmImage.getFlag();
 	}
-	
+
 	@RequiresPermissions("cmpage:cmImage:delete")
 	@RequestMapping(value = "delete")
 	public String delete(CmImage cmImage, RedirectAttributes redirectAttributes) {
@@ -321,6 +324,8 @@ public class CmImageController extends BaseController {
 				redisService.remove(pageImageKey);
 			}
 		}
+        // 重新生成静态首页
+        generateUtils.generateHome();
 	}
 
-}
+}

+ 3 - 3
src/main/java/com/caimei/modules/cmpage/web/CmPageCentreController.java

@@ -109,7 +109,7 @@ public class CmPageCentreController extends BaseController {
         addMessage(redirectAttributes, "保存成功");
         if ("5".equals(cmPageCentre.getType())) {
             //清除产品仪器缓存
-            redisService.removePattern("instrumentData*");
+            redisService.removePattern("instrumentData*");redisService.removePattern("insCommodityData*");
         } else if ("6".equals(cmPageCentre.getType())) {
             //清除活动专题缓存
             redisService.removePattern("activityData*");
@@ -206,7 +206,7 @@ public class CmPageCentreController extends BaseController {
                 }
             }
             //清除产品仪器缓存
-            redisService.removePattern("instrumentData*");
+            redisService.removePattern("instrumentData*");redisService.removePattern("insCommodityData*");
             //清除活动专题缓存
             redisService.removePattern("activityData*");
             map.put("success", true);
@@ -230,4 +230,4 @@ public class CmPageCentreController extends BaseController {
         }
         return "modules/newhome/newPageFloorContentForm";
     }
-}
+}

+ 14 - 1
src/main/java/com/caimei/modules/info/web/InfoController.java

@@ -2,12 +2,14 @@ package com.caimei.modules.info.web;
 
 import java.util.*;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import com.caimei.modules.info.entity.CmInfoDocSyn;
 import com.caimei.modules.info.service.CmInfoDocSynService;
 import com.caimei.modules.live.entity.NewPageLive;
+import com.caimei.modules.opensearch.GenerateUtils;
 import com.caimei.modules.opensearch.SearchUitls;
 import com.caimei.redis.RedisService;
 import org.apache.commons.collections.CollectionUtils;
@@ -52,7 +54,8 @@ public class InfoController extends BaseController {
     private SearchUitls searchUitls;
     @Autowired
 	private RedisService redisService;
-
+    @Resource
+    private GenerateUtils generateUtils;
 	@ModelAttribute
 	public Info get(@RequestParam(required=false) String id) {
 		Info entity = null;
@@ -163,6 +166,8 @@ public class InfoController extends BaseController {
 		if (info.getTopPosition() != null && !StringUtils.equals("", info.getTopPosition())) {
 			//清除置顶,将后面置顶位的数据往前移
 			infoService.moveTopList(info);
+			// 重新生成静态首页
+			generateUtils.generateHome();
 		}
 		addMessage(redirectAttributes, "删除信息成功");
 		// 删除索引
@@ -193,6 +198,12 @@ public class InfoController extends BaseController {
 			for (String id : ids){
 				// 更新索引
 				searchUitls.updateArticleIndex(Integer.valueOf(id));
+				Info info = infoService.get(id);
+				Boolean topFlag = (info.getTopPosition() != null && !StringUtils.equals("", info.getTopPosition())) ? true : false;
+            	if (topFlag) {
+					// 重新生成静态首页
+					generateUtils.generateHome();
+				}
 			}
 		} catch (Exception e) {
 			logger.debug(e.toString(),e);
@@ -236,6 +247,8 @@ public class InfoController extends BaseController {
                 oldInfo.setTopPosition(oldTopPosition);
                 infoService.moveTopList(oldInfo);
             }
+			// 重新生成静态首页
+			generateUtils.generateHome();
 			map.put("success",true);
 		} catch (Exception e) {
 			logger.debug(e.toString(),e);

+ 18 - 2
src/main/java/com/caimei/modules/live/web/NewPageLiveController.java

@@ -1,10 +1,12 @@
 package com.caimei.modules.live.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.live.entity.NewPageLiveAdvertisingImage;
+import com.caimei.modules.opensearch.GenerateUtils;
 import com.google.common.collect.Maps;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,6 +39,8 @@ public class NewPageLiveController extends BaseController {
 
 	@Autowired
 	private NewPageLiveService newPageLiveService;
+    @Resource
+    private GenerateUtils generateUtils;
 
 	@ModelAttribute
 	public NewPageLive get(@RequestParam(required=false) String id) {
@@ -49,7 +53,7 @@ public class NewPageLiveController extends BaseController {
 		}
 		return entity;
 	}
-	
+
 	@RequiresPermissions("live:newPageLive:view")
 	@RequestMapping(value = {"list", ""})
 	public String list(NewPageLive newPageLive, HttpServletRequest request, HttpServletResponse response, Model model) {
@@ -77,6 +81,7 @@ public class NewPageLiveController extends BaseController {
             return form(newPageLive, model);
         }
 		newPageLiveService.save(newPageLive);
+		cleanRedisCache();
 		addMessage(redirectAttributes, "保存直播成功");
 		return "redirect:"+Global.getAdminPath()+"/live/newPageLive/?repage";
 	}
@@ -100,6 +105,7 @@ public class NewPageLiveController extends BaseController {
 	@RequestMapping(value = "delete")
 	public String delete(NewPageLive newPageLive, RedirectAttributes redirectAttributes) {
 		newPageLiveService.delete(newPageLive);
+		cleanRedisCache();
         addMessage(redirectAttributes, "删除直播成功");
 		return "redirect:"+Global.getAdminPath()+"/live/newPageLive/?repage";
 	}
@@ -165,6 +171,7 @@ public class NewPageLiveController extends BaseController {
                 newPageLiveService.moveTopList(oldPageLive);
             }
             map.put("success",true);
+            cleanRedisCache();
         } catch (Exception e) {
             logger.debug(e.toString(),e);
             map.put("success",false);
@@ -190,8 +197,17 @@ public class NewPageLiveController extends BaseController {
             return advertisingImageForm(model);
         }
         newPageLiveService.saveAdvertisingImage(advertisingImage);
+        cleanRedisCache();
         addMessage(redirectAttributes, "添加成功");
         return "redirect:"+Global.getAdminPath()+"/live/newPageLive/?repage";
     }
 
-}
+    /**
+     * 有数据变动时需要清除缓存
+     */
+    public void cleanRedisCache() {
+        // 重新生成静态首页
+        generateUtils.generateHome();
+    }
+
+}

+ 25 - 0
src/main/java/com/caimei/modules/newhome/web/NewPageFirstNavigationController.java

@@ -197,6 +197,31 @@ public class NewPageFirstNavigationController extends BaseController {
             return map;
         }
     }
+    /**
+     * 生成静态首页
+     */
+    @RequestMapping(value = "updateStaticHome")
+    @ResponseBody
+    public Map<String, Object> updateStaticHome(){
+        Map<String, Object> map = Maps.newLinkedHashMap();
+        try {
+            //首页缓存
+            redisService.removePattern("getNavMenu*");
+            redisService.removePattern("getClassify*");
+            redisService.removePattern("getCommodityClassify*");
+            redisService.removePattern("getHomeData*");
+            redisService.removePattern("getHomeCommodityData*");
+            // 重新生成静态首页
+            generateUtils.generateHome();
+            map.put("success", true);
+            map.put("msg", "手动生成静态首页成功");
+            return map;
+        } catch (Exception e) {
+            map.put("success", false);
+            map.put("msg", "手动生成静态首页失败");
+            return map;
+        }
+    }
 
     /**
      * 有数据变动时需要清除缓存

+ 1 - 1
src/main/java/com/caimei/modules/newhome/web/NewPageFloorController.java

@@ -306,7 +306,7 @@ public class NewPageFloorController extends BaseController {
             return "redirect:" + Global.getAdminPath() + "/cmpage/cmPageCentre/?pageId=" + floorContent.getPageId() + "&type=6";
         } else {
             //清除产品仪器缓存
-            redisService.removePattern("instrumentData*");
+            redisService.removePattern("instrumentData*");redisService.removePattern("insCommodityData*");
             return "redirect:" + Global.getAdminPath() + "/cmpage/cmPageCentre/?pageId=" + floorContent.getPageId() + "&type=5";
         }
     }

+ 17 - 9
src/main/java/com/caimei/modules/opensearch/GenerateUtils.java

@@ -1,6 +1,8 @@
 package com.caimei.modules.opensearch;
 
 import com.thinkgem.jeesite.common.config.Global;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
@@ -15,16 +17,22 @@ import org.springframework.web.client.RestTemplate;
 @Component
 public class GenerateUtils {
 
+	protected Logger logger = LoggerFactory.getLogger(getClass());
+
     public void generateHome(){
-        // 获取www服务器地址
-        String wwwServer = Global.getConfig("wwwServer");
-        RestTemplate restTemplate = new RestTemplate();
-        MultiValueMap<String, Integer> paramMap = new LinkedMultiValueMap<>();
-        String uri = wwwServer + "/generate/home";
-        // 发起Post请求
-        String result = restTemplate.postForObject(uri, paramMap, String.class);
-        System.out.println("生成www静态首页:" + result);
+        try {
+            // 获取www服务器地址
+            String wwwServer = Global.getConfig("wwwServer");
+            RestTemplate restTemplate = new RestTemplate();
+            MultiValueMap<String, Integer> paramMap = new LinkedMultiValueMap<>();
+            String uri = wwwServer + "/generate/home";
+            // 发起Post请求
+            String result = restTemplate.postForObject(uri, paramMap, String.class);
+            logger.info("生成www静态首页:" + result);
+        }  catch (Exception e) {
+            logger.info("生成www静态首页失败!");
+            logger.error(e.toString(), e);
+        }
     }
 
-
 }

+ 17 - 26
src/main/java/com/caimei/modules/opensearch/SearchUitls.java

@@ -1,6 +1,8 @@
 package com.caimei.modules.opensearch;
 
 import com.thinkgem.jeesite.common.config.Global;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
@@ -14,57 +16,46 @@ import org.springframework.web.client.RestTemplate;
  */
 @Component
 public class SearchUitls {
-
+	Logger logger = LoggerFactory.getLogger(getClass());
     public void updateProductIndex(Integer productId){
-        MultiValueMap<String, Integer> paramMap = new LinkedMultiValueMap<>();
-        paramMap.add("pid", productId);
-        updatePost("/update/product", paramMap);
+        updatePost("/update/product?productId=" + productId);
     }
 
     public void deleteProductIndex(Integer productId){
-        MultiValueMap<String, Integer> paramMap = new LinkedMultiValueMap<>();
-        paramMap.add("pid", productId);
-        updatePost("/delete/product", paramMap);
+        updatePost("/delete/product?productId=" + productId);
     }
 
     public void updateArticleIndex(Integer articleId){
-        MultiValueMap<String, Integer> paramMap = new LinkedMultiValueMap<>();
-        paramMap.add("aid", articleId);
-        updatePost("/update/article", paramMap);
+        updatePost("/update/article?articleId=" + articleId);
     }
 
     public void deleteArticleIndex(Integer articleId){
-        MultiValueMap<String, Integer> paramMap = new LinkedMultiValueMap<>();
-        paramMap.add("aid", articleId);
-        updatePost("/delete/article", paramMap);
+        updatePost("/delete/article?articleId=" + articleId);
     }
 
     public void updateAllArticleIndex(){
-        updatePost("/update/article",null);
+        updatePost("/article/all");
     }
 
     public void updateShopIndex(Integer shopId){
-        MultiValueMap<String, Integer> paramMap = new LinkedMultiValueMap<>();
-        paramMap.add("sid", shopId);
-        updatePost("/update/supplier", paramMap);
+        updatePost("/update/shop?shopId=" + shopId);
     }
 
     public void updateEquipmentIndex(Integer equipmentId){
-        MultiValueMap<String, Integer> paramMap = new LinkedMultiValueMap<>();
-        paramMap.add("eid", equipmentId);
-        updatePost("/update/equipment", paramMap);
+        updatePost("/update/equipment?equipmentId=" + equipmentId);
     }
 
-    private void updatePost(String path, MultiValueMap<String, Integer> paramMap){
-        // 获取spi服务器地址
-        String spiServer = Global.getConfig("caimei.spi");
+    private void updatePost(String path){
+        // 获取core服务器地址
+        String coreServer = Global.getConfig("caimei.core");
         RestTemplate restTemplate = new RestTemplate();
-        String uri = spiServer + "/search/manage" + path;
+        String uri = coreServer + "/commodity/search/index" + path;
         // 打印参数
-        System.out.println("更新索引uri:" + uri +",参数:"+ paramMap.toString());
+        logger.info("更新索引uri:" + uri);
         // 发起Post请求
+        MultiValueMap<String, Integer> paramMap = new LinkedMultiValueMap<>();
         String result = restTemplate.postForObject(uri, paramMap, String.class);
-        System.out.println("更新索引result:" + result);
+        logger.info("更新索引result:" + result);
     }
 
 

+ 23 - 22
src/main/java/com/caimei/modules/product/web/CmBigtypeController.java

@@ -1,12 +1,11 @@
 package com.caimei.modules.product.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.product.entity.BigType;
-import com.caimei.modules.product.entity.CmTinytype;
-import com.caimei.modules.product.entity.Product;
+import com.caimei.modules.opensearch.GenerateUtils;
 import com.caimei.redis.RedisService;
 import com.caimei.vo.JsonModel;
 import com.google.common.collect.Maps;
@@ -28,9 +27,7 @@ import com.caimei.modules.product.entity.CmBigtype;
 import com.caimei.modules.product.service.CmBigtypeService;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
 import java.util.Date;
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -47,7 +44,8 @@ public class CmBigtypeController extends BaseController {
 
 	@Autowired
 	private RedisService redisService;
-
+    @Resource
+    private GenerateUtils generateUtils;
 	@ModelAttribute
 	public CmBigtype get(@RequestParam(required=false) String id) {
 		CmBigtype entity = null;
@@ -190,22 +188,6 @@ public class CmBigtypeController extends BaseController {
 		addMessage(redirectAttributes, "删除大分类成功");
 		return "redirect:"+Global.getAdminPath()+"/product/cmBigtype/?repage";
 	}
-	/**
-	 * 有数据变动时需要清除缓存
-	 */
-	public void cleanRedisCache() {
-		String productTypeKey = RedisKeyUtil.getProductTypeKey();// 商品分类栏信息缓存
-		String crmProductTypeKey = RedisKeyUtil.getCrmProductTypeKey();// CRM端调用接口产生缓存清理
-		if (redisService.exists(productTypeKey)) {
-			redisService.remove(productTypeKey);//存在变更时清除Redis缓存数据
-		}
-		if (redisService.exists(crmProductTypeKey)) {
-			redisService.remove(crmProductTypeKey);//存在变更时清除Redis缓存数据
-		}
-        //分类缓存
-        String productClassify = "getClassify*";
-        redisService.removePattern(productClassify);
-	}
 
 	/**
 	 * 获取一级分类
@@ -231,5 +213,24 @@ public class CmBigtypeController extends BaseController {
 		cleanRedisCache();
 		return jsonModel.success("批量更新排序成功");
 	}
+	/**
+	 * 有数据变动时需要清除缓存
+	 */
+	public void cleanRedisCache() {
+		String productTypeKey = RedisKeyUtil.getProductTypeKey();// 商品分类栏信息缓存
+		String crmProductTypeKey = RedisKeyUtil.getCrmProductTypeKey();// CRM端调用接口产生缓存清理
+		if (redisService.exists(productTypeKey)) {
+			redisService.remove(productTypeKey);//存在变更时清除Redis缓存数据
+		}
+		if (redisService.exists(crmProductTypeKey)) {
+			redisService.remove(crmProductTypeKey);//存在变更时清除Redis缓存数据
+		}
+        //分类缓存
+        String productClassify = "getClassify*";
+        redisService.removePattern(productClassify);
+		redisService.removePattern("getCommodityClassify*");
+        // 重新生成静态首页
+        generateUtils.generateHome();
+	}
 
 }

+ 21 - 5
src/main/java/com/caimei/modules/product/web/CmPromotionController.java

@@ -1,13 +1,13 @@
 package com.caimei.modules.product.web;
 
-import com.caimei.modules.brand.service.ShopModelService;
 import com.caimei.modules.bulkpurchase.entity.PurchaseProduct;
 import com.caimei.modules.cibe.entity.Shop;
-import com.caimei.modules.product.entity.CmActivity;
+import com.caimei.modules.opensearch.GenerateUtils;
 import com.caimei.modules.product.entity.CmPromotion;
 import com.caimei.modules.product.entity.Product;
 import com.caimei.modules.product.service.CmPromotionService;
 import com.caimei.modules.product.service.ProductService;
+import com.caimei.redis.RedisService;
 import com.caimei.utils.AppUtils;
 import com.foxinmy.weixin4j.util.StringUtil;
 import com.thinkgem.jeesite.common.config.Global;
@@ -22,6 +22,7 @@ import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
 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.*;
@@ -40,9 +41,10 @@ public class CmPromotionController extends BaseController {
     private CmPromotionService cmPromotionService;
     @Autowired
     private ProductService productService;
-
-
-
+    @Autowired
+    private RedisService redisService;
+    @Resource
+    private GenerateUtils generateUtils;
     @ModelAttribute
     public CmPromotion get(@RequestParam(required = false) String id) {
         CmPromotion entity = null;
@@ -353,6 +355,7 @@ public class CmPromotionController extends BaseController {
             map.put("success", false);
             map.put("msg", "促销活动id不能为空");
         }
+        cleanRedisCache();
         return map;
     }
 
@@ -422,6 +425,7 @@ public class CmPromotionController extends BaseController {
         }
         cmPromotionService.save(cmPromotion);
         addMessage(redirectAttributes, "保存促销列表成功");
+        cleanRedisCache();
         return "redirect:" + Global.getAdminPath() + "/product/cmPromotions/?type="+cmPromotion.getType();
     }
 
@@ -434,4 +438,16 @@ public class CmPromotionController extends BaseController {
     public List<PurchaseProduct> getGifts(String id) {
         return cmPromotionService.findGiftPurchaseProduct(id);
     }
+
+
+    /**
+     * 有数据变动时需要清除缓存
+     */
+    public void cleanRedisCache() {
+        redisService.removePattern("getHomeData*");
+        redisService.removePattern("getHomeCommodityData*");
+        redisService.removePattern("insCommodityData*");
+        // 重新生成静态首页
+        generateUtils.generateHome();
+    }
 }

+ 6 - 1
src/main/java/com/caimei/modules/product/web/CmSecondHandDetailController.java

@@ -5,6 +5,7 @@ import com.caimei.modules.basesetting.entity.Address;
 import com.caimei.modules.brand.entity.CmBrand;
 import com.caimei.modules.brand.service.CmBrandService;
 import com.caimei.modules.common.utils.UploadUtils;
+import com.caimei.modules.opensearch.GenerateUtils;
 import com.caimei.modules.product.dao.ProductNewDao;
 import com.caimei.modules.product.entity.BigType;
 import com.caimei.modules.product.entity.CmSecondHandDetail;
@@ -32,6 +33,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
@@ -63,7 +65,8 @@ public class CmSecondHandDetailController extends BaseController {
     private ProductNewDao productNewDao;
     @Autowired
     private RedisService redisService;
-
+    @Resource
+    private GenerateUtils generateUtils;
     @ModelAttribute
     public CmSecondHandDetail get(@RequestParam(required = false) String id) {
         CmSecondHandDetail entity = null;
@@ -420,5 +423,7 @@ public class CmSecondHandDetailController extends BaseController {
         String homeData = "getHomeData*";
         redisService.removePattern(homeData);
         redisService.removePattern("getHomeCommodityData*");
+        // 重新生成静态首页
+        generateUtils.generateHome();
     }
 }

+ 1 - 0
src/main/java/com/caimei/modules/product/web/CmSmalltypeController.java

@@ -199,6 +199,7 @@ public class CmSmalltypeController extends BaseController {
 		//分类缓存
 		String productClassify = "getClassify*";
 		redisService.removePattern(productClassify);
+		redisService.removePattern("getCommodityClassify*");
 	}
 	/**
 	 * 获取二级分类

+ 1 - 0
src/main/java/com/caimei/modules/product/web/CmTinytypeController.java

@@ -324,6 +324,7 @@ public class CmTinytypeController extends BaseController {
         //分类缓存
         String productClassify = "getClassify*";
         redisService.removePattern(productClassify);
+        redisService.removePattern("getCommodityClassify*");
 	}
 
 	/**

+ 20 - 3
src/main/java/com/caimei/modules/product/web/ProductNewController.java

@@ -4,6 +4,7 @@ import com.caimei.modules.brand.entity.CmBrand;
 import com.caimei.modules.brand.service.CmBrandService;
 import com.caimei.modules.common.entity.Province;
 import com.caimei.modules.common.service.AreaService;
+import com.caimei.modules.opensearch.GenerateUtils;
 import com.caimei.modules.opensearch.SearchUitls;
 import com.caimei.modules.product.entity.*;
 import com.caimei.modules.product.service.*;
@@ -72,7 +73,8 @@ public class ProductNewController extends BaseController {
     private CmSecondHandDetailService cmSecondHandDetailService;
     @Autowired
     private RedisService redisService;
-
+    @Resource
+    private GenerateUtils generateUtils;
     @ModelAttribute
     public Product get(@RequestParam(required = false) String id) {
         Product entity = null;
@@ -325,8 +327,6 @@ public class ProductNewController extends BaseController {
             }
         }
         addMessage(redirectAttributes, "保存商品成功");
-        // 更新索引
-        searchUitls.updateProductIndex(product.getProductID());
         String editFlag = product.getEditFlag();
         if (StringUtils.equals("1", editFlag)) {
             redirectAttributes.addAttribute("id", product.getId());
@@ -346,6 +346,8 @@ public class ProductNewController extends BaseController {
         }
         // 有数据变动时需要清除缓存
         cleanRedisCache();
+        // 更新索引
+        searchUitls.updateProductIndex(product.getProductID());
         return "redirect:" + Global.getAdminPath() + "/product/new/list/";
     }
 
@@ -362,6 +364,7 @@ public class ProductNewController extends BaseController {
             map.put("msg", "操作成功");
             // 更新索引
             searchUitls.updateProductIndex(productId);
+            cleanRedisCache();
         } catch (Exception e) {
             logger.debug(e.toString(), e);
             map.put("success", false);
@@ -452,6 +455,7 @@ public class ProductNewController extends BaseController {
         }
         try {
             jsonModel = productService.editProductCustomClassification(productId, ids);
+            cleanRedisCache();
         } catch (Exception e) {
             jsonModel.error("数据异常");
         }
@@ -517,6 +521,7 @@ public class ProductNewController extends BaseController {
             productNewService.addProductImage(imgPath, productID, shopID, request);
             map.put("success", true);
             map.put("msg", "操作成功");
+            cleanRedisCache();
         } catch (Exception e) {
             logger.debug(e.toString(), e);
             map.put("success", false);
@@ -536,6 +541,7 @@ public class ProductNewController extends BaseController {
             productNewService.updateImageSort(productImageID, sortIndex);
             map.put("success", true);
             map.put("msg", "操作成功");
+            cleanRedisCache();
         } catch (Exception e) {
             logger.debug(e.toString(), e);
             map.put("success", false);
@@ -571,6 +577,7 @@ public class ProductNewController extends BaseController {
             }
             map.put("success", true);
             map.put("msg", "更新排序成功");
+            cleanRedisCache();
             return map;
         } catch (Exception e) {
             map.put("success", false);
@@ -623,6 +630,7 @@ public class ProductNewController extends BaseController {
             map.put("msg", "操作成功");
             // 更新索引
             searchUitls.updateProductIndex(productID);
+            cleanRedisCache();
         } catch (Exception e) {
             logger.debug(e.toString(), e);
             map.put("success", false);
@@ -644,6 +652,7 @@ public class ProductNewController extends BaseController {
             map.put("msg", "操作成功");
             // 更新索引
             searchUitls.updateProductIndex(productID);
+            cleanRedisCache();
         } catch (Exception e) {
             logger.debug(e.toString(), e);
             map.put("success", false);
@@ -682,6 +691,7 @@ public class ProductNewController extends BaseController {
                 // 删除索引
                 searchUitls.deleteProductIndex(productID);
             }
+            cleanRedisCache();
         } catch (Exception e) {
             logger.debug(e.toString(), e);
             map.put("success", false);
@@ -715,6 +725,7 @@ public class ProductNewController extends BaseController {
             } else {
                 cmSecondHandDetailService.updateRevieweInfo(date, date, productID);
             }
+            cleanRedisCache();
         } catch (Exception e) {
             logger.debug(e.toString(), e);
             map.put("success", false);
@@ -764,6 +775,7 @@ public class ProductNewController extends BaseController {
             // 更新商品库上下架状态
             productNewService.auditProduct(validFlag, productId);
             map.put("success", true);
+            cleanRedisCache();
         } catch (Exception e) {
             e.printStackTrace();
             logger.error(e.getMessage());
@@ -844,6 +856,7 @@ public class ProductNewController extends BaseController {
                 cmProductRecommendService.addRecommendProduct(productID, base.split(":")[0], base.split(":")[1]);
             }
         }
+        cleanRedisCache();
         return "redirect:" + Global.getAdminPath() + "/product/new/recommend?id=" + productID;
     }
 
@@ -855,6 +868,7 @@ public class ProductNewController extends BaseController {
     @RequestMapping(value = "recommend/delete")
     public String deleteProductRecommend(String productID, String recommendId) {
         cmProductRecommendService.deleteProductRecommend(recommendId);
+        cleanRedisCache();
         return "redirect:" + Global.getAdminPath() + "/product/new/recommend?id=" + productID;
     }
 
@@ -866,6 +880,9 @@ public class ProductNewController extends BaseController {
         String homeData = "getHomeData*";
         redisService.removePattern(homeData);
         redisService.removePattern("getHomeCommodityData*");
+        redisService.removePattern("insCommodityData*");
+        // 重新生成静态首页
+        generateUtils.generateHome();
     }
 }
 

+ 1 - 0
src/main/resources/config/beta/caimei.properties

@@ -174,6 +174,7 @@ export.template=/mnt/newdatadrive/data/custom/manager-export-template
 
 # SPI-server(CKEditor5图片上传API,搜索更新索引)
 caimei.spi=https://spi-b.caimei365.com
+caimei.core=https://core-b.caimei365.com
 
 #阿里云oss存储
 aliyun.accessKeyId=LTAI4GBL3o4YkWnbKYgf2Xia

+ 1 - 1
src/main/resources/config/dev/caimei.properties

@@ -188,7 +188,7 @@ export.template=export
 
 # SPI-server(CKEditor5图片上传API,搜索更新索引)
 caimei.spi=http://localhost:8008
-
+caimei.core=https://localhost:18002
 #阿里云oss存储
 aliyun.accessKeyId=LTAI4GBL3o4YkWnbKYgf2Xia
 aliyun.accessKeySecret=dBjAXqbYiEPP6Ukuk2ZsXQeET7FVkK

+ 1 - 0
src/main/resources/config/product/caimei.properties

@@ -175,6 +175,7 @@ export.template=/mnt/newdatadrive/data/custom/manager-export-template
 
 # SPI-server(CKEditor5图片上传API,搜索更新索引)
 caimei.spi=https://spi.caimei365.com
+caimei.core=https://core.caimei365.com
 
 #阿里云oss存储
 aliyun.accessKeyId=LTAI4GBL3o4YkWnbKYgf2Xia

+ 1 - 0
src/main/webapp/WEB-INF/views/modules/basesetting/helpPageEdit.jsp

@@ -88,6 +88,7 @@
 </form:form>
 <!-- 富文本编辑器 -->
 <% request.setAttribute("caimeiSpi", Global.getConfig("caimei.spi"));%>
+<% request.setAttribute("caimeiCore", Global.getConfig("caimei.core"));%>
 <script type="text/javascript" src="${ctxStatic}/ckeditor5-new/ckeditor.js"></script>
 <script type="text/javascript">
     //富文本框编辑

+ 3 - 2
src/main/webapp/WEB-INF/views/modules/cmpage/cmPageList.jsp

@@ -2,6 +2,7 @@
 <%@ page contentType="text/html;charset=UTF-8" %>
 <%@ include file="/WEB-INF/views/include/taglib.jsp"%>
 <% request.setAttribute("caimeiSpi", Global.getConfig("caimei.spi"));%>
+<% request.setAttribute("caimeiCore", Global.getConfig("caimei.core"));%>
 <html>
 <head>
     <title>网页列表</title>
@@ -71,7 +72,7 @@
                 }
                 $("#searchForm").submit();
             },"JSON");//这里返回的类型有:json,html,xml,text*/
-            $.post("${caimeiSpi}/search/manage/update/equipment", {eid: id}, function(res){
+            $.post("${caimeiCore}/commodity/search/index/update/equipment", {equipmentId: id}, function(res){
                 $.jBox.tip(res.msg, 'info');
                 $("#searchForm").submit();
             });
@@ -90,7 +91,7 @@
                         $("#searchForm").submit();
                     },"JSON");//这里返回的类型有:json,html,xml,text
                     */
-                    $.post("${caimeiSpi}/search/manage/update/equipment/all", function(res){
+                    $.post("${caimeiCore}/commodity/search/index/equipment/all", function(res){
                         $.jBox.tip(res.msg, 'info');
                         $("#searchForm").submit();
                     });

+ 1 - 0
src/main/webapp/WEB-INF/views/modules/info/infoForm.jsp

@@ -153,6 +153,7 @@
 	</form:form>
 <!-- 富文本编辑器 -->
 <% request.setAttribute("caimeiSpi", Global.getConfig("caimei.spi"));%>
+<% request.setAttribute("caimeiCore", Global.getConfig("caimei.core"));%>
 <script type="text/javascript" src="${ctxStatic}/ckeditor5-new/ckeditor.js"></script>
 <script type="text/javascript">
 		$(document).ready(function() {

+ 3 - 2
src/main/webapp/WEB-INF/views/modules/info/infoList.jsp

@@ -16,6 +16,7 @@
 	}
 	</style>
 	<% request.setAttribute("caimeiSpi", Global.getConfig("caimei.spi"));%>
+<% request.setAttribute("caimeiCore", Global.getConfig("caimei.core"));%>
 	<script type="text/javascript">
 		$(document).ready(function() {
 			show_title(16);
@@ -97,14 +98,14 @@
 
 		// 更新索引
 		function updateIndex(id) {
-			$.post("${caimeiSpi}/search/manage/update/article", {aid: id}, function(res){
+			$.post("${caimeiCore}/commodity/search/index/update/article", {articleId: id}, function(res){
 				$.jBox.tip(res.msg, 'info');
 			});
 		}
 		function updateAllIndex(){
 			var submit = function (v, h, f) {
 				if (v == true){
-					$.post("${caimeiSpi}/search/manage/update/article/all", function(res){
+					$.post("${caimeiCore}/commodity/search/index/article/all", function(res){
 						$.jBox.tip(res.msg, 'info');
 					});
 				}

+ 14 - 3
src/main/webapp/WEB-INF/views/modules/newhome/newPageFirstNavigationList.jsp

@@ -86,6 +86,16 @@
 				}
 			},"JSON");//这里返回的类型有:json,html,xml,text
 		}
+		// 手动生成静态首页
+		function updateStaticHome() {
+			$.post("${ctx}/newhome/newPageFirstNavigation/updateStaticHome", function(data) {
+				if(true==data.success){
+					$.jBox.tip(data.msg, 'info');
+				} else {
+					$.jBox.tip(data.msg,'error');
+				}
+			}, "JSON");
+		}
 
 		function g() {
 			//刷新页面
@@ -107,8 +117,9 @@
 <form:form id="searchForm" modelAttribute="newPageFirstNavigation" action="${ctx}/newhome/newPageFirstNavigation/" method="post" class="breadcrumb form-search">
 	<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
 	<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
-	<input class="btn btn-primary" style="width: 80px" onclick="batchSaveSort()" value="一键排序"/>&nbsp;&nbsp;&nbsp;&nbsp;
-	<input class="btn btn-primary" style="width: 80px" onclick="window.location='${ctx}/newhome/newPageFirstNavigation/form'" value="添加主菜单"/>
+	<input class="btn btn-primary" style="width:80px" onclick="batchSaveSort()" value="一键排序"/>&nbsp;&nbsp;&nbsp;&nbsp;
+	<input class="btn btn-primary" style="width:80px" onclick="window.location='${ctx}/newhome/newPageFirstNavigation/form'" value="添加主菜单"/>
+	<input class="btn btn-primary" style="width:100px" onclick="updateStaticHome()" value="生成静态首页"/>
 	<div style="margin-top: 10px">
 		<label><font color="#a9a9a9">注:排序值越小越靠前</font></label>
 	</div>
@@ -197,4 +208,4 @@
 </table>
 <div class="pagination">${page}</div>
 </body>
-</html>
+</html>

+ 1 - 0
src/main/webapp/WEB-INF/views/modules/product-new/productEdit.jsp

@@ -390,6 +390,7 @@
 </form:form>
 <!-- 富文本编辑器 -->
 <% request.setAttribute("caimeiSpi", Global.getConfig("caimei.spi"));%>
+<% request.setAttribute("caimeiCore", Global.getConfig("caimei.core"));%>
 <script type="text/javascript" src="${ctxStatic}/ckeditor5-new/ckeditor.js"></script>
 <script type="text/javascript">
     $(document).ready(function() {

+ 3 - 2
src/main/webapp/WEB-INF/views/modules/product-new/productList.jsp

@@ -285,6 +285,7 @@
 	</table>
 	<div class="pagination">${page}</div>
 <% request.setAttribute("caimeiSpi", Global.getConfig("caimei.spi"));%>
+<% request.setAttribute("caimeiCore", Global.getConfig("caimei.core"));%>
 <script type="text/javascript">
     var num = '';
     function page(n,s){
@@ -355,14 +356,14 @@
 
     // 更新索引
     function updateIndex(id) {
-		$.post("${caimeiSpi}/search/manage/update/product", {pid: id}, function(res){
+		$.post("${caimeiCore}/commodity/search/index/update/product", {productId: id}, function(res){
 			$.jBox.tip(res.msg, 'info');
 		});
     }
     function updateAllIndex(){
             var submit = function (v, h, f) {
                 if (v == true){
-                    $.post("${caimeiSpi}/search/manage/update/product/all", function(res){
+                    $.post("${caimeiCore}/commodity/search/index/product/all", function(res){
                         $.jBox.tip(res.msg, 'info');
                     });
                 }

+ 2 - 1
src/main/webapp/WEB-INF/views/modules/product-new/secondHand.jsp

@@ -293,6 +293,7 @@
 </table>
 <div class="pagination">${page}</div>
 <% request.setAttribute("caimeiSpi", Global.getConfig("caimei.spi"));%>
+<% request.setAttribute("caimeiCore", Global.getConfig("caimei.core"));%>
 <script type="text/javascript">
     var num = '';
     function page(n,s){
@@ -359,7 +360,7 @@
 
     // 更新索引
     function updateIndex(id) {
-        $.post("${caimeiSpi}/search/manage/update/product", {pid: id}, function(res){
+        $.post("${caimeiCore}/commodity/search/index/update/product", {productId: id}, function(res){
             $.jBox.tip(res.msg, 'info');
         });
     }