Explorar o código

get查询加入缓存机制防止每个页面加载同样内容

吴学文 %!s(int64=6) %!d(string=hai) anos
pai
achega
06c37f6018

+ 7 - 0
WebService/src/main/java/com/java110/web/smo/impl/NavServiceSMOImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.common.constant.ServiceConstant;
 import com.java110.common.constant.StatusConstant;
+import com.java110.common.util.CommonUtil;
 import com.java110.core.context.IPageData;
 import com.java110.web.core.BaseComponentSMO;
 import com.java110.web.smo.ICommunityServiceSMO;
@@ -79,6 +80,12 @@ public class NavServiceSMOImpl extends BaseComponentSMO implements INavServiceSM
             JSONObject tmpUserInfo = JSONObject.parseObject(responseEntity.getBody().toString());
             JSONObject resultUserInfo = new JSONObject();
             resultUserInfo.put("name", tmpUserInfo.getString("name"));
+            resultUserInfo.put("address", tmpUserInfo.getString("address"));
+            resultUserInfo.put("sex", tmpUserInfo.getString("sex"));
+            resultUserInfo.put("localtionCd", tmpUserInfo.getString("localtionCd"));
+            resultUserInfo.put("levelCd", tmpUserInfo.getString("levelCd"));
+            resultUserInfo.put("tel", CommonUtil.mobileEncrypt(tmpUserInfo.getString("tel")));
+            resultUserInfo.put("email", tmpUserInfo.getString("email"));
             responseEntity = new ResponseEntity<String>(resultUserInfo.toJSONString(), HttpStatus.OK);
         }
         return responseEntity;

+ 13 - 1
WebService/src/main/resources/components/nav/nav.js

@@ -17,10 +17,11 @@
         mounted:function(){
             this.getNavCommunity();
             this.getNavData();
-            this.getUserInfo();
+            //this.getUserInfo();
         },
         methods:{
             getNavData:function(){
+
                 var param = {
                     msg:'123',
                 };
@@ -59,6 +60,12 @@
                            );
             },
             getUserInfo:function(){
+//                var _userInfo = vc.getData("_userInfo");
+//                //浏览器缓存中能获取到
+//                if(_userInfo != null && _userInfo != undefined){
+//                    vm.userName = _userInfo.name;
+//                    return ;
+//                }
                 //获取用户名
                 var param = {
                                     msg:'123',
@@ -71,7 +78,9 @@
                              function(json,res){
                                 if(res.status == 200){
                                     var tmpUserInfo = JSON.parse(json);
+                                    console.log(vm,tmpUserInfo);
                                    vm.userName = tmpUserInfo.name;
+//                                   vc.saveData("_userInfo",tmpUserInfo);
                                }
                              },function(){
                                 console.log('请求失败处理');
@@ -124,4 +133,7 @@
 
 
     });
+
+     vm.getUserInfo();
+
 })(window.vc);

+ 22 - 0
WebService/src/main/resources/static/js/core.js

