From 4fc49f3f06e9bb6275045d32245469816b451a4c Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 23 七月 2024 09:57:26 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia

---
 server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectInfoResponse.java     |    4 
 server/web/src/main/java/com/doumee/api/web/CustomerApi.java                                            |    5 
 server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java                                    |   85 +++++------
 server/web/src/main/java/com/doumee/api/web/ApiController.java                                          |   41 ++++-
 wechat_staff/pages/client/index.wxml                                                                    |    3 
 server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java                      |   36 +++++
 server/service/src/main/java/com/doumee/service/business/UsersService.java                              |    5 
 server/service/src/main/java/com/doumee/core/utils/Constants.java                                       |    2 
 server/service/src/main/java/com/doumee/service/business/InitService.java                               |    1 
 server/web/src/main/java/com/doumee/api/web/PersonnelApi.java                                           |   17 +
 server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java                                    |   23 +++
 server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java                     |   47 +++++-
 server/service/src/main/java/com/doumee/service/business/MemberService.java                             |    2 
 server/admin/src/main/resources/application.yml                                                         |    2 
 server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTZbDecoInfoResponse.java      |    6 
 server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCaseInfoResponse.java        |    6 
 wechat_staff/utils/config.js                                                                            |    3 
 server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTRealcaseInfoResponse.java    |    7 
 server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectLikeInfoResponse.java |    9 +
 server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java                    |    2 
 wechat_staff/pages/store/staff.wxml                                                                     |    2 
 wechat_staff/pages/sets/protocol.js                                                                     |    4 
 server/service/src/main/java/com/doumee/config/annotation/UserLoginRequired.java                        |    4 
 server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java           |    8 
 server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java                    |   27 ---
 server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductNewsInfoResponse.java |    4 
 server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductInfoResponse.java     |    4 
 server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTVideoInfoResponse.java       |    6 
 server/service/src/main/java/com/doumee/dao/web/response/AccountResponse.java                           |    3 
 wechat_staff/api/index.js                                                                               |    7 +
 wechat_staff/pages/client/index.js                                                                      |   26 ++-
 server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java                                      |    9 +
 server/web/src/main/resources/application.yml                                                           |    2 
 33 files changed, 279 insertions(+), 133 deletions(-)

diff --git a/server/admin/src/main/resources/application.yml b/server/admin/src/main/resources/application.yml
index 8e8e46b..a765ed7 100644
--- a/server/admin/src/main/resources/application.yml
+++ b/server/admin/src/main/resources/application.yml
@@ -1,6 +1,6 @@
 # 椤圭洰淇℃伅閰嶇疆
 project:
-  name: 璁垮绯荤粺
+  name: 蹇楅偊涓氱哗鏁板瓧鍖栬祴鑳藉悗鍙扮郴缁�
   version: 1.0.0
   env: development
 #  env: production
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java
index ae3bc9a..c00a5f4 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java
@@ -67,7 +67,7 @@
      */
    @Override
    public ZTSysuserGetTokenResponse getSysuserToken(String  mobile){
-       ZTBaseResponse<ZTSysuserGetTokenResponse> result = sendHttpRequest(
+       ZTBaseResponse<ZTSysuserGetTokenResponse> result = sendSysHttpRequest(
                ZTConstants.IntegerUrl.USER_MOBILE_FASTLOGIN_URL+"?mobile="+mobile,
                ZTConstants.IntegerName.USER_MOBILE_FASTLOGIN_NAME,
                null,
@@ -672,6 +672,40 @@
         }
         return  null;
     }
+
+    public   <T>   ZTBaseResponse<T> sendSysHttpRequest(String url,String name,String token,String userType,String param,TypeReference<ZTBaseResponse<T>> typeReference){
+        log.info("銆�"+name+"銆�================寮�濮�===="+ JSONObject.toJSONString(param));
+        String res = null;
+        int success = 0;
+        try {
+            Map<String,String> headers = new HashMap<>();
+            if(StringUtils.equals(userType,ZTConstants.CUSTOMER)){
+                //濡傛灉鏄疌绔鎴�
+                headers.put(ZTConstants.HEADER_TOKEN,token);
+            }else{
+                //濡傛灉鏄疊绔敤鎴�
+                headers.put(ZTConstants.HEADER_SYSUSER_TOKEN,token);
+            }
+            headers.put(ZTConstants.HEADER_USERTYPE,userType);
+            String index = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_ZHONGTAI_SYS_API_URL);
+            res = HttpsUtil.postJsonWithHeaders(index+url,param,headers);
+            ZTBaseResponse<T>  result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,name);
+            if(Constants.equalsInteger(result.getCode(),ZTConstants.CODE_SUCCESS)){
+                return  result;
+            }else{
+                success =1;
+            }
+        }catch (Exception e){
+            success = 1;
+            log.error("銆�"+name+"銆�================澶辫触===="+ JSONObject.toJSONString(param));
+        }finally {
+            saveInterfaceLog(url,name,param,success,res);
+        }
+        return  null;
+    }
+
+
     public  void  saveInterfaceLog(String url,String name,String  param,Integer success,String respone){
         if(interfaceLogMapper ==null){
             return;
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCaseInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCaseInfoResponse.java
index 337d193..6f09b0e 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCaseInfoResponse.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCaseInfoResponse.java
@@ -16,7 +16,7 @@
     /**
      * 鏀惰棌閲�
      */
-    private String collectCount;
+    private Integer collectCount;
     /**
      * 涓诲浘
      */
@@ -28,7 +28,7 @@
     /**
      * 鏄惁鏀惰棌 true:鏀惰棌  false:鏈敹钘�
      */
-    private boolean isCollection;
+    private Boolean isCollection;
     private String layoutUlr;
     private String panorama;
     /**
@@ -42,6 +42,6 @@
     /**
      * 娴忚閲�
      */
-    private String viewCount;
+    private Integer viewCount;
 
 }
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectInfoResponse.java
index dbd7ab3..5533479 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectInfoResponse.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectInfoResponse.java
@@ -14,7 +14,7 @@
     /**
      * 鏀惰棌鏁�
      */
-    private String collectCount;
+    private Integer collectCount;
     /**
      * 鍐呭ID
      */
@@ -50,6 +50,6 @@
     /**
      * 鏌ョ湅鏁�
      */
-    private String viewCount;
+    private Integer viewCount;
 
 }
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectLikeInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectLikeInfoResponse.java
index da2b41d..36123be 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectLikeInfoResponse.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectLikeInfoResponse.java
@@ -33,6 +33,15 @@
     @ApiModelProperty(value = "鏀惰棌閲�")
     private Integer collectCount;
 
