From 985b6efb9d356633d22a3d760215bd90c116dc33 Mon Sep 17 00:00:00 2001 From: Menethil Date: Tue, 7 Aug 2018 04:01:57 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=95=B0=E6=8D=AE=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=B8=80=E4=B8=AA=E7=AE=80=E5=8D=95=E7=9A=84=E7=BC=93?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../litemall/wx/service/HomeCacheManager.java | 39 +++++++++++++++++++ .../litemall/wx/web/WxHomeController.java | 26 +++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/service/HomeCacheManager.java diff --git a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/service/HomeCacheManager.java b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/service/HomeCacheManager.java new file mode 100644 index 00000000..81eaceed --- /dev/null +++ b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/service/HomeCacheManager.java @@ -0,0 +1,39 @@ +package org.linlinjava.litemall.wx.service; + +import java.util.Map; + +/** + * 简单缓存首页的数据 + */ +public class HomeCacheManager { + private static Map cacheData; + + /** + * 缓存首页数据 + * + * @param data + */ + public static void loadData(Map data) { + cacheData = data; + } + + public static Map getCacheData() { + return cacheData; + } + + /** + * 判断缓存中是否有数据 + * + * @return + */ + public static boolean hasData() { + return cacheData != null; + } + + /** + * 清除缓存数据 + */ + public static void clear() { + cacheData = null; + } +} diff --git a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxHomeController.java b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxHomeController.java index 094eaf63..5a4ef615 100644 --- a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxHomeController.java +++ b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxHomeController.java @@ -4,12 +4,14 @@ import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.db.domain.*; import org.linlinjava.litemall.db.service.*; import org.linlinjava.litemall.core.system.SystemConfig; +import org.linlinjava.litemall.wx.service.HomeCacheManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -32,6 +34,22 @@ public class WxHomeController { @Autowired private LitemallGrouponRulesService grouponRulesService; + + @GetMapping("/cache") + public Object cache(@NotNull Integer key) { + if (!key.equals("litemall_cache")) { + return ResponseUtil.fail(); + } + + // 清除缓存 + HomeCacheManager.clear(); + if (!HomeCacheManager.hasData()) { + return ResponseUtil.ok(); + } else { + return ResponseUtil.fail(); + } + } + /** * app首页 * @@ -54,6 +72,12 @@ public class WxHomeController { */ @GetMapping("/index") public Object index() { + //优先从缓存中读取 + if (HomeCacheManager.hasData()) { + return ResponseUtil.ok(HomeCacheManager.getCacheData()); + } + + Map data = new HashMap<>(); List banner = adService.queryIndex(); @@ -109,6 +133,8 @@ public class WxHomeController { } data.put("floorGoodsList", categoryList); + //缓存数据 + HomeCacheManager.loadData(data); return ResponseUtil.ok(data); } } \ No newline at end of file