@@ -69,10 +69,23 @@
                 });
         },
         get:function(componentCode,componentMethod,param,successCallback,errorCallback){
+                //加入缓存机制
+                var _getPath = '/'+componentCode +'/' +componentMethod;
+                if(vc.constant.GET_CACHE_URL.includes(_getPath)){
+                    var _cacheData = vc.getData(_getPath);
+                    //浏览器缓存中能获取到
+                    if(_cacheData != null && _cacheData != undefined){
+                        successCallback(JSON.stringify(_cacheData),{status:200});
+                        return ;
+                    }
+                }
                 vc.loading('open');
                 Vue.http.get('/callComponent/'+componentCode +"/"+componentMethod, param)
                 .then(function(res){
                     successCallback(res.bodyText,res);
+                    if(vc.constant.GET_CACHE_URL.includes(_getPath) && res.status == 200){
+                         vc.saveData(_getPath,JSON.parse(res.bodyText));
+                    }
                     vc.loading('close');
                 }, function(error){
                     errorCallback(error.bodyText,error);
@@ -146,6 +159,15 @@
         return JSON.parse(window.localStorage.getItem('hc_menus'));
     };
 
+    //保存用户菜单
+    vc.saveData = function(_key,_value){
+        window.localStorage.setItem(_key,JSON.stringify(_value));
+    };
+    //获取用户菜单
+    vc.getData = function(_key){
+        return JSON.parse(window.localStorage.getItem(_key));
+    };
+
     //保存当前小区信息 _communityInfo : {"communityId":"123213","name":"测试小区"}
     vc.setCurrentCommunity = function(_currentCommunityInfo){
         window.localStorage.setItem('hc_currentCommunityInfo',JSON.stringify(_currentCommunityInfo));

+ 1 - 0
WebService/src/main/resources/static/js/vc-constant.js

@@ -5,6 +5,7 @@
 
     var constant = {
         REQUIRED_MSG:"不能为空",
+        GET_CACHE_URL:["/nav/getUserInfo"]
     }
     vc.constant = constant;
 })(window.vc);

+ 28 - 10
java110-common/src/main/java/com/java110/common/util/CommonUtil.java

@@ -16,10 +16,11 @@ public class CommonUtil extends LoggerEngine {
     /**
      * 将 30*1000 转为 30000
      * 不能出现小数点等
+     *
      * @param val
      * @return
      */
-    public static int multiplicativeStringToInteger(String val){
+    public static int multiplicativeStringToInteger(String val) {
         try {
             if (StringUtils.isEmpty(val)) {
                 return 0;
@@ -27,19 +28,19 @@ public class CommonUtil extends LoggerEngine {
             if (val.contains("*")) {
                 String[] vals = val.split("\\*");
                 int value = 1;
-                for(int vIndex = 0 ; vIndex < vals.length;vIndex++){
-                    if(!NumberUtils.isNumber(vals[vIndex])){
+                for (int vIndex = 0; vIndex < vals.length; vIndex++) {
+                    if (!NumberUtils.isNumber(vals[vIndex])) {
                         throw new ClassCastException("配置的数据有问题,必须配置为30*1000格式");
                     }
                     value *= Integer.parseInt(vals[vIndex]);
                 }
                 return value;
             }
-            if(NumberUtils.isNumber(val)){
+            if (NumberUtils.isNumber(val)) {
                 return Integer.parseInt(val);
             }
-        }catch (Exception e){
-            logger.error("---------------[CommonUtil.multiplicativeStringToInteger]----------------类型转换失败",e);
+        } catch (Exception e) {
+            logger.error("---------------[CommonUtil.multiplicativeStringToInteger]----------------类型转换失败", e);
             return 0;
         }
         return 0;
@@ -47,19 +48,36 @@ public class CommonUtil extends LoggerEngine {
 
     /**
      * 生成六位验证码
+     *
      * @return
      */
-    public static String generateVerificationCode(){
+    public static String generateVerificationCode() {
         Random random = new Random();
 
-        String result="";
-        for(int i=0;i<6;i++){
-            result+=random.nextInt(10);
+        String result = "";
+        for (int i = 0; i < 6; i++) {
+            result += random.nextInt(10);
         }
 
         return result;
     }
 
+    // 手机号码前三后四脱敏
+    public static String mobileEncrypt(String mobile) {
+        if (StringUtils.isEmpty(mobile) || (mobile.length() != 11)) {
+            return mobile;
+        }
+        return mobile.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
+    }
+
+    //身份证前三后四脱敏
+    public static String idEncrypt(String id) {
+        if (StringUtils.isEmpty(id) || (id.length() < 8)) {
+            return id;
+        }
+        return id.replaceAll("(?<=\\w{3})\\w(?=\\w{4})", "*");
+    }
+
 
     //效验
     public static boolean sqlValidate(String str) {