+    @ApiModelProperty(value = "鍠滄閲�")
+    private Integer likeCount;
+
+    @ApiModelProperty(value = "鏄惁鍠滄")
+    private Boolean isLike;
+
+    @ApiModelProperty(value = "鏄惁鏀惰棌")
+    private Boolean isCollection;
+
 
 
 }
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductInfoResponse.java
index a966711..fe27696 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductInfoResponse.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductInfoResponse.java
@@ -16,7 +16,7 @@
      * 璇︽儏椤佃疆鎾浘鍒楄〃锛堝瑙嗚鍥撅級
      */
     private String[] bannerImgList;
-    private String collectCount;
+    private Integer collectCount;
     /**
      * 璇︽儏椤靛瘜鏂囨湰锛堝叏灞嬪畾鍒堕亶鍘唖paceList鐨勫瘜鏂囨湰锛�
      */
@@ -41,7 +41,7 @@
     private List<ZTSpaceInfoResponse> spaceList;
     private String subtitle;
     private String title;
-    private String viewCount;
+    private Integer viewCount;
     private String downloadCount;
     private String isTop;
     private String orgId;
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductNewsInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductNewsInfoResponse.java
index f20c7cc..3940aa9 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductNewsInfoResponse.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductNewsInfoResponse.java
@@ -16,7 +16,7 @@
      * 璇︽儏椤佃疆鎾浘鍒楄〃锛堝瑙嗚鍥撅級
      */
     private String[] bannerImgList;
-    private String collectCount;
+    private Integer collectCount;
     /**
      * 璇︽儏椤靛瘜鏂囨湰锛堝叏灞嬪畾鍒堕亶鍘唖paceList鐨勫瘜鏂囨湰锛�
      */
@@ -41,7 +41,7 @@
     private List<ZTSpaceInfoResponse> spaceList;
     private String subtitle;
     private String title;
-    private String viewCount;
+    private Integer viewCount;
     private String downloadCount;
     private String isTop;
     private String orgId;
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTRealcaseInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTRealcaseInfoResponse.java
index 311584e..4ba6d46 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTRealcaseInfoResponse.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTRealcaseInfoResponse.java
@@ -14,7 +14,7 @@
 public class ZTRealcaseInfoResponse implements Serializable {
 
     private String caseInfo;
-    private String collectCount;
+    private Integer collectCount;
     /**
      * 涓诲浘
      */
@@ -25,8 +25,7 @@
     /**
      * 鏄惁鏀惰棌 true:鏀惰棌  false:鏈敹钘�
      */
-    @ApiModelProperty(value = "鏄惁鏀惰棌 true:鏀惰棌  false:鏈敹钘�")
-    private boolean isCollection;
+    private Boolean isCollection;
     /**
      * 鍙戝竷鏃ユ湡
      */
@@ -36,7 +35,7 @@
      * 鏍囬
      */
     private String title;
-    private String viewCount;
+    private Integer viewCount;
 
     private String contentCategory;
     private String intro;
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTVideoInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTVideoInfoResponse.java
index 3a69717..04273c8 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTVideoInfoResponse.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTVideoInfoResponse.java
@@ -16,7 +16,7 @@
     /**
      * 鏀惰棌鏁伴噺
      */
-    private long collectCount;
+    private Integer collectCount;
     /**
      * 灏侀潰鍥�
      */
@@ -28,7 +28,7 @@
     /**
      * 鏄惁鏀惰棌
      */
-    private boolean isCollection;
+    private Boolean isCollection;
     private String langCode;
     /**
      * 鍠滄鏁伴噺
@@ -58,5 +58,5 @@
     /**
      * 娴忚鏁伴噺
      */
-    private String viewCount;
+    private Integer viewCount;
 }
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTZbDecoInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTZbDecoInfoResponse.java
index 2f20d30..a1982b7 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTZbDecoInfoResponse.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTZbDecoInfoResponse.java
@@ -11,7 +11,7 @@
 @Data
 public class ZTZbDecoInfoResponse implements Serializable {
     private String author;
-    private long collectCount;
+    private Integer collectCount;
     /**
      * 鍐呭
      */
@@ -32,7 +32,7 @@
     /**
      * 鏄惁鏀惰棌
      */
-    private boolean isCollection;
+    private Boolean isCollection;
     private String langCode;
     private long likeCount;
     private String publishDepartment;
@@ -46,5 +46,5 @@
      * 鏍囬
      */
     private String title;
-    private String viewCount;
+    private Integer viewCount;
 }
diff --git a/server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java b/server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
index 132bfa8..44d2bd0 100644
--- a/server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
+++ b/server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
@@ -21,11 +21,14 @@
 import com.doumee.dao.business.model.Member;
 import io.jsonwebtoken.*;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 
 import javax.annotation.Resource;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -51,6 +54,8 @@
     public static final String UserId_Name = "AppUserId";
     //鍙栧�煎悕绉�
     public static final String UserType = "UserType";
+    //鍙栧�煎悕绉�
+    public static final String UserInfo = "UserInfo";
     //鍔犲瘑瀵嗛挜
     private final static String jwtSecret = "MhAjU9poLf8ko54K25XBDtonaL33vtt1";
     //杩囨湡鏃堕棿(s) 86400L=1澶� 604800L=7澶�
@@ -65,6 +70,24 @@
         return generateToken(jwtPayLoad.getUserId(), expirationDate, jwtPayLoad.toMap());
     }
 
+
+    /**
+     * 鐢熸垚token,鏍规嵁userId鍜岄粯璁よ繃鏈熸椂闂�
+     */
+    public static String generateTokenForZb(Long userId,String userType,String userInfo,RedisTemplate<String,Object> redisTemplate) {
+        Long expiredSeconds = getExpireSeconds();
+        final Date expirationDate = new Date(System.currentTimeMillis() + expiredSeconds * 1000);
+        return generateTokenZb(userId,userType,userInfo, expirationDate,redisTemplate);
+    }
+
+
+    public static String generateTokenZb(Long userId, String userType,String userInfo, Date expiredDate,RedisTemplate<String,Object> redisTemplate) {
+        String tokenKey =  UUID.randomUUID() + "_" + userId;
+        redisTemplate.opsForValue().set(userType + "_" +tokenKey,userInfo);
+        return tokenKey;
+    }
+
+
     /**
      * 楠岃瘉token鏄惁澶辨晥
      */
diff --git a/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java b/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
index 5d72f5a..c5872f9 100644
--- a/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
+++ b/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
@@ -65,27 +65,23 @@
                 HandlerMethod handlerMethod = (HandlerMethod) handler;
 
                 Class<?> beanType = handlerMethod.getBeanType();
-
-//                Method method = handlerMethod.getMethod();
-
-                // 鏈� @LoginRequired 娉ㄨВ锛岄渶瑕佺櫥褰曡璇� 瀹㈡埛绔娇鐢�
-                if (beanType.isAnnotationPresent(LoginRequired.class) || handlerMethod.hasMethodAnnotation(LoginRequired.class)) {
-                    //鑾峰彇token
-                    String token = request.getHeader(JwtTokenUtil.HEADER_KEY);  // 浠� http 璇锋眰澶翠腑鍙栧嚭 token
-                    if (StringUtils.isNotBlank(token)) {
-                        checkLogin(request,response);
-                    } else {
-                        throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
-                    }
-                    // 鏈� @UserLoginRequired 娉ㄨВ锛岄渶瑕佺櫥褰曡璇� 鍐呴儴浜哄憳浣跨敤
-                } else if(beanType.isAnnotationPresent(UserLoginRequired.class) || handlerMethod.hasMethodAnnotation(UserLoginRequired.class)){
-                        //ERP 涓氬姟娉ㄨВ
-                        String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
-                        if (StringUtils.isNotBlank(token)) {
-                            checkPersonnelLogin(request,response);
-                        } else {
-                            throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
-                        }
+                Boolean checkFlag = false;
+                if(!( handlerMethod.hasMethodAnnotation(LoginRequired.class) || handlerMethod.hasMethodAnnotation(UserLoginRequired.class))
+                ){
+                    return true;
+                }
+                String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
+                if(StringUtils.isBlank(token)){
+                    throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
+                }
+                if (handlerMethod.hasMethodAnnotation(LoginRequired.class)) {
+                        checkFlag = checkLogin(request,response,token);
+                }
+                if(!checkFlag && handlerMethod.hasMethodAnnotation(UserLoginRequired.class)){
+                        checkFlag = checkPersonnelLogin(request,response,token);
+                }
+                if(!checkFlag){
+                    throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
                 }
                 return true;
             }
@@ -94,20 +90,14 @@
     }
 
 
-    public Boolean checkLogin(HttpServletRequest request, HttpServletResponse response){
-        String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
+    public Boolean checkLogin(HttpServletRequest request, HttpServletResponse response,String token){
         try {
-            //鑾峰彇璐﹀彿ID
-            Long memberId = JwtTokenUtil.getJwtPayLoad(token).getUserId();
-            String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.CUSTOMER+"_"+memberId);
-            if(StringUtils.isNotBlank(tokenRedis)){
-                if(!tokenRedis.equals(token)){
-                    throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"闀挎椂闂存湭鎿嶄綔,璇烽噸鏂扮櫥褰�");
-                }
-            }else{
-                throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"闀挎椂闂存湭鎿嶄綔,璇烽噸鏂扮櫥褰�");
+            String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.CUSTOMER+"_"+token);
+            if(StringUtils.isBlank(tokenRedis)){
+                return false;
             }
-            Member member = dao.queryForObject(" select  *  from `member` where id  = ?  limit 1  ", new BeanPropertyRowMapper<>(Member.class),memberId );
+            Long memberId = getTokenId(token);
+            Member member = dao.queryForObject(" select  *  from `member` where id  = ?  limit 1  ", new BeanPropertyRowMapper<>(Member.class),memberId);
             if(Objects.isNull(member)){
                 throw new BusinessException(ResponseStatus.DATA_EMPTY);
             }
@@ -119,25 +109,21 @@
             }
             request.setAttribute(JwtTokenUtil.UserId_Name, memberId);
             request.setAttribute(JwtTokenUtil.UserType, ZTConstants.CUSTOMER);
+            request.setAttribute(JwtTokenUtil.HEADER_KEY, ZTConstants.CUSTOMER+"_"+token);
+            request.setAttribute(JwtTokenUtil.UserInfo, tokenRedis);
             return true;
         } catch (IllegalArgumentException | JwtException e) {
             throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
         }
     }
 
-    public Boolean checkPersonnelLogin(HttpServletRequest request, HttpServletResponse response){
-        String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
+    public Boolean checkPersonnelLogin(HttpServletRequest request, HttpServletResponse response,String token){
         try {
-            //鑾峰彇璐﹀彿ID
-            Long userId = JwtTokenUtil.getJwtPayLoad(token).getUserId();
-            String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.BUSINESS+"_"+userId);
-            if(StringUtils.isNotBlank(tokenRedis)){
-                if(!tokenRedis.equals(token)){
-                    throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"闀挎椂闂存湭鎿嶄綔,璇烽噸鏂扮櫥褰�");
-                }
-            }else{
-                throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"闀挎椂闂存湭鎿嶄綔,璇烽噸鏂扮櫥褰�");
+            String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.BUSINESS+"_"+token);
+            if(StringUtils.isBlank(tokenRedis)){
+                return false;
             }
+            Long userId = getTokenId(token);
             Users users = dao.queryForObject(" select  *  from `users` where id  = ?  limit 1  ", new BeanPropertyRowMapper<>(Users.class),userId);
             if(Objects.isNull(users)){
                 throw new BusinessException(ResponseStatus.DATA_EMPTY);
@@ -150,6 +136,8 @@
             }
             request.setAttribute(JwtTokenUtil.UserId_Name, userId);
             request.setAttribute(JwtTokenUtil.UserType, ZTConstants.BUSINESS);
+            request.setAttribute(JwtTokenUtil.HEADER_KEY, ZTConstants.CUSTOMER+"_"+token);
+            request.setAttribute(JwtTokenUtil.UserInfo, tokenRedis);
             return true;
         } catch (IllegalArgumentException | JwtException e) {
             throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
@@ -161,5 +149,14 @@
         return new RestTemplate();
     }
 
+    public Long getTokenId(String token){
+        try {
+            Integer lastIndex = token.lastIndexOf("_")+1;
+            Long tokenId = Long.valueOf(token.substring(lastIndex));
+            return tokenId;
+        }catch (Exception e){
+            throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
+        }
+    }
 
 }
diff --git a/server/service/src/main/java/com/doumee/config/annotation/UserLoginRequired.java b/server/service/src/main/java/com/doumee/config/annotation/UserLoginRequired.java
index 4319326..b3e74c2 100644
--- a/server/service/src/main/java/com/doumee/config/annotation/UserLoginRequired.java
+++ b/server/service/src/main/java/com/doumee/config/annotation/UserLoginRequired.java
@@ -7,4 +7,6 @@
 
 @Target({ElementType.METHOD,ElementType.TYPE})
 @Retention(RetentionPolicy.RUNTIME)
-public @interface UserLoginRequired {}
+public @interface UserLoginRequired {
+
+}
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 04d4d45..5f0fdd1 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -349,6 +349,7 @@
 
     public static final String WX_PLATFORM = "WX_PLATFORM";
     public static final String ZBOM_ZHONGTAI_API_URL = "ZBOM_ZHONGTAI_API_URL";
+    public static final String ZBOM_ZHONGTAI_SYS_API_URL = "ZBOM_ZHONGTAI_SYS_API_URL";
     public static final String WX_PLATFORM_ACCESS_TOKEN = "WX_PLATFORM_ACCESS_TOKEN";
     public static final String ZBOM_ENCODE_URL = "ZBOM_ENCODE_URL";
     public static final String WX_PLATFORM_APPID = "WX_PLATFORM_APPID";
@@ -385,6 +386,7 @@
        String ZBOM_ENCODE_URL ="ZBOM_ENCODE_URL";
        String ZBOM_SMS_API_KEY ="ZBOM_SMS_API_KEY";
        String ZBOM_ZHONGTAI_API_URL ="ZBOM_ZHONGTAI_API_URL";
+       String ZBOM_ZHONGTAI_SYS_API_URL ="ZBOM_ZHONGTAI_SYS_API_URL";
        String ZBOM_CRM_POSTCUS_API_KEY ="ZBOM_CRM_POSTCUS_API_KEY";
        String ZBOM_AREA_REDIS_KEY ="ZBOM_AREA_REDIS_KEY";
        String ZBOM_SMS_API_URL ="ZBOM_SMS_API_URL";
diff --git a/server/service/src/main/java/com/doumee/dao/web/response/AccountResponse.java b/server/service/src/main/java/com/doumee/dao/web/response/AccountResponse.java
index 50f22e9..0d1b9c6 100644
--- a/server/service/src/main/java/com/doumee/dao/web/response/AccountResponse.java
+++ b/server/service/src/main/java/com/doumee/dao/web/response/AccountResponse.java
@@ -24,6 +24,9 @@
     @ApiModelProperty(value = "寰俊sessionKey")
     private String sessionKey;
 
+    @ApiModelProperty(value = "鎵嬫満鍙�")
+    private String phone;
+
     @ApiModelProperty(value = "鐢ㄦ埛淇℃伅 - 瀹㈡埛绔�")
     private Member member;
 
diff --git a/server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java b/server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java
index f49b3f8..27a41e1 100644
--- a/server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java
+++ b/server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java
@@ -14,7 +14,7 @@
 public interface GetZhongTaiDataService {
 
 
-    ZSZXCatalogResponse getZSZXCatalogs(Long userId);
+    ZSZXCatalogResponse getZSZXCatalogs(Long userId,String userType);
 
     /**
      * 鍒嗙被鏁版嵁
diff --git a/server/service/src/main/java/com/doumee/service/business/InitService.java b/server/service/src/main/java/com/doumee/service/business/InitService.java
index 8dc8c81..99f6a97 100644
--- a/server/service/src/main/java/com/doumee/service/business/InitService.java
+++ b/server/service/src/main/java/com/doumee/service/business/InitService.java
@@ -42,6 +42,7 @@
         redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_SMS_API_URL,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_SMS_API_URL).getCode());
         redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_SMS_API_KEY,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_SMS_API_KEY).getCode());
         redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_ZHONGTAI_API_URL,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_ZHONGTAI_API_URL).getCode());
+        redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_ZHONGTAI_SYS_API_URL,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_ZHONGTAI_SYS_API_URL).getCode());
         redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_ENCODE_URL,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_ENCODE_URL).getCode());
     }
     @PostConstruct
diff --git a/server/service/src/main/java/com/doumee/service/business/MemberService.java b/server/service/src/main/java/com/doumee/service/business/MemberService.java
index 5e9279f..b04ac69 100644
--- a/server/service/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/service/src/main/java/com/doumee/service/business/MemberService.java
@@ -135,6 +135,6 @@
      * 鐢ㄦ埛娉ㄩ攢
      * @param memberId
      */
-    ZTBaseRequst logOff(Long memberId);
+    ZTBaseRequst logOff(Long memberId,String token);
 
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/UsersService.java b/server/service/src/main/java/com/doumee/service/business/UsersService.java
index 26b5ed7..d7fbd06 100644
--- a/server/service/src/main/java/com/doumee/service/business/UsersService.java
+++ b/server/service/src/main/java/com/doumee/service/business/UsersService.java
@@ -7,6 +7,7 @@
 import com.doumee.dao.business.model.Users;
 import com.doumee.dao.web.reqeust.ContentShareImgDto;
 import com.doumee.dao.web.reqeust.EditUsersRequest;
+import com.doumee.dao.web.reqeust.WxPhoneRequest;
 import com.doumee.dao.web.response.AccountResponse;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -120,5 +121,7 @@
 
     String getContentShareImg(Users loginUserInfo, ContentShareImgDto param);
 
-    ZTBaseRequst logOff(Long userId);
+    ZTBaseRequst logOff(Long userId,String token);
+
+    AccountResponse getWxMiniPhoneLogin(WxPhoneRequest wxPhoneRequest);
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java
index 31182ba..8cee3a7 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java
@@ -9,6 +9,7 @@
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
 import com.doumee.dao.business.IamInterfaceLogMapper;
 import com.doumee.dao.business.MemberMapper;
 import com.doumee.dao.business.UsersMapper;
@@ -26,6 +27,7 @@
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 
@@ -54,11 +56,11 @@
     private RedisTemplate<String, Object> redisTemplate;
 
     @Override
-    public ZSZXCatalogResponse getZSZXCatalogs(Long userId){
+    public ZSZXCatalogResponse getZSZXCatalogs(Long userId,String userType){
         ZSZXCatalogResponse response = new ZSZXCatalogResponse();
         ZTCatalogListRequest param = new ZTCatalogListRequest();
         param.setUserId(userId.toString());
-        param.setUserType(ZTConstants.CUSTOMER);
+        param.setUserType(userType);
         param.setCatalogCode(ZTConstants.CatalogCode.ZHISHUO_ZHUANGXIU);
         List<ZTCatalogInfoResponse> cataList = getCatalogList(param);
         if(cataList!=null ){
@@ -208,7 +210,9 @@
         ZTBaseInfoResponse ztBaseInfoResponse = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,
                 Long.valueOf(ztContentListRequest.getUserId()),ztContentListRequest.getUserType());
         ztContentListRequest.setToken(ztBaseInfoResponse.getToken());
+        System.out.println("寮�濮嬫椂闂�========================銆�"+DateUtil.getLongDate(new Date()));
         ZTBasePageResponse<ZTProductInfoResponse> response = zbomZhongTaiService.pageProductList(ztContentListRequest);
+        System.out.println("缁撴潫鏃堕棿========================銆�"+DateUtil.getLongDate(new Date()));
         return response;
     }
 
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index ef73633..b4d1738 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -2,6 +2,7 @@
 
 import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
 import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -275,7 +276,7 @@
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
             }
 //            String openId = code;
-            Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId));
+            Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId).isNotNull("phone"));
             Users users = new Users();
             if(StringUtils.isBlank(iamId)){
                 users = usersMapper.selectOne(new QueryWrapper<Users>().lambda()
@@ -313,10 +314,7 @@
                 this.saveCustomerUser(users,member.getId());
                 member = this.getMemberInfo(member.getId());
             }
-            //鍒涘缓token
-            JwtPayLoad payLoad = new JwtPayLoad(member.getId(),Constants.ZERO);
-            String token = JwtTokenUtil.generateToken(payLoad);
-            redisTemplate.opsForValue().set(ZTConstants.CUSTOMER+"_"+member.getId(),token);
+            String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.CUSTOMER, JSONObject.toJSON(member).toString(),redisTemplate);
             AccountResponse accountResponse = new AccountResponse();
             accountResponse.setToken(token);
             accountResponse.setSessionKey(session.getSessionKey());
@@ -494,8 +492,6 @@
 //                            .set(Member::getTokenDate,date)//榛樿鏈夋晥鏈熶负涓ゅ皬鏃�
                             .eq(Member::getId,member.getId()));
                     ztBaseInfoResponse.setToken(ztUserGetTokenResponse.getToken());
-                }else{
-//                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴TOKEN鑾峰彇澶辫触锛岃鑱旂郴绠$悊鍛�");
                 }
             }
             ztBaseInfoResponse.setToken(member.getToken());
@@ -508,11 +504,6 @@
             ztBaseInfoResponse.setUserType(ZTConstants.BUSINESS);
             ztBaseInfoResponse.setOpenId(users.getOpenid());
             if(Objects.isNull(users.getTokenDate()) || users.getTokenDate().getTime()<=System.currentTimeMillis() ){
-                ZTUserGetTokenRequest param = new ZTUserGetTokenRequest();
-                //鏌ヨAPPID
-                String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode();
-                param.setAppId(appId);
-                param.setOpenId(users.getOpenid());
                 ZTSysuserGetTokenResponse ztUserGetTokenResponse = zbomZhongTaiService.getSysuserToken(users.getPhone());
                 if(Objects.nonNull(ztUserGetTokenResponse)){
                     users.setToken(ztUserGetTokenResponse.getToken());
@@ -522,29 +513,22 @@
                             .eq(Users::getId,users.getId()));
                     ztBaseInfoResponse.setToken(ztUserGetTokenResponse.getToken());
                     return ztBaseInfoResponse;
-                }else{
-//                   throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴TOKEN鑾峰彇澶辫触锛岃鑱旂郴绠$悊鍛�");
                 }
             }
             ztBaseInfoResponse.setToken(users.getToken());
-//            return ztBaseInfoResponse;
-        }else{
-//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍙傛暟閿欒");
         }
         return  ztBaseInfoResponse;
     }
 
 
-
-
     @Override
-    public ZTBaseRequst logOff(Long memberId){
+    public ZTBaseRequst logOff(Long memberId,String token){
         Member member = memberMapper.selectById(memberId);
         if(Objects.isNull(member)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if(StringUtils.isBlank(member.getPhone())){
-            redisTemplate.delete(ZTConstants.CUSTOMER+"_"+ member.getId());
+            redisTemplate.delete(token);
            return null;
         }
         //鏍¢獙鐢ㄦ埛token淇℃伅
@@ -555,6 +539,7 @@
         ztBaseRequst.setOpenId(member.getOpenid());
         ztBaseRequst.setToken(member.getToken());
         memberMapper.update(new UpdateWrapper<Member>().lambda()
+                .set(Member::getOpenid,null)
                 .set(Member::getPhone,null)
                 .set(Member::getEditDate,new Date())
                 .eq(Member::getId,member.getId())
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
index 4518fe5..b5d2af7 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -1,6 +1,7 @@
 package com.doumee.service.business.impl;
 
 import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
+import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
 import cn.hutool.core.date.DateUnit;
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.biz.system.SystemDictDataBiz;
@@ -34,6 +35,7 @@
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.web.reqeust.EditUsersRequest;
 import com.doumee.dao.web.reqeust.ContentShareImgDto;
+import com.doumee.dao.web.reqeust.WxPhoneRequest;
 import com.doumee.dao.web.response.AccountResponse;
 import com.doumee.service.business.UsersService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -362,9 +364,10 @@
 //        }
 //        smsEmailMapper.updateById(model);
         //鍒涘缓token
-        JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
-        String token = JwtTokenUtil.generateToken(payLoad);
-        redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
+//        JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
+//        String token = JwtTokenUtil.generateToken(payLoad);
+//        redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
+        String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,JSONObject.toJSON(users).toString(),redisTemplate);
         AccountResponse accountResponse = new AccountResponse();
         accountResponse.setToken(token);
         accountResponse.setUsers(users);
@@ -384,6 +387,7 @@
             accountResponse.setSessionKey(session.getSessionKey());
             Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getOpenid,openId).last("limit 1"));
             if(Objects.isNull(users)){
+                accountResponse.setSessionKey(session.getSessionKey());
                 return accountResponse;
             }
             if(!Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
@@ -395,11 +399,10 @@
             users.setOpenid(openId);
             usersMapper.updateById(users);
             //鍒涘缓token
-            JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
-            String token = JwtTokenUtil.generateToken(payLoad);
-            redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
+            String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,users.getId()+"",redisTemplate);
             accountResponse.setToken(token);
             getUsersDetail(users);
+            accountResponse.setSessionKey(session.getSessionKey());
             accountResponse.setUsers(users);
             return accountResponse;
         } catch (WxErrorException e) {
@@ -407,6 +410,34 @@
         }
         throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
     }
+
+    @Override
+    public AccountResponse getWxMiniPhoneLogin(WxPhoneRequest wxPhoneRequest){
+        try {
+            WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxPersonnelService.getUserService().getPhoneNoInfo(
+                    wxPhoneRequest.getSessionKey(), wxPhoneRequest.getEncryptedData(), wxPhoneRequest.getIv());
+            //鑾峰彇鎵嬫満鍙�
+            String phone= userPhoneInfo.getPurePhoneNumber();
+            if(Objects.isNull(phone)){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈幏鍙栧埌鎵嬫満鍙�");
+            }
+            Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda()
+                    .eq(Users::getPhone,phone).last("limit 1"));
+            AccountResponse accountResponse = new AccountResponse();
+            accountResponse.setPhone(phone);
+            if(Objects.isNull(users)){
+                return accountResponse;
+            }
+            accountResponse.setUsers(users);
+            String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,users.getId()+"",redisTemplate);
+            accountResponse.setToken(token);
+            return accountResponse;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏇存柊鎵嬫満鍙峰け璐�");
+    }
+
 
 
     @Override
@@ -836,13 +867,13 @@
 
 
     @Override
-    public ZTBaseRequst logOff(Long userId){
+    public ZTBaseRequst logOff(Long userId,String token){
         Users users = usersMapper.selectById(userId);
         if(Objects.isNull(users)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if(StringUtils.isBlank(users.getOpenid())){
-            redisTemplate.delete(ZTConstants.BUSINESS+"_"+ users.getId());
+            redisTemplate.delete(token);
             return null;
         }
         //鏍¢獙鐢ㄦ埛token淇℃伅
diff --git a/server/web/src/main/java/com/doumee/api/web/ApiController.java b/server/web/src/main/java/com/doumee/api/web/ApiController.java
index 2d6d5e8..6efbc98 100644
--- a/server/web/src/main/java/com/doumee/api/web/ApiController.java
+++ b/server/web/src/main/java/com/doumee/api/web/ApiController.java
@@ -1,11 +1,15 @@
 package com.doumee.api.web;
 
+import com.alibaba.fastjson.JSONObject;
 import com.doumee.config.Jwt.JwtTokenUtil;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.Users;
 import com.doumee.service.business.MemberService;
 import com.doumee.service.business.UsersService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.formula.ptg.MemAreaPtg;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -51,6 +55,13 @@
         Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserId_Name);
         return obj != null ? (Long) obj : null;
     }
+
+    protected String getToken() {
+        Object obj = this.getRequest().getAttribute(JwtTokenUtil.HEADER_KEY);
+        return obj != null ? (String) obj : null;
+    }
+
+
     protected Long getUserId() {
 //        if(isDebug){
 //            return 2L;
@@ -59,25 +70,35 @@
         return obj != null ? (Long) obj : null;
     }
     protected Users getLoginUserInfo() {
-      Long userId = getUserId();
-      if(userId== null){
-          return null;
-      }
-        Users user = usersService.findById(userId);
-      return user;
+        Long userId = getUserId();
+        if(userId== null){
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"鏈櫥褰�");
+        }
+        Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserInfo);
+        String userInfo = obj != null ? (String) obj : null;
+        Users user = new Users();
+        if(StringUtils.isNotBlank(userInfo)){
+            user = JSONObject.toJavaObject(JSONObject.parseObject(userInfo),Users.class);
+        }
+        return user;
     }
     protected Member getLoginMemberInfo() {
       Long userId = getMemberId();
       if(userId== null){
           return null;
       }
-        Member user = memberService.findById(userId);
-      return user;
+        Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserInfo);
+        String userInfo = obj != null ? (String) obj : null;
+        Member member = new Member();
+        if(StringUtils.isNotBlank(userInfo)){
+            member = JSONObject.toJavaObject(JSONObject.parseObject(userInfo),Member.class);
+        }
+      return member;
     }
 
-    protected Long getUserType() {
+    protected String getUserType() {
         Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserType);
-        return obj != null ? (Long) obj : null;
+        return obj != null ? (String) obj : null;
     }
 
 }
diff --git a/server/web/src/main/java/com/doumee/api/web/CustomerApi.java b/server/web/src/main/java/com/doumee/api/web/CustomerApi.java
index e96fd07..3ebcca5 100644
--- a/server/web/src/main/java/com/doumee/api/web/CustomerApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/CustomerApi.java
@@ -92,6 +92,7 @@
         return  ApiResponse.success(memberService.wxLogin(code,iamId));
     }
 
+
     @LoginRequired
     @ApiOperation(value = "鑾峰彇鎵嬫満鍙�", notes = "瀹㈡埛绔皬绋嬪簭")
     @PostMapping("/getWxMiniPhone")
@@ -207,7 +208,7 @@
     @ApiOperation(value = "鐢ㄦ埛娉ㄩ攢", notes = "瀹㈡埛绔皬绋嬪簭")
     @GetMapping("/logOff")
     public ApiResponse logOff() {
-        ZTBaseRequst ztBaseRequst = memberService.logOff(getUserId());
+        ZTBaseRequst ztBaseRequst = memberService.logOff(getUserId(),getToken());
         if(Objects.nonNull(ztBaseRequst)){
             getZhongTaiDataService.userLogout(ztBaseRequst);
         }
@@ -508,8 +509,8 @@
 
 
     @LoginRequired
-    @ApiOperation(value = "浜у搧璧勮璇︽儏 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @GetMapping("/getProductNewsInfo")
+    @ApiOperation(value = "浜у搧璧勮璇︽儏 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @ApiImplicitParams({
             @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "鍐呭涓婚敭", required = true),
diff --git a/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java b/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java
index 3838bec..b1b50b4 100644
--- a/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java
@@ -3,6 +3,7 @@
 import com.doumee.biz.zbom.ZbomCRMService;
 import com.doumee.biz.zbom.ZbomZhongTaiService;
 import com.doumee.config.annotation.LoginRequired;
+import com.doumee.config.annotation.UserLoginRequired;
 import com.doumee.core.annotation.trace.Trace;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageData;
@@ -51,11 +52,15 @@
     public GetZhongTaiDataService getZhongTaiDataService;
 
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "銆怌绔皬绋嬪簭銆戣幏鍙栭椤靛織璇磋淇洓涓ā鍧楃被鐩暟鎹�", notes = "鑾峰彇棣栭〉蹇楄瑁呬慨鍥涗釜妯″潡绫荤洰鏁版嵁锛岃儗鏅浘鏆傛椂鍐欐锛屽弬鑰僓I")
     @PostMapping("/getZSZXCatalogs")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
     public ApiResponse<ZSZXCatalogResponse> getZSZXCatalogs() {
-        return  ApiResponse.success(getZhongTaiDataService.getZSZXCatalogs(getMemberId()));
+        return  ApiResponse.success(getZhongTaiDataService.getZSZXCatalogs(getMemberId(),getUserType()));
     }
 
 
@@ -78,9 +83,11 @@
 
 
 
+    @UserLoginRequired
     @ApiOperation(value = "鑾峰彇瀹㈡埛绠$悊鎺堟潈-鍒楄〃璺宠浆鍦板潃", notes = "鑾峰彇瀹㈡埛绠$悊鎺堟潈璺宠浆鍦板潃")
     @GetMapping("/getCrmAuthUrl")
     @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
             @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "绫诲瀷 0瀹㈡埛鍒楄〃 1璺宠浆鏂板鎰忓悜瀹㈡埛", required = true)
     })
     public ApiResponse<String> getCrmAuthUrl(@RequestParam Integer type) {
diff --git a/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java b/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
index 89748ca..887bfb4 100644
--- a/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
@@ -19,10 +19,7 @@
 import com.doumee.dao.business.model.Shop;
 import com.doumee.dao.business.model.SmsEmail;
 import com.doumee.dao.business.model.Users;
-import com.doumee.dao.web.reqeust.EditMemberRequest;
-import com.doumee.dao.web.reqeust.EditShopDTO;
-import com.doumee.dao.web.reqeust.EditUsersRequest;
-import com.doumee.dao.web.reqeust.ContentShareImgDto;
+import com.doumee.dao.web.reqeust.*;
 import com.doumee.dao.web.response.AccountResponse;
 import com.doumee.service.business.*;
 import io.swagger.annotations.Api;
@@ -35,6 +32,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.util.List;
 import java.util.Objects;
 
@@ -88,7 +86,6 @@
     }
 
 
-
     @ApiOperation(value = "鎵嬫満鍙烽獙璇佺爜鐧婚檰", notes = "鍛樺伐绔皬绋嬪簭")
     @GetMapping("/loginByPhone")
     @ApiImplicitParams({
@@ -111,6 +108,14 @@
         usersService.bindingOpenid(code,getUserId());
         return  ApiResponse.success("鎿嶄綔鎴愬姛");
     }
+
+
+    @ApiOperation(value = "鎵嬫満鍙峰揩鎹风櫥褰�", notes = "瀹㈡埛绔皬绋嬪簭")
+    @PostMapping("/getWxMiniPhoneLogin")
+    public ApiResponse<AccountResponse> getWxMiniPhone(@Valid @RequestBody WxPhoneRequest wxPhoneRequest) {
+        return  ApiResponse.success("鑾峰彇鎴愬姛",usersService.getWxMiniPhoneLogin(wxPhoneRequest));
+    }
+
 
     @UserLoginRequired
     @ApiOperation(value = "鑾峰彇涓汉淇℃伅璇︽儏", notes = "鍛樺伐绔皬绋嬪簭")
@@ -226,7 +231,7 @@
             @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
     })
     public ApiResponse logOff() {
-        ZTBaseRequst ztBaseRequst = usersService.logOff(getUserId());
+        ZTBaseRequst ztBaseRequst = usersService.logOff(getUserId(),getToken());
         if(Objects.nonNull(ztBaseRequst)){
             getZhongTaiDataService.userLogout(ztBaseRequst);
         }
diff --git a/server/web/src/main/resources/application.yml b/server/web/src/main/resources/application.yml
index e5d6350..9e2db52 100644
--- a/server/web/src/main/resources/application.yml
+++ b/server/web/src/main/resources/application.yml
@@ -1,6 +1,6 @@
 # 椤圭洰淇℃伅閰嶇疆
 project:
-  name: 鏅鸿兘浼氳瀹ゅ皬绋嬪簭绔�
+  name: 蹇楅偊涓氱哗鏁板瓧鍖栬祴鑳藉皬绋嬪簭
   version: 1.0.0
   env: development
 #  env: production
diff --git a/wechat_staff/api/index.js b/wechat_staff/api/index.js
index 7ede73e..46f8d12 100644
--- a/wechat_staff/api/index.js
+++ b/wechat_staff/api/index.js
@@ -181,3 +181,10 @@
     data
   })
 }
+// 灏忕▼搴忔敞閿�
+export const getCrmAuthUrl = (data) => {
+  return request({
+    url: '/web/customer/getCrmAuthUrl',
+    data
+  })
+}
diff --git a/wechat_staff/pages/client/index.js b/wechat_staff/pages/client/index.js
index b2b175d..340e25e 100644
--- a/wechat_staff/pages/client/index.js
+++ b/wechat_staff/pages/client/index.js
@@ -1,20 +1,26 @@
 // pages/client/index.js
-Page({
 
+import { getCrmAuthUrl, getDictData } from '../../api/index'
+Page({ 
   /**
    * 椤甸潰鐨勫垵濮嬫暟鎹�
    */
   data: {
-
-  },
-
+    url:'' 
+  }, 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
-  onLoad(options) {
-
+  onLoad(options) { 
+    this.loadData()
   },
-
+  loadData(){ 
+    wx.showToast()
+    getCrmAuthUrl({type:0}).then(res => {
+      console.log(res.data)
+      this.setData({ url: res.data })
+    }) 
+  },
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
    */
@@ -25,8 +31,10 @@
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
    */
-  onShow() {
-
+  onShow() { 
+    // if(this.data.url ==null || this.data.url ==''){
+    //   this.loadData()
+    // }
   },
 
   /**
diff --git a/wechat_staff/pages/client/index.wxml b/wechat_staff/pages/client/index.wxml
index dec2201..ce2e854 100644
--- a/wechat_staff/pages/client/index.wxml
+++ b/wechat_staff/pages/client/index.wxml
@@ -1,2 +1,3 @@
 <!--pages/client/index.wxml-->
-<text>pages/client/index.wxml</text>
+<web-view wx:if="{{url !=null && url !=''}}" src="{{url}}"> </web-view> 
+<button wx:else style="margin-top: 50%;width: 200rpx;font-size: 14px;" bind:tap="loadData">閲嶆柊鍔犺浇</button>
diff --git a/wechat_staff/pages/sets/protocol.js b/wechat_staff/pages/sets/protocol.js
index 0c310a4..80fd810 100644
--- a/wechat_staff/pages/sets/protocol.js
+++ b/wechat_staff/pages/sets/protocol.js
@@ -15,9 +15,9 @@
   onLoad(options) {
     console.log(options.type)
     if(options.type == 1){
-      wx.setNavigationBarTitle({title:'闅愮鍗忚'}) 
+      wx.setNavigationBarTitle({title:'鐢ㄦ埛闅愮鍗忚'}) 
     }else{
-      wx.setNavigationBarTitle({title:'鐢ㄦ埛鍗忚'})  
+      wx.setNavigationBarTitle({title:'鐢ㄦ埛鏈嶅姟鍗忚'})  
     }
     this.loadDict(options.type); 
   },
diff --git a/wechat_staff/pages/store/staff.wxml b/wechat_staff/pages/store/staff.wxml
index 33b4a62..522ef83 100644
--- a/wechat_staff/pages/store/staff.wxml
+++ b/wechat_staff/pages/store/staff.wxml
@@ -75,4 +75,4 @@
       <button class="btn2" bind:tap="saveCard">淇濇寔鍒扮浉鍐�</button>
     </view>
   </van-popup>
-</view>
\ No newline at end of file
+</view>prod
\ No newline at end of file
diff --git a/wechat_staff/utils/config.js b/wechat_staff/utils/config.js
index 43f582f..4933b48 100644
--- a/wechat_staff/utils/config.js
+++ b/wechat_staff/utils/config.js
@@ -6,6 +6,9 @@
 
 // export const imageUrl = 'https://osswebcdn.zbom.com/jiaxuan/images/'
 
+// export const baseUrl = 'https://dmtest.ahapp.net/web_interface/' // 娴嬭瘯鏈�
+export const baseUrl = 'http://192.168.0.135:10027' // 鏈湴 
+ 
 // 鑵捐鍦板浘寮�鍙戣�� key
 export const qqMapKey = 'HIDBZ-2QXL4-TAWUD-XET6Q-EKTJE-CCBSQ'
 

--
Gitblit v1.9.3