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

---
 server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java    |   17 
 server/web/src/main/java/com/doumee/api/web/CustomerApi.java                                  |  100 ++++
 server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java                          |    1 
 server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java            |   41 -
 server/service/src/main/java/com/doumee/dao/web/response/ZTBaseInfoResponse.java              |   22 +
 server/service/src/main/java/com/doumee/service/business/UsersService.java                    |    8 
 server/service/src/main/java/com/doumee/service/business/impl/BjParamServiceImpl.java         |    4 
 server/service/src/main/java/com/doumee/service/business/CustomerUserService.java             |    2 
 server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java                     |   10 
 server/service/src/main/java/com/doumee/core/utils/Constants.java                             |  104 ++++
 server/web/src/main/java/com/doumee/api/web/PersonnelApi.java                                 |   70 +++
 server/service/src/main/java/com/doumee/dao/business/model/Shop.java                          |   12 
 server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java           |   91 ++++
 server/service/src/main/java/com/doumee/service/business/MemberService.java                   |   15 
 server/service/src/main/java/com/doumee/service/business/ShopService.java                     |    9 
 server/service/src/main/java/com/doumee/dao/business/join/UsersJoinMapper.java                |   12 
 server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java     |    2 
 server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java                 |    1 
 server/service/src/main/java/com/doumee/dao/business/model/Users.java                         |   10 
 server/service/src/main/java/com/doumee/dao/web/reqeust/EditMemberRequest.java                |    7 
 server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java          |   33 +
 server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java |   95 +++
 server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java          |  168 ++++++-
 server/web/src/main/java/com/doumee/api/web/CommonApi.java                                    |   62 ++
 server/service/src/main/java/com/doumee/dao/web/reqeust/EditUsersRequest.java                 |   47 ++
 server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java                 |    2 
 server/service/src/main/java/com/doumee/dao/web/reqeust/EditShopDTO.java                      |   42 ++
 server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java            |   74 +++
 server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java                       |  102 +++-
 server/web/src/main/java/com/doumee/api/web/PublicController.java                             |   43 -
 30 files changed, 1,027 insertions(+), 179 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java b/server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java
index 77b2005..f927232 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/ZbomCRMService.java
@@ -26,4 +26,5 @@
 
     CRMBaseResponse<List<CRMCustomerListResponse>> getCustomerList(CrmCustomerListRequest entity );
     CRMBaseResponse<List<CRMDaogouBindListResponse>> getDaogouBindList(CrmDaogouBindListRequest entity );
+
 }
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java b/server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java
index 0b41ced..9851db4 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java
@@ -19,16 +19,16 @@
 
 
     ZTUserGetTokenResponse getUserToken(ZTUserGetTokenRequest param);
-    ZTUserGetTokenResponse userUpdateInfo(ZTUserInfoUpdateRequest param);
+    ZTBaseResponse userUpdateInfo(ZTUserInfoUpdateRequest param);
     boolean userLogout(ZTBaseRequst param);
     List<ZTCatalogInfoResponse> getCatalogList(ZTCatalogListRequest param);
     List<ZTTagInfoResponse> getTagList(ZTCatalogListRequest param);
     ZTBasePageResponse<ZTContentListResponse> pageContentList(ZTContentListRequest param);
    ZTContentInfoResponse getContentInfo(ZTContentInfoRequest param);
-   boolean collectDo(ZTActionDoRequest param);
-   boolean likeDo(ZTActionBatchDoRequest param);
-   boolean shareDo(ZTActionDoRequest param);
-   boolean viewDo(ZTActionDoRequest param);
+    ZTBaseResponse collectDo(ZTActionDoRequest param);
+    ZTBaseResponse likeDo(ZTActionBatchDoRequest param);
+    ZTBaseResponse shareDo(ZTActionDoRequest param);
+    ZTBaseResponse viewDo(ZTActionDoRequest param);
     ZTBasePageResponse<ZTCollectInfoResponse> pageCollectList(ZTContentListRequest param);
     ZTBasePageResponse<ZTContentListResponse> pageLikeList(ZTContentListRequest param);
     ZTBasePageResponse<ZTBehaviorInfoResponse> pageBehavoirList(ZTContentListRequest param);
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java
index bd00ca2..52ea66f 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomCRMServiceImpl.java
@@ -41,7 +41,6 @@
     private CustomerLogMapper customerLogMapper;
     @Autowired
     private CrmInterfaceLogMapper crmInterfaceLogMapper;
-
     @Autowired
     private RedisTemplate<String, Object> redisTemplate;
 
@@ -70,6 +69,7 @@
             entity.setSource(CRMConstants.CRM_SOURCE.SOURCE_MP02);
             entity.setChannel(CRMConstants.CRM_SOURCE.SOURCE_MP02+"00");
         }
+//        entity.setOpenId(customerLog.getOpenid());
         entity.setOpenid(customerLog.getOpenid());
         entity.setDate(DateUtil.dateToString(customerLog.getCreateDate(),"yyyy/MM/dd HH:mm"));
         CrmCustomerPostRequest obj = new CrmCustomerPostRequest();
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java
index 5d3fb8c..5ac9ef0 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java
@@ -314,6 +314,7 @@
         users.setRemark(JSONObject.toJSONString(upateUserModel));
         users.setRoleNames(null);
         users.setRoleCodes(null);
+        users.setCardImg("-");
         users.setRoleIds(null);
         users.setUserTypes(null);
         if( upateUserModel.getUserTypes() !=null){
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 2837a38..07eaea0 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
@@ -91,7 +91,7 @@
      * @return
      */
     @Override
-    public ZTUserGetTokenResponse userUpdateInfo(ZTUserInfoUpdateRequest param){
+    public ZTBaseResponse userUpdateInfo(ZTUserInfoUpdateRequest param){
         ZTBaseResponse<ZTUserGetTokenResponse> result = sendHttpRequest(
                 ZTConstants.IntegerUrl.USER_UPDATE_URL,
                 ZTConstants.IntegerName.USER_UPDATE_NAME,
@@ -99,10 +99,10 @@
                 param.getUserType(),
                 JSONObject.toJSONString(param ),
                 new TypeReference<ZTBaseResponse<ZTUserGetTokenResponse>>(){});
-        if(result!=null){
-            return result.getData();
-        }
-        return null;
+//        if(result!=null){
+//            return result.getData();
+//        }
+        return result;
     }
     /**
      * 娉ㄩ攢鐢ㄦ埛
@@ -208,7 +208,7 @@
      * @return
      */
     @Override
-    public boolean collectDo(ZTActionDoRequest param){
+    public ZTBaseResponse collectDo(ZTActionDoRequest param){
         ZTBaseResponse result = sendHttpRequest(
                 ZTConstants.IntegerUrl.COLLECT_DO_URL,
                 ZTConstants.IntegerName.COLLECT_DO_NAME,
@@ -216,10 +216,8 @@
                 param.getUserType(),
                 JSONObject.toJSONString(param ),
                 new TypeReference<ZTBaseResponse<Object>>(){});
-        if(result!=null ){
-            return true;
-        }
-        return false;
+
+        return result;
     }
     /**
      * 鍐呭鍠滄
@@ -227,7 +225,7 @@
      * @return
      */
     @Override
-    public  boolean likeDo(ZTActionBatchDoRequest param){
+    public  ZTBaseResponse likeDo(ZTActionBatchDoRequest param){
         ZTBaseResponse result = sendHttpRequest(
                 ZTConstants.IntegerUrl.LIKE_DO_URL,
                 ZTConstants.IntegerName.LIKE_DO_NAME,
@@ -235,10 +233,8 @@
                 param.getUserType(),
                 JSONObject.toJSONString(param ),
                 new TypeReference<ZTBaseResponse<Object>>(){});
-        if(result!=null ){
-            return true;
-        }
-        return false;
+
+        return result;
     }
     /**
      * 鍐呭鍒嗕韩
@@ -246,7 +242,7 @@
      * @return
      */
     @Override
-    public boolean shareDo(ZTActionDoRequest param){
+    public ZTBaseResponse shareDo(ZTActionDoRequest param){
         ZTBaseResponse result = sendHttpRequest(
                 ZTConstants.IntegerUrl.SHARE_DO_URL,
                 ZTConstants.IntegerName.SHARE_DO_NAME,
@@ -254,10 +250,7 @@
                 param.getUserType(),
                 JSONObject.toJSONString(param ),
                 new TypeReference<ZTBaseResponse<Object>>(){});
-        if(result!=null ){
-            return true;
-        }
-        return false;
+        return result;
     }
     /**
      * 鍐呭娴忚
@@ -265,7 +258,7 @@
      * @return
      */
     @Override
-    public boolean viewDo(ZTActionDoRequest param){
+    public ZTBaseResponse viewDo(ZTActionDoRequest param){
         ZTBaseResponse result = sendHttpRequest(
                 ZTConstants.IntegerUrl.VIEW_DO_URL,
                 ZTConstants.IntegerName.VIEW_DO_NAME,
@@ -273,10 +266,7 @@
                 param.getUserType(),
                 JSONObject.toJSONString(param ),
                 new TypeReference<ZTBaseResponse<Object>>(){});
-        if(result!=null ){
-            return true;
-        }
-        return false;
+        return result;
     }
     /**
      * 鐢ㄦ埛缁戝畾瀹㈡埛鍠滄娓呭崟锛屽彲缁戝畾澶氫釜鍐呭
@@ -404,7 +394,6 @@
         String res = null;
         int success = 0;
         try {
-
             Map<String,String> headers = new HashMap<>();
             headers.put(ZTConstants.HEADER_TOKEN,token);
             headers.put(ZTConstants.HEADER_USERTYPE,userType);
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java
index f161c97..b210145 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java
@@ -36,4 +36,6 @@
     private List<String> tagCode;
 
 
+    @ApiModelProperty(value = "鐢ㄦ埛涓婚敭",hidden = true)
+    private String userId;
 }
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 4841bbb..0498054 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
@@ -2,16 +2,31 @@
 
 
 import com.alibaba.fastjson.JSONObject;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.dao.business.vo.UnitCodeVo;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.utils.URIBuilder;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.math.BigDecimal;
+import java.net.URI;
 import java.net.URLDecoder;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -96,6 +111,8 @@
     public static final String USER_CARD_HEADER_IMG ="USER_CARD_HEADER_IMG" ;
     public static final String USER_CARD_PHONE_IMG ="USER_CARD_PHONE_IMG" ;
     public static final String USER_CARD_ADDR_IMG ="USER_CARD_ADDR_IMG" ;
+    public static final String USER_CARD_SHOP_IMG ="USER_CARD_SHOP_IMG" ;
+    public static final String USER_CARD_LOGO_IMG ="USER_CARD_LOGO_IMG" ;
 
     public static Integer parseIntByStr(String idtOrgStatus) {
         try {
@@ -308,6 +325,8 @@
     public static final String ACCESS_ID="ACCESS_ID";
     public static final String BUCKETNAME = "BUCKETNAME";
     public static final String OBJCET_STORAGE = "OBJCET_STORAGE";
+    public static final String ZBOM_CUSTOMIZED = "ZBOM_CUSTOMIZED";
+
 
     public static final String ACCESS_KEY = "ACCESS_KEY";
     public static final String ENDPOINT = "ENDPOINT";
@@ -316,6 +335,7 @@
     public static final String USER_CARD_DEFAULT_IMG = "USER_CARD_DEFAULT_IMG";
     public static final String USERS_FILE = "USERS_FILE";
     public static final String NEWS_FILE = "NEWS_FILE";
+    public static final String USER_LABEL = "USER_LABEL";
     //鍙戦�佷細璁紑濮�  瀹氭椂鎻愬墠澶氬皯鍒嗛挓鍙戦��
 
     public static final String SYSTEM ="SYSTEM";
@@ -350,6 +370,8 @@
     public static final String WX_SECRET_CUSTOMER = "WX_SECRET_CUSTOMER";
     public static final String WX_APPID_PERSONNEL = "WX_APPID_PERSONNEL";
     public static final String WX_SECRET_PERSONNEL = "WX_SECRET_PERSONNEL";
+    public static final String WX_TOKEN_CUSTOMER = "WX_TOKEN_CUSTOMER";
+    public static final String WX_TOKEN_PERSONNEL = "WX_TOKEN_PERSONNEL";
 
 
     public interface RedisKeys {
@@ -663,4 +685,86 @@
 
         return sb.toString();
     }
+
+
+    public static InputStream generateWxMiniImgStream(String accessToken,String scene,String page) {
+        //鐢熸垚鍥剧墖涓婁紶OSS
+        Map<String,Object> body = new HashMap<>();
+        // 鍦烘櫙鐮侊紝涓庡墠绔害瀹氾紝鏈�缁堟槸闇�瑕佸墠绔В鏋�
+        body.put("scene", scene);
+        // 姝e紡鐗堜负 "release"锛屼綋楠岀増涓� "trial"锛屽紑鍙戠増涓� "develop"銆傞粯璁ゆ槸姝e紡鐗堛��
+        body.put("env_version", "develop");
+        body.put("page", page);
+        // 閫忔槑锛屾牴鎹綘鐨勫満鏅嚜琛岃缃産ody鍙傛暟
+        body.put("is_hyaline", true);
+        OkHttpClient client = new OkHttpClient().newBuilder().build();
+        okhttp3.MediaType mediaType = okhttp3.MediaType.parse("application/json");
+        okhttp3.RequestBody requestBody = okhttp3.RequestBody.create(mediaType, JSONObject.toJSONString(body));
+        Request request = new Request.Builder().url("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+accessToken)
+                .method("POST", requestBody).build();
+        try {
+            Response response = client.newCall(request).execute();
+            if (response.isSuccessful()) {
+                InputStream inputStream = new ByteArrayInputStream(response.body().bytes());
+//                ByteArrayOutputStream baos = new ByteArrayOutputStream();
+//                    byte[] buffer = new byte[1024];
+//                    int len = -1;
+//                    while ((len = inputStream.read(buffer)) != -1) {
+//                        baos.write(buffer, 0, len);
+//                    }
+//                System.out.println("data:mediatype;base64," + Base64.getEncoder().encodeToString(baos.toByteArray()));
+                return inputStream;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢熸垚鍥剧墖澶辫触");
+    }
+
+
+    /**
+     * 鍙戦�乬et璇锋眰
+     * @param url 璇锋眰URL
+     * @param param 璇锋眰鍙傛暟 key:value url鎼哄甫鍙傛暟 鎴栬�呮棤鍙傚彲涓嶅~
+     * @return
+     */
+    public static String doGet(String url, Map<String, String> param) {
+        // 鍒涘缓Httpclient瀵硅薄
+        CloseableHttpClient httpclient = HttpClients.createDefault();
+        String resultString = "";
+        CloseableHttpResponse response = null;
+        try {
+            // 鍒涘缓uri
+            URIBuilder builder = new URIBuilder(url);
+            if (param != null) {
+                for (String key : param.keySet()) {
+                    builder.addParameter(key, param.get(key));
+                }
+            }
+            URI uri = builder.build();
+            // 鍒涘缓http GET璇锋眰
+            HttpGet httpGet = new HttpGet(uri);
+            // 鎵ц璇锋眰
+            response = httpclient.execute(httpGet);
+            // 鍒ゆ柇杩斿洖鐘舵�佹槸鍚︿负200
+            if (response.getStatusLine().getStatusCode() == 200) {
+                resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                if (response != null) {
+                    response.close();
+                }
+                httpclient.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return resultString;
+    }
+
+
+
 }
diff --git a/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java b/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java
index c467fde..a09dcac 100644
--- a/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java
+++ b/server/service/src/main/java/com/doumee/core/utils/GeneratePicUtil.java
@@ -45,7 +45,7 @@
     }
 
     private static final int width = 750;
-    private static final int height = 1140;
+    private static final int height = 1194;
 
     /**
      * 鐢熸垚鍒嗕韩鍥剧墖
@@ -268,78 +268,120 @@
         }
         return resMatrix;
     }
-    public static InputStream generateUserCardImg(String imgurl, String qrcode, String name,String type, String phone, String shopaddr, String shopname,String phoneIcon,String addrIcon)  {
+    public static InputStream generateUserCardImg(String imgurl, String qrcode, String name,String type, String phone
+            , String shopaddr, String shopname
+            ,String phoneIcon
+            ,String addrIcon
+            ,String shopIcon
+            ,String logoIcon)  {
 
-        BufferedImage bi =  new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+        BufferedImage bi =  new BufferedImage(750, 1194, BufferedImage.TYPE_INT_RGB);
         //寰楀埌瀹冪殑缁樺埗鐜(杩欏紶鍥剧墖鐨勭瑪)
         Graphics2D g2 = (Graphics2D) bi.getGraphics();
-        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
-        g2.fillRect(0, 0, width, height);
+        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+        g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
+        g2.fillRect(0, 0, 750, 1194);
         //鑳屾櫙鍥剧墖
         BufferedImage img1 =getImgIO(imgurl);
         if(img1!=null){
+            int w = img1.getWidth();
+            int h = img1.getHeight();
+            int h1 = (int)((double)w *700/750);
+            int w1 = (int)((double)h *750/700);
+            if(h>h1){
+               h = h1;
+            }
+            if(w>w1){
+               w = w1;
+            }
+            img1 = img1.getSubimage(0,0,w,h);
             g2.drawImage(img1, 0, 0, 750, 700, null);
         }else{
             g2.setColor(new Color(102, 102, 102, 1));
             g2.drawRect( 0, 0, 750, 700);
         }
 
-        //鍟嗗搧鍚嶇О
+        int th = 30;
+        //鍚嶇О
         if(name.length()>5){
             name = name.substring(0,5)+"...";
         }
         g2.setColor(Color.black);
         g2.setFont(new Font("榛戜綋", Font.PLAIN, 40));
-        g2.drawString(name, 40, 990-242);
+        g2.drawString(name, 40, 742+th);
 
-        int w = 40+ name.length()*40;
-        g2.setColor(Color.GRAY);
+        int w = 60+ name.length()* 40;
+        g2.setColor(new Color(176, 135, 113));
+        g2.drawRoundRect(w,744-10,85,50,15,15);//鐢讳竴涓渾瑙掔煩褰�
+
+        g2.setColor(new Color(176, 135, 113));
         g2.setFont(new Font("榛戜綋", Font.PLAIN, 30));
-        g2.drawString(type, w, 990-242);
+        g2.drawString(type, w+12, 741+th);
+
         if(StringUtils.isNotBlank(qrcode)){
             //涓汉浜岀淮鐮�
             BufferedImage img2 = getImgIO(qrcode);
             if(img2!=null){
-                g2.drawImage(img2, 522, 982-242, 188, 188, null);
+                g2.drawImage(img2, 522, 740, 188, 188, null);
             }
-
-            g2.setColor(Color.GRAY);
+            g2.setColor(new Color(176, 135, 113));
             g2.setFont(new Font("榛戜綋", Font.PLAIN, 24));
-            g2.drawString("鎵爜娣诲姞濂藉弸", 544, 1186-242);
+            g2.drawString("鎵爜娣诲姞濂藉弸", 544, 944+th);
         }
+
         //鎵嬫満鍙�
         BufferedImage img4 = getImgIO(phoneIcon);
         if(img4!=null){
-            g2.drawImage(img4, 40, 1072-28-242, 34, 36, null);
+            g2.drawImage(img4, 40, 830 , 34, 36, null);
         }
         g2.setColor(Color.GRAY);
         g2.setFont(new Font("榛戜綋", Font.PLAIN, 30));
-        g2.drawString(phone, 94, 1072-242);
+        g2.drawString(phone, 94, 828+th);
+        //闂ㄥ簵鍚嶇О
+        BufferedImage img5 = getImgIO(shopIcon);
+        if(img4!=null){
+            g2.drawImage(img5, 40, 904 , 34, 36, null);
+        }
+        if(shopname.length()>11){
+            shopname = shopname.substring(0,11)+"...";
+        }
+        g2.setColor(Color.GRAY);
+        g2.setFont(new Font("榛戜綋", Font.PLAIN, 30));
+        g2.drawString(shopname, 94,901+th);
+
 
         BufferedImage img3 = getImgIO(addrIcon);
         if(img3!=null){
-            g2.drawImage(img3, 40, 1142-28-242, 34, 36, null);
+            g2.drawImage(img3, 40, 980, 34, 36, null);
         }
-        if(shopaddr.length()>12){
-            shopaddr = shopaddr.substring(0,12)+"\n"+shopaddr.substring(12);
-        }
-        //鍦板潃
-        g2.setColor(Color.GRAY);
-        g2.setFont(new Font("榛戜綋", Font.PLAIN, 30));
-        g2.drawString(shopaddr, 94, 1142-242);
-
+        dealDrawShopAddr(g2,94,973+th,shopaddr);
         //搴曢儴
-        if(shopname.length()>15){
-            shopname = shopname.substring(0,15)+"...";
+
+        BufferedImage img6 = getImgIO(logoIcon);
+        if(img6!=null){
+            g2.drawImage(img6, 254, 1126+th-20, 242, 28, null);
         }
-        g2.setColor(Color.GRAY);
-        g2.setFont(new Font("榛戜綋", Font.PLAIN, 30));
-        g2.drawString(shopname, 180, 1300-242);
 
         InputStream inputStream = bufferedImageToInputStream(bi);
         return inputStream;
     }
 
+    private static void dealDrawShopAddr(Graphics2D g2, int x, int y, String shopaddr) {
+        int num =shopaddr.length() / 13;
+        for (int i = 0; i <= num; i++) {
+            String temp ="";
+            if(shopaddr.length() >= (i+1)*13){
+                temp = shopaddr.substring(i*13,(i+1)*13);
+            }else{
+                temp=shopaddr.substring( i*13);
+            }
+            //鍦板潃
+            g2.setColor(Color.GRAY);
+            g2.setFont(new Font("榛戜綋", Font.PLAIN, 30));
+            g2.drawString(temp, x, y+i*40);
+        }
+    }
+
     private static BufferedImage getImgIO(String imgurl) {
         try {
         return     ImageIO.read(new URL(imgurl));
diff --git a/server/service/src/main/java/com/doumee/dao/business/join/UsersJoinMapper.java b/server/service/src/main/java/com/doumee/dao/business/join/UsersJoinMapper.java
new file mode 100644
index 0000000..6af1d60
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/join/UsersJoinMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business.join;
+
+import com.doumee.dao.business.model.Users;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/07/04 14:40
+ */
+public interface UsersJoinMapper extends MPJJoinMapper<Users> {
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Shop.java b/server/service/src/main/java/com/doumee/dao/business/model/Shop.java
index ce9b58c..d9e6717 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Shop.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Shop.java
@@ -203,6 +203,15 @@
     @ExcelColumn(name="鍦板潃")
     private String address;
 
+    @ApiModelProperty(value = "鑱旂郴鐢佃瘽")
+    @ExcelColumn(name="鑱旂郴鐢佃瘽")
+    private String linkPhone;
+
+
+    @ApiModelProperty(value = "鑱旂郴浜�")
+    @ExcelColumn(name="鑱旂郴浜�")
+    private String linkerName;
+
     @ApiModelProperty(value = "鐖剁骇閮ㄩ棬绾у埆璺緞", example = "1")
     @TableField(exist = false)
     private String parentIdPath;
@@ -239,4 +248,7 @@
     @TableField(exist = false)
     private List<Users> usersList;
 
+    @ApiModelProperty(value = "闂ㄥ簵缁忚惀鑼冨洿", example = "1")
+    @TableField(exist = false)
+    private List<String> seqNameList;
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Users.java b/server/service/src/main/java/com/doumee/dao/business/model/Users.java
index 962847e..d18349a 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Users.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Users.java
@@ -161,6 +161,9 @@
     @ApiModelProperty(value = "閭")
     @ExcelColumn(name="閭")
     private String email;
+    @ApiModelProperty(value = "鍚嶇墖")
+    @ExcelColumn(name="鍚嶇墖")
+    private String cardImg;
 
     @ApiModelProperty(value = "鐢ㄦ埛绫诲瀷锛屽尯鍒咹R鍐呴儴鍛樺伐鍜屽姞鐩熷晢鍛樺伐锛�10001鍔犵洘鍟嗭紝10002HR鍐呴儴鍛樺伐锛屽涓娇鐢ㄨ嫳鏂囬�楀彿闅斿紑")
     @ExcelColumn(name="鐢ㄦ埛绫诲瀷锛屽尯鍒咹R鍐呴儴鍛樺伐鍜屽姞鐩熷晢鍛樺伐锛�10001鍔犵洘鍟嗭紝10002HR鍐呴儴鍛樺伐锛屽涓娇鐢ㄨ嫳鏂囬�楀彿闅斿紑")
@@ -197,6 +200,13 @@
     @ApiModelProperty(value = "闂ㄥ簵鍦板潃")
     @TableField(exist = false)
     private String shopAddress;
+    @ApiModelProperty(value = "闂ㄥ簵鍩庡競")
+    @TableField(exist = false)
+    private String shopCity;
+
+    @ApiModelProperty(value = "C绔敤鎴锋墜鏈哄彿",notes = "鐢ㄤ簬鏌ヨ鐢ㄦ埛缁戝畾鐨勫璐�",hidden = true)
+    @TableField(exist = false)
+    private String memberPhone;
 
     @ApiModelProperty(value = "浼佷笟浜岀淮鐮佸浘鐗囧畬鏁村湴鍧�")
     @TableField(exist = false)
diff --git a/server/service/src/main/java/com/doumee/dao/web/reqeust/EditMemberRequest.java b/server/service/src/main/java/com/doumee/dao/web/reqeust/EditMemberRequest.java
index 4b56544..d3fb73b 100644
--- a/server/service/src/main/java/com/doumee/dao/web/reqeust/EditMemberRequest.java
+++ b/server/service/src/main/java/com/doumee/dao/web/reqeust/EditMemberRequest.java
@@ -20,10 +20,13 @@
 public class EditMemberRequest{
 
     @ApiModelProperty(value = "鐢ㄦ埛涓婚敭")
-    private long memberId;
+    private long id;
 
     @ApiModelProperty(value = "澶村儚")
     private String imgurl;
+
+    @ApiModelProperty(value = "鏄电О")
+    private String nickname;
 
     @ApiModelProperty(value = "濮撳悕")
     private String name;
@@ -55,7 +58,7 @@
     @ApiModelProperty(value = "灏忓尯鍚嶇О")
     private String district;
 
-    @ApiModelProperty(value = "鎴垮眿闈㈢Н")
+    @ApiModelProperty(value = "鎴垮眿闈㈢Н", example = "0.00")
     private BigDecimal housearea;
 
     @ApiModelProperty(value = "鎴峰瀷淇℃伅锛屽鍘呭帹鍗槼鏁伴噺锛屾牸寮忥紙1-1-1-1-1锛�")
diff --git a/server/service/src/main/java/com/doumee/dao/web/reqeust/EditShopDTO.java b/server/service/src/main/java/com/doumee/dao/web/reqeust/EditShopDTO.java
new file mode 100644
index 0000000..7bf9b07
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/web/reqeust/EditShopDTO.java
@@ -0,0 +1,42 @@
+package com.doumee.dao.web.reqeust;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.dao.business.model.Users;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 蹇楅偊缁勭粐淇℃伅琛�
+ * @author 姹熻箘韫�
+ * @date 2024/07/04 14:40
+ */
+@Data
+public class EditShopDTO {
+
+    @ApiModelProperty(value = "涓婚敭", example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "鍦板潃")
+    private String address;
+
+    @ApiModelProperty(value = "鑱旂郴鐢佃瘽")
+    private String linkPhone;
+
+    @ApiModelProperty(value = "鑱旂郴浜�")
+    private String linkerName;
+
+    @ApiModelProperty(value = "缁忓害", example = "1")
+    private BigDecimal longitude;
+
+    @ApiModelProperty(value = "绾害", example = "1")
+    private BigDecimal latitude;
+}
diff --git a/server/service/src/main/java/com/doumee/dao/web/reqeust/EditUsersRequest.java b/server/service/src/main/java/com/doumee/dao/web/reqeust/EditUsersRequest.java
new file mode 100644
index 0000000..fdcbab8
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/web/reqeust/EditUsersRequest.java
@@ -0,0 +1,47 @@
+package com.doumee.dao.web.reqeust;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/3/23 9:50
+ */
+@Data
+@ApiModel("淇敼鍛樺伐绔敤鎴蜂俊鎭姹傜被")
+public class EditUsersRequest {
+
+    @ApiModelProperty(value = "鐢ㄦ埛涓婚敭")
+    private long userId;
+
+    @ApiModelProperty(value = "澶村儚")
+    private String imgurl;
+
+    @ApiModelProperty(value = "濮撳悕")
+    private String name;
+
+    @ApiModelProperty(value = "鎵嬫満鍙�")
+    private String phone;
+
+    @ApiModelProperty(value = "绛惧悕")
+    private String slogans;
+
+    @ApiModelProperty(value = "鏈嶅姟瀹㈡埛鏁�")
+    private Integer costomerNum;
+
+    @ApiModelProperty(value = "浠庝笟骞撮檺")
+    private Integer jobDate;
+
+    @ApiModelProperty(value = "涓汉浜岀淮鐮佸浘鐗囧湴鍧�")
+    private String qrcodeImg;
+
+    @ApiModelProperty(value = "浼佷笟浜岀淮鐮佸浘鐗囧湴鍧�")
+    private String companyQrcodeImg;
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/web/response/ZTBaseInfoResponse.java b/server/service/src/main/java/com/doumee/dao/web/response/ZTBaseInfoResponse.java
new file mode 100644
index 0000000..858aaba
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/web/response/ZTBaseInfoResponse.java
@@ -0,0 +1,22 @@
+package com.doumee.dao.web.response;
+
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/7/16 11:20
+ */
+@Data
+public class ZTBaseInfoResponse {
+
+    private String token;
+
+    private String openId;
+
+    private String userType;
+
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/CustomerUserService.java b/server/service/src/main/java/com/doumee/service/business/CustomerUserService.java
index d3b2aca..4a0be92 100644
--- a/server/service/src/main/java/com/doumee/service/business/CustomerUserService.java
+++ b/server/service/src/main/java/com/doumee/service/business/CustomerUserService.java
@@ -96,4 +96,6 @@
     long count(CustomerUser customerUser);
 
     void syncYesterday(String date);
+
+    void syncByPhone(String phone);
 }
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 dd08ae9..947d165 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
@@ -49,4 +49,37 @@
      * @return
      */
     ZTContentInfoResponse getContentInfo(String id, String userType, Long userId);
+
+    /**
+     * 鏀惰棌涓氬姟
+     * @param userId
+     * @param userType
+     * @param articleId
+     */
+    void collectContent(Long userId,String userType,String articleId);
+
+    /**
+     * 鏀惰棌涓氬姟
+     * @param userId
+     * @param userType
+     * @param articleId
+     */
+    void likeContent(Long userId,String userType,String articleId);
+
+    /**
+     * 鍐呭鍒嗕韩
+     * @param userId
+     * @param userType
+     * @param articleId
+     */
+    void shareContent(Long userId,String userType,String articleId);
+
+
+    /**
+     * 鍐呭娴忚
+     * @param userId
+     * @param userType
+     * @param articleId
+     */
+    void viewContent(Long userId,String userType,String articleId);
 }
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 b97fe57..2f77677 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
@@ -117,7 +117,14 @@
      * 鏇存柊涓汉淇℃伅
      * @param editMemberRequest
      */
-    void updMemberDetail(EditMemberRequest editMemberRequest);
+    Member updMemberDetail(EditMemberRequest editMemberRequest);
+
+    /**
+     * 鏇存柊鎵嬫満鍙�
+     * @param editMemberRequest
+     * @return
+     */
+    Member updMemberPhone(EditMemberRequest editMemberRequest);
 
 
     Member getMemberInfo(Long memberId);
@@ -128,4 +135,10 @@
      * @param memberId
      */
     void logOff(Long memberId);
+
+
+    /**
+     * 鏇存柊瀹㈡埛绔皬绋嬪簭Token
+     */
+    void updWxMiniToken();
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/ShopService.java b/server/service/src/main/java/com/doumee/service/business/ShopService.java
index 38bd705..33c3568 100644
--- a/server/service/src/main/java/com/doumee/service/business/ShopService.java
+++ b/server/service/src/main/java/com/doumee/service/business/ShopService.java
@@ -5,6 +5,7 @@
 import com.doumee.dao.admin.request.UpdateShopSortDTO;
 import com.doumee.dao.business.model.Shop;
 import com.doumee.dao.business.vo.ShopTreeVo;
+import com.doumee.dao.web.reqeust.EditShopDTO;
 import com.doumee.dao.web.reqeust.ShopQueryByLLDTO;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -125,4 +126,12 @@
      * @return
      */
     Shop shopDetail(Long id,Long memberId);
+
+    /**
+     * 淇敼闂ㄥ簵淇℃伅
+     * @param editShopDTO
+     */
+    void updShop(EditShopDTO editShopDTO);
+
+
 }
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 3467559..3246a6a 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
@@ -4,6 +4,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.Users;
+import com.doumee.dao.web.reqeust.EditUsersRequest;
 import com.doumee.dao.web.response.AccountResponse;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -110,4 +111,11 @@
     Users usersDetail(Long userId);
 
     String getUserCard(Users users);
+
+    void editUserInfo(EditUsersRequest editUsersRequest);
+
+    /**
+     * 鏇存柊鍛樺伐绔皬绋嬪簭Token
+     */
+    void updWxMiniToken();
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/BjParamServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/BjParamServiceImpl.java
index 68e743d..3f22e36 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/BjParamServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/BjParamServiceImpl.java
@@ -216,8 +216,8 @@
         List<BjParam> bjParamList =  bjParamMapper.selectList(new QueryWrapper<BjParam>()
                .lambda().eq(BjParam::getIsdeleted,Constants.ZERO));
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(bjParamList)){
-            List<BjParam> roughList = bjParamList.stream().filter(i->i.getType().equals(Constants.ZERO)).collect(Collectors.toList());
-            List<BjParam> exquisiteList = bjParamList.stream().filter(i->i.getType().equals(Constants.ONE)).collect(Collectors.toList());
+            List<BjParam> roughList = bjParamList.stream().filter(i->i.getType().equals(Constants.ZERO+"")).collect(Collectors.toList());
+            List<BjParam> exquisiteList = bjParamList.stream().filter(i->i.getType().equals(Constants.ONE+"")).collect(Collectors.toList());
             bjParamConfigResponse.setRoughList(roughList);
             bjParamConfigResponse.setExquisiteList(exquisiteList);
         }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java
index bd783e7..00d2f47 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java
@@ -182,6 +182,21 @@
         request.setPageSize(100);
         request.setTiming(Constants.ONE+"");
         request.setCreationDate(date);
+        this.syncData(request);
+    }
+
+    @Override
+    @Transactional
+    public void syncByPhone(String phone) {
+        CrmDaogouBindListRequest request = new CrmDaogouBindListRequest();
+        request.setPage(0);
+        request.setPageSize(100);
+        request.setTiming(Constants.ZERO+"");
+        request.setKeyWords(phone);
+        this.syncData(request);
+    }
+
+    public void syncData(CrmDaogouBindListRequest request){
         boolean hasMore = true;
         int currentNum = 0;
         Date cdate = new Date();
@@ -201,7 +216,7 @@
                 }
                 dealSyncDataBiz(cdate,response.getData());
             }catch (Exception e){
-               hasMore = false;
+                hasMore = false;
             }
         }
     }
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 b834ec6..e081da9 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
@@ -3,22 +3,22 @@
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.biz.zbom.ZbomZhongTaiService;
-import com.doumee.biz.zbom.model.zhongtai.ZTCatalogListRequest;
-import com.doumee.biz.zbom.model.zhongtai.ZTConstants;
-import com.doumee.biz.zbom.model.zhongtai.ZTContentInfoRequest;
-import com.doumee.biz.zbom.model.zhongtai.ZTContentListRequest;
+import com.doumee.biz.zbom.model.zhongtai.*;
 import com.doumee.biz.zbom.model.zhongtai.response.*;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.dao.business.IamInterfaceLogMapper;
 import com.doumee.dao.business.MemberMapper;
 import com.doumee.dao.business.UsersMapper;
+import com.doumee.dao.web.response.ZTBaseInfoResponse;
 import com.doumee.service.business.GetZhongTaiDataService;
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.xpath.operations.Bool;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 
@@ -128,8 +128,9 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         //鏌ヨ 涓彴
-        String token = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,ztContentListRequest.getUserId(),ztContentListRequest.getUserType());
-        ztContentListRequest.setToken(token);
+        ZTBaseInfoResponse ztBaseInfoResponse = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,
+                Long.valueOf(ztContentListRequest.getUserId()),ztContentListRequest.getUserType());
+        ztContentListRequest.setToken(ztBaseInfoResponse.getToken());
         String catalogCode = ztContentListRequest.getCatalogCode();
         if(catalogCode.equals(ZTConstants.CatalogCode.ZHISHUO_ZHUANGXIU)
                 ||catalogCode.equals(ZTConstants.CatalogCode.CHANPING)
@@ -146,22 +147,90 @@
     @Override
     public ZTContentInfoResponse getContentInfo(String id,String userType,Long userId){
         //鏌ヨ 涓彴 TOKEN
-        String token = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,userId.toString(),userType);
+        ZTBaseInfoResponse ztBaseInfoResponse  = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,userId,userType);
         ZTContentInfoRequest ztContentListRequest = new ZTContentInfoRequest();
-        ztContentListRequest.setToken(token);
-        ztContentListRequest.setUserType(userType);
+        ztContentListRequest.setToken(ztBaseInfoResponse.getToken());
+        ztContentListRequest.setUserType(ztBaseInfoResponse.getUserType());
         ztContentListRequest.setId(id);
         ZTContentInfoResponse response = zbomZhongTaiService.getContentInfo(ztContentListRequest);
         return response;
     }
 
+    @Override
+    public void collectContent(Long userId,String userType,String articleId){
+        ZTBaseInfoResponse ztBaseInfoResponse  =  MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,userId,userType);
+        ZTActionDoRequest param = new ZTActionDoRequest();
+        param.setOpenId(ztBaseInfoResponse.getOpenId());
+        param.setUserType(userType);
+        param.setArticleId(articleId);
+        param.setToken(ztBaseInfoResponse.getToken());
+        ZTBaseResponse ztBaseResponse =  zbomZhongTaiService.collectDo(param);
+        if(Objects.isNull(ztBaseResponse)){
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"涓彴鎺ュ彛鍝嶅簲澶辫触");
+        }else{
+            if(!ztBaseResponse.getSuccess()){
+                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"涓彴璇锋眰淇℃伅寮傚父锛�"+ztBaseResponse.getMsg());
+            }
+        }
+    }
+
+    @Override
+    public void likeContent(Long userId,String userType,String articleId){
+        ZTBaseInfoResponse ztBaseInfoResponse  =  MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,userId,userType);
+        ZTActionBatchDoRequest param = new ZTActionBatchDoRequest();
+        param.setOpenId(ztBaseInfoResponse.getOpenId());
+        param.setUserType(userType);
+        param.setToken(ztBaseInfoResponse.getToken());
+        List<ZTActionDoRequest> list = new ArrayList<>();
+        ZTActionDoRequest ztActionDoRequest = new ZTActionDoRequest();
+        ztActionDoRequest.setArticleId(articleId);
+        param.setList(list);
+        ZTBaseResponse ztBaseResponse =  zbomZhongTaiService.likeDo(param);
+        if(Objects.isNull(ztBaseResponse)){
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"涓彴鎺ュ彛鍝嶅簲澶辫触");
+        }else{
+            if(!ztBaseResponse.getSuccess()){
+                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"涓彴璇锋眰淇℃伅寮傚父锛�"+ztBaseResponse.getMsg());
+            }
+        }
+    }
 
 
+    @Override
+    public void shareContent(Long userId,String userType,String articleId){
+        ZTBaseInfoResponse ztBaseInfoResponse  =  MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,userId,userType);
+        ZTActionDoRequest param = new ZTActionDoRequest();
+        param.setArticleId(articleId);
+        param.setOpenId(ztBaseInfoResponse.getOpenId());
+        param.setUserType(userType);
+        param.setToken(ztBaseInfoResponse.getToken());
+        ZTBaseResponse ztBaseResponse =  zbomZhongTaiService.shareDo(param);
+        if(Objects.isNull(ztBaseResponse)){
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"涓彴鎺ュ彛鍝嶅簲澶辫触");
+        }else{
+            if(!ztBaseResponse.getSuccess()){
+                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"涓彴璇锋眰淇℃伅寮傚父锛�"+ztBaseResponse.getMsg());
+            }
+        }
+    }
 
 
-
-
-
-
+    @Override
+    public void viewContent(Long userId,String userType,String articleId){
+        ZTBaseInfoResponse ztBaseInfoResponse  =  MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,userId,userType);
+        ZTActionDoRequest param = new ZTActionDoRequest();
+        param.setArticleId(articleId);
+        param.setOpenId(ztBaseInfoResponse.getOpenId());
+        param.setUserType(userType);
+        param.setToken(ztBaseInfoResponse.getToken());
+        ZTBaseResponse ztBaseResponse =  zbomZhongTaiService.viewDo(param);
+        if(Objects.isNull(ztBaseResponse)){
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"涓彴鎺ュ彛鍝嶅簲澶辫触");
+        }else{
+            if(!ztBaseResponse.getSuccess()){
+                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"涓彴璇锋眰淇℃伅寮傚父锛�"+ztBaseResponse.getMsg());
+            }
+        }
+    }
 
 }
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 9dce68e..70150df 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
@@ -8,6 +8,7 @@
 import com.doumee.biz.zbom.model.zhongtai.ZTBaseRequst;
 import com.doumee.biz.zbom.model.zhongtai.ZTUserGetTokenRequest;
 import com.doumee.biz.zbom.model.zhongtai.ZTUserInfoUpdateRequest;
+import com.doumee.biz.zbom.model.zhongtai.response.ZTBaseResponse;
 import com.doumee.biz.zbom.model.zhongtai.response.ZTUserGetTokenResponse;
 import com.doumee.config.Jwt.JwtPayLoad;
 import com.doumee.config.Jwt.JwtTokenUtil;
@@ -21,14 +22,19 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
 import com.doumee.core.wx.WxMiniConfig;
+import com.doumee.dao.business.CustomerUserMapper;
 import com.doumee.dao.business.MemberMapper;
 import com.doumee.dao.business.UsersMapper;
+import com.doumee.dao.business.model.CustomerUser;
 import com.doumee.dao.business.model.InterfaceLog;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.Users;
+import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.dao.web.reqeust.EditMemberRequest;
 import com.doumee.dao.web.reqeust.WxPhoneRequest;
 import com.doumee.dao.web.response.AccountResponse;
+import com.doumee.dao.web.response.ZTBaseInfoResponse;
+import com.doumee.service.business.CustomerService;
 import com.doumee.service.business.MemberService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -40,6 +46,9 @@
 import okhttp3.Response;
 import org.apache.catalina.User;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.util.ThreadContext;
+import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
@@ -63,6 +72,9 @@
 
     @Autowired
     private UsersMapper usersMapper;
+
+    @Autowired
+    private CustomerUserMapper customerUserMapper;
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
@@ -267,20 +279,38 @@
     @Override
     public AccountResponse wxLogin(String code){
         try {
-//            鑾峰彇寰俊鏁忔劅鏁版嵁
+            //鑾峰彇寰俊鏁忔劅鏁版嵁
             WxMaJscode2SessionResult session = WxMiniConfig.wxCustomerService.getUserService().getSessionInfo(code);
             String openId = session.getOpenid();
             if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) {
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
             }
             Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId));
+            String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode();
             if (member == null) {
                 member = new Member();
                 member.setNickname("寰俊鐢ㄦ埛"+ CodeVerifyUtils.createVerificationCode(4));
                 member.setCreateDate(new Date());
                 member.setIsdeleted(Constants.ZERO);
+                member.setOpenid(openId);
                 member.setType(Constants.ZERO);
+                member.setAuthStatus(Constants.ZERO);
+        //        ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(memberDto);
+        //        if(Objects.isNull(ztUserGetTokenResponse)){
+        //            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴鏈嶅姟璋冭捣澶辫触!");
+        //        }else{
+        //            member.setToken(ztUserGetTokenResponse.getToken());
+        //        }
                 memberMapper.insert(member);
+                member =  this.getMemberInfo(member.getId());
+            }else{
+        //        ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(memberDto);
+        //        if(Objects.isNull(ztUserGetTokenResponse)){
+        //            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴鏈嶅姟璋冭捣澶辫触!");
+        //        }else{
+        //            member.setToken(ztUserGetTokenResponse.getToken());
+        //        }
+                member = this.getMemberInfo(member.getId());
             }
             //鍒涘缓token
             JwtPayLoad payLoad = new JwtPayLoad(member.getId(),Constants.ZERO);
@@ -313,50 +343,83 @@
         throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏇存柊鎵嬫満鍙峰け璐�");
     }
 
+
     @Override
-    public void updMemberDetail(EditMemberRequest editMemberRequest){
-        Member member = memberMapper.selectById(editMemberRequest.getMemberId());
+    public Member updMemberDetail(EditMemberRequest editMemberRequest){
+        Member member = memberMapper.selectById(editMemberRequest.getId());
+        if(Objects.isNull(member)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(Objects.isNull(editMemberRequest)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        Member memberDto = new Member();
+        BeanUtils.copyProperties(editMemberRequest,memberDto);
+        memberDto.setOpenid(member.getOpenid());
+//        ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(memberDto);
+//        if(Objects.isNull(ztUserGetTokenResponse)){
+//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴鏈嶅姟璋冭捣澶辫触!");
+//        }else{
+//            member.setToken(ztUserGetTokenResponse.getToken());
+//        }
+        memberMapper.updateById(memberDto);
+        return this.getMemberInfo(member.getId());
+    }
+
+
+
+    @Override
+    public Member updMemberPhone(EditMemberRequest editMemberRequest){
+        if(Objects.isNull(editMemberRequest)||StringUtils.isBlank(editMemberRequest.getPhone())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        Member member = memberMapper.selectById(editMemberRequest.getId());
+        if(Objects.isNull(member)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        Member memberDto = new Member();
+        BeanUtils.copyProperties(editMemberRequest,memberDto);
+        memberDto.setOpenid(member.getOpenid());
+//        ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(memberDto);
+//        if(Objects.isNull(ztUserGetTokenResponse)){
+//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴鏈嶅姟璋冭捣澶辫触!");
+//        }else{
+//            member.setToken(ztUserGetTokenResponse.getToken());
+//        }
+        memberMapper.updateById(memberDto);
+        return this.getMemberInfo(member.getId());
+    }
+
+
+    public ZTUserGetTokenResponse syncZhongTaiUser(Member member){
         ZTUserInfoUpdateRequest ztUserInfoUpdateRequest = new  ZTUserInfoUpdateRequest();
         ztUserInfoUpdateRequest.setOpenId(member.getOpenid());
         String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode();
         ztUserInfoUpdateRequest.setAppId(appId);
         ztUserInfoUpdateRequest.setPlatform(Constants.PLATFORM);
-        ztUserInfoUpdateRequest.setPhone(editMemberRequest.getPhone());
-        ztUserInfoUpdateRequest.setName(editMemberRequest.getName());
-        ztUserInfoUpdateRequest.setAddress(editMemberRequest.getProvinceName()+editMemberRequest.getCityName()+editMemberRequest.getAreaName());
-        ztUserInfoUpdateRequest.setFullAddress(editMemberRequest.getAddress());
+        ztUserInfoUpdateRequest.setPhone(member.getPhone());
+        ztUserInfoUpdateRequest.setName(member.getNickname());
+        ztUserInfoUpdateRequest.setAddress(member.getProvinceName()+member.getCityName()+member.getAreaName());
+        ztUserInfoUpdateRequest.setFullAddress(member.getAddress());
         String prefix = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode() +
                 systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.MEMBER).getCode();
-        if(StringUtils.isNotBlank(editMemberRequest.getImgurl())){
-            ztUserInfoUpdateRequest.setAvatarUrl(prefix + editMemberRequest.getImgurl());
+        if(StringUtils.isNotBlank(member.getImgurl())){
+            ztUserInfoUpdateRequest.setAvatarUrl(prefix + member.getImgurl());
         }
-        ztUserInfoUpdateRequest.setUptown(editMemberRequest.getDistrict());
-        ztUserInfoUpdateRequest.setHouseArea(editMemberRequest.getHousearea().toString());
-        ztUserInfoUpdateRequest.setHouseLayout(Constants.getHouseLayout(editMemberRequest.getHousetype()));
-        ZTUserGetTokenResponse userUpdateInfo = zbomZhongTaiService.userUpdateInfo(ztUserInfoUpdateRequest);
-        if(Objects.isNull(userUpdateInfo)){
+        ztUserInfoUpdateRequest.setUptown(member.getDistrict());
+        if(Objects.nonNull(member.getHousearea())){
+            ztUserInfoUpdateRequest.setHouseArea(member.getHousearea().toString());
+        }
+        ztUserInfoUpdateRequest.setHouseLayout(Constants.getHouseLayout(member.getHousetype()));
+        ZTBaseResponse userUpdateInfo = zbomZhongTaiService.userUpdateInfo(ztUserInfoUpdateRequest);
+        if(Objects.isNull(userUpdateInfo)||userUpdateInfo.getCode()!=200){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴淇℃伅鏇存柊澶辫触锛岃鑱旂郴绠$悊鍛�");
         }
-        memberMapper.update(new UpdateWrapper<Member>()
-                .lambda()
-                .set(StringUtils.isNotBlank(editMemberRequest.getImgurl()),Member::getImgurl,editMemberRequest.getImgurl())
-                .set(StringUtils.isNotBlank(editMemberRequest.getName()),Member::getName,editMemberRequest.getName())
-                .set(StringUtils.isNotBlank(editMemberRequest.getPhone()),Member::getPhone,editMemberRequest.getPhone())
-                .set(StringUtils.isNotBlank(editMemberRequest.getProvinceName()),Member::getProvinceName,editMemberRequest.getProvinceName())
-                .set(StringUtils.isNotBlank(editMemberRequest.getProvinceCode()),Member::getProvinceCode,editMemberRequest.getProvinceCode())
-                .set(StringUtils.isNotBlank(editMemberRequest.getCityCode()),Member::getCityCode,editMemberRequest.getCityCode())
-                .set(StringUtils.isNotBlank(editMemberRequest.getCityName()),Member::getCityName,editMemberRequest.getCityName())
-                .set(StringUtils.isNotBlank(editMemberRequest.getAreaCode()),Member::getAreaCode,editMemberRequest.getAreaCode())
-                .set(StringUtils.isNotBlank(editMemberRequest.getAreaName()),Member::getAreaName,editMemberRequest.getAreaName())
-                .set(StringUtils.isNotBlank(editMemberRequest.getAddress()),Member::getAddress,editMemberRequest.getAddress())
-                .set(StringUtils.isNotBlank(editMemberRequest.getDistrict()),Member::getDistrict,editMemberRequest.getDistrict())
-                .set(Objects.nonNull(editMemberRequest.getHousearea()),Member::getHousearea,editMemberRequest.getHousearea())
-                .set(StringUtils.isNotBlank(editMemberRequest.getHousetype()),Member::getHousetype,editMemberRequest.getHousetype())
-                .set(Objects.nonNull(editMemberRequest.getLatitude()),Member::getLatitude,editMemberRequest.getLatitude())
-                .set(Objects.nonNull(editMemberRequest.getLongitude()),Member::getLongitude,editMemberRequest.getLongitude())
-                .set(Member::getToken,userUpdateInfo.getToken())
-                .eq(Member::getId,editMemberRequest.getMemberId()));
+        ZTUserGetTokenResponse ztUserGetTokenResponse = (ZTUserGetTokenResponse) userUpdateInfo.getData();
+        return ztUserGetTokenResponse;
     }
+
+
 
     @Override
     public Member getMemberInfo(Long memberId){
@@ -367,18 +430,22 @@
         String prefix = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode() +
                 systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.MEMBER).getCode();
         member.setPrefix(prefix);
-        return member;
+       return member;
     }
 
 
 
 
-    public static String getZTToken(ZbomZhongTaiService zbomZhongTaiService, MemberMapper memberMapper, UsersMapper usersMapper, SystemDictDataBiz systemDictDataBiz, String id, String userType){
+    public static ZTBaseInfoResponse getZTToken(ZbomZhongTaiService zbomZhongTaiService,
+                                                MemberMapper memberMapper, UsersMapper usersMapper, SystemDictDataBiz systemDictDataBiz, Long id, String userType){
+        ZTBaseInfoResponse ztBaseInfoResponse = new ZTBaseInfoResponse();
         if(userType.equals(Constants.CUSTOMER)){
             Member member = memberMapper.selectById(id);
             if(Objects.isNull(member)){
                 throw new BusinessException(ResponseStatus.BAD_REQUEST);
             }
+            ztBaseInfoResponse.setUserType(Constants.CUSTOMER);
+            ztBaseInfoResponse.setOpenId(member.getOpenid());
             //濡傛灉鏃犳湁鏁堟湡/宸茶繃鏈� 閲嶆柊鑾峰彇
             if(Objects.isNull(member.getTokenDate()) || member.getTokenDate().getTime()<=System.currentTimeMillis() ){
                 ZTUserGetTokenRequest param = new ZTUserGetTokenRequest();
@@ -392,17 +459,21 @@
                     //TODO 鏆傛棤杩囨湡鏃ユ湡
                     memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getToken,ztUserGetTokenResponse.getToken())
                             .eq(Member::getId,member.getId()));
-                    return ztUserGetTokenResponse.getToken();
+                    ztBaseInfoResponse.setToken(ztUserGetTokenResponse.getToken());
+                    return ztBaseInfoResponse;
                 }else{
                     throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴TOKEN鑾峰彇澶辫触锛岃鑱旂郴绠$悊鍛�");
                 }
             }
-            return member.getToken();
+            ztBaseInfoResponse.setToken(member.getToken());
+            return ztBaseInfoResponse;
         }else if(userType.equals(Constants.BUSINESS)){
             Users users = usersMapper.selectById(id);
             if(Objects.isNull(users)){
                 throw new BusinessException(ResponseStatus.BAD_REQUEST);
             }
+            ztBaseInfoResponse.setUserType(Constants.BUSINESS);
+            ztBaseInfoResponse.setOpenId(users.getOpenid());
             if(Objects.isNull(users.getTokenDate()) || users.getTokenDate().getTime()<=System.currentTimeMillis() ){
                 ZTUserGetTokenRequest param = new ZTUserGetTokenRequest();
                 //鏌ヨAPPID
@@ -415,12 +486,14 @@
                     //TODO 鏆傛棤杩囨湡鏃ユ湡
                     usersMapper.update(new UpdateWrapper<Users>().lambda().set(Users::getToken,ztUserGetTokenResponse.getToken())
                             .eq(Users::getId,users.getId()));
-                    return ztUserGetTokenResponse.getToken();
+                    ztBaseInfoResponse.setToken(ztUserGetTokenResponse.getToken());
+                    return ztBaseInfoResponse;
                 }else{
                     throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴TOKEN鑾峰彇澶辫触锛岃鑱旂郴绠$悊鍛�");
                 }
             }
-            return users.getToken();
+            ztBaseInfoResponse.setToken(users.getToken());
+            return ztBaseInfoResponse;
         }else{
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍙傛暟閿欒");
         }
@@ -439,7 +512,7 @@
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸叉敞閿�");
         }
         //鏍¢獙鐢ㄦ埛token淇℃伅
-        MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,member.getId().toString(),Constants.CUSTOMER);
+        MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,member.getId(),Constants.CUSTOMER);
         //璋冭捣涓彴娉ㄩ攢鎺ュ彛
         ZTBaseRequst ztBaseRequst = new ZTBaseRequst();
         ztBaseRequst.setUserType(Constants.CUSTOMER);
@@ -459,5 +532,20 @@
 
 
 
+    @Override
+    public void updWxMiniToken(){
+        DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
+        ThreadContext.bind(manager);
+        String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode();
+        String appSecret = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_SECRET_CUSTOMER).getCode();
+        //鐢熸垚寰俊token
+        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appId+"&secret="+appSecret;
+        String response = Constants.doGet(url,null);
+        JSONObject json = JSONObject.parseObject(response);
+        SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_TOKEN_CUSTOMER);
+        systemDictData.setCode(json.getString("access_token"));
+        systemDictData.setUpdateTime(new Date());
+        systemDictDataBiz.updateByIdNew(systemDictData);
+    }
 
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
index 62ed2f3..a7813f5 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
@@ -21,6 +21,8 @@
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.business.vo.ShopTree;
 import com.doumee.dao.business.vo.ShopTreeVo;
+import com.doumee.dao.business.vo.UnitCodeVo;
+import com.doumee.dao.web.reqeust.EditShopDTO;
 import com.doumee.dao.web.reqeust.ShopQueryByLLDTO;
 import com.doumee.service.business.ShopService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -30,6 +32,7 @@
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.scheduling.annotation.Async;
@@ -42,6 +45,7 @@
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.stream.Collectors;
 
 /**
  * 蹇楅偊缁勭粐淇℃伅琛⊿ervice瀹炵幇
@@ -261,7 +265,30 @@
                 queryWrapper.orderByAsc(sortData.getProperty());
             }
         }
-        return PageData.from(shopMapper.selectPage(page, queryWrapper));
+        PageData<Shop> pageData = PageData.from(shopMapper.selectPage(page, queryWrapper));
+        //鏌ヨ缁忚惀鑼冨洿淇℃伅
+        List<CategorySeg> categorySegAllList = categorySegMapper.selectList(new QueryWrapper<CategorySeg>().lambda()
+                .isNotNull(CategorySeg::getOrgId)
+                .eq(CategorySeg::getIsdeleted,Constants.ZERO));
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(categorySegAllList)){
+            for (Shop shop:pageData.getRecords()) {
+                if(StringUtils.isBlank(shop.getOrgId())){
+                    continue;
+                }
+                List<CategorySeg> categorySegList = categorySegAllList.stream().filter(i->i.getOrgId().equals(shop.getOrgId())).collect(Collectors.toList());
+                List<UnitCodeVo> unitCodeVoList =systemDictDataBiz.getUnitList();
+                List<String> seqNameList = new ArrayList<>();
+                for(CategorySeg model : categorySegList){
+                    String seqName = systemDictDataBiz.getUnitName(model.getUnitCode(),unitCodeVoList);
+                    if(Objects.nonNull(seqName)){
+                        seqNameList.add(seqName);
+                    }
+                }
+                shop.setSeqNameList(seqNameList);
+            }
+        }
+
+        return pageData;
     }
 
     @Override
@@ -382,7 +409,7 @@
     }
 
     @Async
-    private void dealCategoryDataBiz(List<CategoryImport> dataList, Date date, LoginUserInfo loginUserInfo) {
+    public void dealCategoryDataBiz(List<CategoryImport> dataList, Date date, LoginUserInfo loginUserInfo) {
         try {
             List<CategorySeg> categorySegList = new ArrayList<>();
             List<Segments> segmentsList = new ArrayList<>();
@@ -907,15 +934,14 @@
 
     @Override
     public Shop shopDetail(Long id,Long memberId) {
-        Member member = memberMapper.selectById(memberId);
-        if(Objects.isNull(member)){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鐢ㄦ埛淇℃伅");
-        }
         QueryWrapper<Shop> queryWrapper = new QueryWrapper<Shop>();
-        //濡傛灉浜哄憳娌℃湁缁忕含搴︿俊鎭紝鍒欎笉鏌ヨ璺濈
-        if(Objects.nonNull(member.getLatitude())&&Objects.nonNull(member.getLongitude())){
-            queryWrapper.select("ID,NAME,ADDRESS,PROVINCE_NAME,CITY_NAME,AREA_NAME,TOWN,AREA_NAME,LEGAL_PHONE," +
-                    " CONVERT (ST_Distance_Sphere (point ("+member.getLongitude()+", "+member.getLatitude()+" ), point ( LONGITUDE, LATITUDE )) /1000,decimal(15,2)) as distance ");
+        if(Objects.nonNull(memberId)){
+            Member member = memberMapper.selectById(memberId);
+            //濡傛灉浜哄憳娌℃湁缁忕含搴︿俊鎭紝鍒欎笉鏌ヨ璺濈
+            if(Objects.nonNull(member)&&Objects.nonNull(member.getLatitude())&&Objects.nonNull(member.getLongitude())){
+                queryWrapper.select("ID,NAME,ADDRESS,PROVINCE_NAME,CITY_NAME,AREA_NAME,TOWN,AREA_NAME,LEGAL_PHONE," +
+                        " CONVERT (ST_Distance_Sphere (point ("+member.getLongitude()+", "+member.getLatitude()+" ), point ( LONGITUDE, LATITUDE )) /1000,decimal(15,2)) as distance ");
+            }
         }
         queryWrapper.eq("id",id);
         Shop shop = shopMapper.selectOne(queryWrapper);
@@ -935,9 +961,35 @@
             }
         }
         shop.setUsersList(usersList);
+        //鏌ヨ缁忚惀鑼冨洿淇℃伅
+        List<CategorySeg> categorySegList = categorySegMapper.selectList(new QueryWrapper<CategorySeg>().lambda().eq(CategorySeg::getOrgId,shop.getOrgId()).eq(CategorySeg::getIsdeleted,Constants.ZERO));
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(categorySegList)){
+            List<UnitCodeVo> unitCodeVoList =systemDictDataBiz.getUnitList();
+            List<String> seqNameList = new ArrayList<>();
+            for(CategorySeg model : categorySegList){
+                String seqName = systemDictDataBiz.getUnitName(model.getUnitCode(),unitCodeVoList);
+                if(Objects.nonNull(seqName)){
+                    seqNameList.add(seqName);
+                }
+            }
+            shop.setSeqNameList(seqNameList);
+        }
         return shop;
     }
 
-
+    @Override
+    public void updShop(EditShopDTO editShopDTO) {
+        if(Objects.isNull(editShopDTO)
+        || Objects.isNull(editShopDTO.getId())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        Shop shop = shopMapper.selectById(editShopDTO.getId());
+        if(Objects.isNull(shop)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        Shop updShop = new Shop();
+        BeanUtils.copyProperties(editShopDTO,updShop);
+        shopMapper.updateById(updShop);
+    }
 
 }
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 509aafe..a4a01e9 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
@@ -2,6 +2,7 @@
 
 import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
 import cn.hutool.core.date.DateUnit;
+import com.alibaba.fastjson.JSONObject;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.biz.zbom.model.IamUserRoleModel;
 import com.doumee.biz.zbom.model.IamUserTypeModel;
@@ -25,19 +26,24 @@
 import com.doumee.dao.business.SmsEmailMapper;
 import com.doumee.dao.business.UsersMapper;
 import com.doumee.dao.business.model.*;
+import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.dao.system.model.SystemUser;
+import com.doumee.dao.web.reqeust.EditUsersRequest;
 import com.doumee.dao.web.response.AccountResponse;
 import com.doumee.service.business.UsersService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.interfaces.MPJBaseJoin;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.catalina.User;
 import org.apache.commons.lang3.StringUtils;
 import me.chanjar.weixin.common.error.WxErrorException;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.util.ThreadContext;
+import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
@@ -50,6 +56,8 @@
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+
+import static com.aliyun.api.internal.util.AliyunWebUtils.doGet;
 
 /**
  * 鍛樺伐淇℃伅琛⊿ervice瀹炵幇
@@ -114,7 +122,15 @@
 
     @Override
     public Users findById(Long id) {
-        return usersMapper.selectById(id);
+        MPJLambdaWrapper<Users> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.leftJoin(Shop.class,Shop::getId,Users::getDepartmentId)
+                .selectAs(Shop::getName,Users::getShopName)
+                .selectAs(Shop::getAddress,Users::getShopAddress)
+                .selectAs(Shop::getType,Users::getShopType)
+                .selectAs(Shop::getSecondType,Users::getShopSecType)
+                .selectAll(Users.class)
+                .eq(Users::getId,id);
+        return usersMapper.selectJoinOne(Users.class,queryWrapper);
     }
 
     @Override
@@ -139,6 +155,9 @@
                 .selectAs(Shop::getSecondType,Users::getShopSecType)
                 .selectAll(Users.class);
         Utils.MP.blankToNull(pageWrap.getModel());
+        if (StringUtils.isNotBlank(pageWrap.getModel().getPhone())) {
+            queryWrapper.apply(" t.id in ( select c.USER_ID from customer_user c where c.phone = '"+pageWrap.getModel().getPhone()+"'  ) ");
+        }
         if (pageWrap.getModel().getId() != null) {
             queryWrapper.eq(Users::getId, pageWrap.getModel().getId());
         }
@@ -282,7 +301,6 @@
                         f.setQrcodeImgFull(path + f.getQrcodeImg());
                     }
                 }
-
         }
         return pageData;
     }
@@ -608,11 +626,16 @@
     public     String getUserCard(Users users){
         String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode();
         String folder = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.USERS_FILE).getCode();
+        if(StringUtils.isNotBlank(users.getCardImg()) && !StringUtils.equals(users.getCardImg(),"-")){
+            return  path + folder+users.getCardImg();
+        }
         String defualtHeader = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_HEADER_IMG).getCode();
         String defualtPhone = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_PHONE_IMG).getCode();
         String defualtAddr = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_ADDR_IMG).getCode();
-        String imgurl =StringUtils.isNotBlank(users.getImgurl())?path+users.getImgurl():defualtHeader;
-        String qrcode =StringUtils.isNotBlank(users.getQrcodeImg())?path+users.getQrcodeImg():null;
+        String defualtShop = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_SHOP_IMG).getCode();
+        String defualtLogo = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_LOGO_IMG).getCode();
+        String imgurl =StringUtils.isNotBlank(users.getImgurl())?path+folder+users.getImgurl():defualtHeader;
+        String qrcode =StringUtils.isNotBlank(users.getQrcodeImg())?path+folder+users.getQrcodeImg():null;
         InputStream inputStream = GeneratePicUtil.generateUserCardImg(
                 imgurl
                 ,qrcode
@@ -620,14 +643,21 @@
                 ,"瀵艰喘"
                 ,StringUtils.defaultString(users.getPhone(),"-")
                 ,StringUtils.defaultString(users.getShopAddress(),"-")
-                ,"ZBOM蹇楅偊瀹跺眳锝�"+ StringUtils.defaultString(users.getShopName(),"-")
+                , StringUtils.defaultString(users.getShopName(),"-")
                 ,defualtPhone
-                ,defualtAddr);
+                ,defualtAddr
+                ,defualtShop
+                ,defualtLogo);
         TyyZosUtil obs = new TyyZosUtil( systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ENDPOINT).getCode(),
                 systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ACCESS_ID).getCode(),
                 systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ACCESS_KEY).getCode());
-        String fileName =folder+ DateUtil.getNowShortDate()+"/"+UUID.randomUUID().toString() + ".jpg";
+        String key = DateUtil.getNowShortDate()+"/"+UUID.randomUUID().toString() + ".jpg";
+        String fileName =folder+ key;
         if (obs.uploadInputstreamObject(inputStream,systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.BUCKETNAME).getCode(), fileName)) {
+            Users update = new Users();
+            update.setId(users.getId());
+            update.setCardImg(key);
+            usersMapper.updateById(update);
             return  path+fileName;
         }
         return null;
@@ -650,10 +680,14 @@
         if(StringUtils.isNotBlank(users.getCompanyQrcodeImg())){
             users.setCompanyQrcodeImgFull(prefix + users.getCompanyQrcodeImg());
         }
+        if(StringUtils.isBlank(users.getSlogans())){
+            users.setSlogans(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.ZBOM_CUSTOMIZED,Constants.USER_LABEL).getCode()));
+        }
         if(Objects.nonNull(users.getDepartmentId())){
             Shop shop = shopMapper.selectById(users.getDepartmentId());
             if(Objects.nonNull(shop)){
                 users.setShopName(shop.getName());
+                users.setShopCity(shop.getProvinceName()+shop.getCityName()+shop.getAreaName());
                 if(StringUtils.isNotBlank(shop.getAddress())){
                     users.setShopAddress(shop.getAddress());
                 }else{
@@ -666,5 +700,48 @@
 
 
 
+    @Override
+    public void editUserInfo(EditUsersRequest editUsersRequest){
+        if(Objects.isNull(editUsersRequest)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        Users users = usersMapper.selectById(editUsersRequest.getUserId());
+        if(Objects.isNull(users)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        //TODO 璋冭捣 涓彴鎺ュ彛
+        usersMapper.update(new UpdateWrapper<Users>()
+                .lambda()
+                .set(Users::getCardImg,"-") //閲嶇疆鍚嶇墖涓� -
+                .set(StringUtils.isNotBlank(editUsersRequest.getImgurl()),Users::getImgurl,editUsersRequest.getImgurl())
+                .set(StringUtils.isNotBlank(editUsersRequest.getName()),Users::getName,editUsersRequest.getName())
+                .set(StringUtils.isNotBlank(editUsersRequest.getPhone()),Users::getPhone,editUsersRequest.getPhone())
+                .set(StringUtils.isNotBlank(editUsersRequest.getCompanyQrcodeImg()),Users::getCompanyQrcodeImg,editUsersRequest.getCompanyQrcodeImg())
+                .set(StringUtils.isNotBlank(editUsersRequest.getQrcodeImg()),Users::getQrcodeImg,editUsersRequest.getQrcodeImg())
+                .set(StringUtils.isNotBlank(editUsersRequest.getSlogans()),Users::getSlogans,editUsersRequest.getSlogans())
+                .set(Objects.nonNull(editUsersRequest.getCostomerNum()),Users::getCostomerNum,editUsersRequest.getCostomerNum())
+                .set(Objects.nonNull(editUsersRequest.getJobDate()),Users::getJobDate,editUsersRequest.getJobDate())
+                .set(StringUtils.isNotBlank(editUsersRequest.getPhone()),Users::getPhone,editUsersRequest.getPhone())
+                .eq(Users::getId,editUsersRequest.getUserId()));
+    }
+
+
+
+    @Override
+    public void updWxMiniToken(){
+        DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
+        ThreadContext.bind(manager);
+        String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_PERSONNEL).getCode();
+        String appSecret = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_SECRET_PERSONNEL).getCode();
+        //鐢熸垚寰俊token
+        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appId+"&secret="+appSecret;
+        String response = Constants.doGet(url,null);
+        JSONObject json = JSONObject.parseObject(response);
+        SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_TOKEN_PERSONNEL);
+        systemDictData.setCode(json.getString("access_token"));
+        systemDictData.setUpdateTime(new Date());
+        systemDictDataBiz.updateByIdNew(systemDictData);
+    }
+
 }
 
diff --git a/server/web/src/main/java/com/doumee/api/web/CommonApi.java b/server/web/src/main/java/com/doumee/api/web/CommonApi.java
new file mode 100644
index 0000000..3404a88
--- /dev/null
+++ b/server/web/src/main/java/com/doumee/api/web/CommonApi.java
@@ -0,0 +1,62 @@
+package com.doumee.api.web;
+
+import com.doumee.biz.zbom.ZbomCRMService;
+import com.doumee.biz.zbom.ZbomZhongTaiService;
+import com.doumee.biz.zbom.model.zhongtai.ZTAreaListRequest;
+import com.doumee.biz.zbom.model.zhongtai.response.ZTAreaInfoResponse;
+import com.doumee.config.annotation.LoginRequired;
+import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.CustomerLog;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.Shop;
+import com.doumee.dao.business.model.Users;
+import com.doumee.dao.web.reqeust.*;
+import com.doumee.dao.web.response.AccountResponse;
+import com.doumee.dao.web.response.BjParamConfigResponse;
+import com.doumee.service.business.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/7/10 14:03
+ */
+@Api(tags = "宸ュ叿绫讳笟鍔�")
+@Trace(exclude = true)
+@RestController
+@RequestMapping("/web/common")
+@Slf4j
+public class CommonApi extends ApiController{
+
+    @Autowired
+    private ZbomZhongTaiService zbomZhongTaiService;
+
+    @ApiOperation(value = "鑾峰彇鍖哄垝淇℃伅", notes = "瀹㈡埛绔皬绋嬪簭")
+    @PostMapping("/getArea")
+    public ApiResponse<List<ZTAreaInfoResponse>> getArea(@RequestBody ZTAreaListRequest ztAreaListRequest) {
+        if(StringUtils.isBlank(ztAreaListRequest.getPid())){
+            ztAreaListRequest.setPid("1");
+        }
+        List<ZTAreaInfoResponse> ztAreaInfoResponses =  zbomZhongTaiService.getAreaList(ztAreaListRequest);
+        return  ApiResponse.success(ztAreaInfoResponses);
+    }
+
+
+
+
+
+}
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 0e9ba35..747d3b4 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
@@ -1,11 +1,13 @@
 package com.doumee.api.web;
 
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.biz.zbom.ZbomCRMService;
 import com.doumee.config.annotation.LoginRequired;
 import com.doumee.core.annotation.trace.Trace;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.CustomerLog;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.Shop;
@@ -19,12 +21,16 @@
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.imageio.ImageIO;
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.io.InputStream;
 
 /**
  * Created by IntelliJ IDEA.
@@ -58,6 +64,9 @@
     @Autowired
     private UsersService usersService;
 
+    @Autowired
+    private CustomerUserService customerUserService;
+
     @ApiOperation(value = "瀹㈡埛绔皬绋嬪簭鐧婚檰", notes = "瀹㈡埛绔皬绋嬪簭")
     @GetMapping("/wxLoginCustomer")
     @ApiImplicitParams({
@@ -83,10 +92,41 @@
     @ApiImplicitParams({
             @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
     })
-    public ApiResponse updMemberDetail(@RequestBody EditMemberRequest editMemberRequest) {
-        editMemberRequest.setMemberId(getMemberId());
-        memberService.updMemberDetail(editMemberRequest);
-        return  ApiResponse.success("鏇存柊鎴愬姛");
+    public ApiResponse<Member> editMember(@RequestBody EditMemberRequest editMemberRequest) {
+        editMemberRequest.setId(getMemberId());
+        //鍚屾瀵艰喘缁戝畾淇℃伅
+        if(StringUtils.isNotBlank(editMemberRequest.getPhone())){
+            customerUserService.syncByPhone(editMemberRequest.getPhone());
+        }
+        return  ApiResponse.success("鏇存柊鎴愬姛",memberService.updMemberDetail(editMemberRequest));
+    }
+
+    @LoginRequired
+    @ApiOperation(value = "缁戝畾鎵嬫満鍙蜂俊鎭�", notes = "瀹㈡埛绔皬绋嬪簭")
+    @PostMapping("/binDingPhone")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public ApiResponse<Member> binDingPhone(@RequestBody EditMemberRequest editMemberRequest) {
+        editMemberRequest.setId(getMemberId());
+        //鍚屾瀵艰喘缁戝畾淇℃伅
+        if(StringUtils.isNotBlank(editMemberRequest.getPhone())){
+            customerUserService.syncByPhone(editMemberRequest.getPhone());
+        }
+        return  ApiResponse.success("鏇存柊鎴愬姛",memberService.updMemberPhone(editMemberRequest));
+    }
+
+
+    @LoginRequired
+    @ApiOperation(value = "鍚屾瀵艰喘缁戝畾淇℃伅", notes = "瀹㈡埛绔皬绋嬪簭")
+    @GetMapping("/syncCustomerUser")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "phone", value = "鎵嬫満鍙蜂俊鎭�", required = true),
+    })
+    public ApiResponse syncCustomerUser(@RequestParam String phone) {
+        customerUserService.syncByPhone(phone);
+        return  ApiResponse.success("鍚屾鎴愬姛");
     }
 
     @LoginRequired
@@ -116,7 +156,7 @@
     public ApiResponse saveRenovationCalculator(@RequestBody RenovationCalculatorDTO renovationCalculatorDTO) {
         renovationCalculatorDTO.setMemberId(getMemberId());
         CustomerLog customerLog =customerService.saveRenovationCalculator(renovationCalculatorDTO);
-        zbomCRMService.dealCustomerLogData(customerLog);
+//        zbomCRMService.dealCustomerLogData(customerLog);
         return  ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -130,7 +170,7 @@
     public ApiResponse saveFreeCustomizationApply(@RequestBody FreeCustomizationDTO freeCustomizationDTO) {
         freeCustomizationDTO.setMemberId(getMemberId());
         CustomerLog customerLog = customerService.saveFreeCustomizationApply(freeCustomizationDTO);
-        zbomCRMService.dealCustomerLogData(customerLog);
+//        zbomCRMService.dealCustomerLogData(customerLog);
         return  ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -143,7 +183,7 @@
     public ApiResponse saveTestTrimStyle(@RequestBody TestTrimStyleDTO testTrimStyleDTO) {
         testTrimStyleDTO.setMemberId(getMemberId());
         CustomerLog customerLog = customerService.saveTestTrimStyle(testTrimStyleDTO);
-        zbomCRMService.dealCustomerLogData(customerLog);
+//        zbomCRMService.dealCustomerLogData(customerLog);
         return  ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
@@ -178,6 +218,17 @@
     }
 
     @LoginRequired
+    @ApiOperation("鎴戠殑瀵艰喘鍒楄〃")
+    @PostMapping("/myUserPage")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public ApiResponse<PageData<Users>> myUserPage (@RequestBody PageWrap<Users> pageWrap) {
+        return ApiResponse.success(usersService.findPage(pageWrap));
+    }
+
+
+    @LoginRequired
     @ApiOperation(value = "瀵艰喘璇︽儏", notes = "瀹㈡埛绔皬绋嬪簭")
     @GetMapping("/usersDetail")
     @ApiImplicitParams({
@@ -189,6 +240,41 @@
     }
 
 
+    @LoginRequired
+    @ApiOperation(value = "娴嬭瘯灏忕▼搴廡oken", notes = "瀹㈡埛绔皬绋嬪簭")
+    @GetMapping("/testToken")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public ApiResponse testToken () {
+        memberService.updWxMiniToken();
+        return ApiResponse.success("鏇存柊鎴愬姛");
+    }
+
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @LoginRequired
+    @ApiOperation(value = "鑾峰彇鍒嗕韩灏忕▼搴忎簩缁寸爜锛堝浘鐗囨祦锛宨mg鏍囩src鎸囧畾锛�", notes = "瀹㈡埛绔皬绋嬪簭")
+    @GetMapping("/generateImg")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public void generateImg(HttpServletResponse response) {
+        try{
+            response.setHeader("Cache-Control", "no-store, no-cache");
+            response.setContentType("image/jpeg");
+            InputStream inputStream = Constants.generateWxMiniImgStream(
+                    systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_TOKEN_CUSTOMER).getCode(),"123",""
+            );
+            ImageIO.write(ImageIO.read(inputStream),"png",response.getOutputStream());
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
 
 
 }
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 6b24bfd..440f720 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
@@ -1,11 +1,19 @@
 package com.doumee.api.web;
 
+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;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.Shop;
 import com.doumee.dao.business.model.SmsEmail;
+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.response.AccountResponse;
 import com.doumee.service.business.MemberService;
+import com.doumee.service.business.ShopService;
 import com.doumee.service.business.SmsEmailService;
 import com.doumee.service.business.UsersService;
 import io.swagger.annotations.Api;
@@ -13,6 +21,7 @@
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -35,6 +44,9 @@
 
     @Autowired
     public SmsEmailService smsEmailService;
+
+    @Autowired
+    public ShopService shopService;
 
 
     @ApiOperation(value = "灏忕▼搴忕櫥闄�", notes = "鍛樺伐绔皬绋嬪簭")
@@ -76,6 +88,7 @@
     @ApiOperation(value = "缁戝畾openid", notes = "鍛樺伐绔皬绋嬪簭")
     @GetMapping("/bindingOpenid")
     @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "寰俊code", required = true),
     })
     public ApiResponse bindingOpenid(@RequestParam String code) {
@@ -83,6 +96,63 @@
         return  ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
+    @UserLoginRequired
+    @ApiOperation(value = "鑾峰彇涓汉淇℃伅璇︽儏", notes = "鍛樺伐绔皬绋嬪簭")
+    @GetMapping("/getUserDetail")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public ApiResponse getUserDetail() {
+        usersService.usersDetail(getMemberId());
+        return  ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+
+    @UserLoginRequired
+    @ApiOperation(value = "鏇存柊涓汉淇℃伅", notes = "鍛樺伐绔皬绋嬪簭")
+    @PostMapping("/editUsers")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public ApiResponse editUsers(@RequestBody EditUsersRequest editUsersRequest) {
+        editUsersRequest.setUserId(getMemberId());
+        usersService.editUserInfo(editUsersRequest);
+        return  ApiResponse.success("鏇存柊鎴愬姛");
+    }
+
+
+    @UserLoginRequired
+    @ApiOperation(value = "闂ㄥ簵鍒嗛〉", notes = "鍛樺伐绔皬绋嬪簭")
+    @PostMapping("/shopPage")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public ApiResponse<PageData<Shop>> shopPage (@RequestBody PageWrap<Shop> pageWrap) {
+        return ApiResponse.success(shopService.findPage(pageWrap));
+    }
+
+    @UserLoginRequired
+    @ApiOperation(value = "闂ㄥ簵璇︽儏", notes = "鍛樺伐绔皬绋嬪簭")
+    @GetMapping("/shopDetail")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+            @ApiImplicitParam(paramType = "query", dataType = "Long", name = "shopId", value = "闂ㄥ簵涓婚敭", required = true)
+    })
+    public ApiResponse<Shop> shopDetail (@RequestParam Long shopId) {
+        return ApiResponse.success(shopService.shopDetail(shopId,null));
+    }
+
+    @UserLoginRequired
+    @ApiOperation(value = "淇敼闂ㄥ簵淇℃伅", notes = "鍛樺伐绔皬绋嬪簭")
+    @GetMapping("/updShop")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+    })
+    public ApiResponse updShop(@RequestBody EditShopDTO editShopDTO) {
+        shopService.updShop(editShopDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
     @ApiOperation(value = "鑾峰彇涓汉鍚嶇墖", notes = "鍛樺伐绔皬绋嬪簭")
     @PostMapping("/getUserCard")
     public ApiResponse<String> getUserCard() {
diff --git a/server/web/src/main/java/com/doumee/api/web/PublicController.java b/server/web/src/main/java/com/doumee/api/web/PublicController.java
index 459aea0..1eef751 100644
--- a/server/web/src/main/java/com/doumee/api/web/PublicController.java
+++ b/server/web/src/main/java/com/doumee/api/web/PublicController.java
@@ -64,40 +64,16 @@
     }
 
 
+
+    public static FtpUtil ftp  = null;
+
     @ApiOperation(value = "涓婁紶", notes = "涓婁紶", httpMethod = "POST", position = 6)
     @ApiImplicitParams({
-        @ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
     })
     @PostMapping(value = "/upload", headers = "content-type=multipart/form-data")
     public void uploadMobile(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception {
         MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-        upload(multipartRequest, response, folder + "/",
-            systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.BUCKETNAME).getCode(),
-            systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.ACCESS_ID).getCode(),
-            systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.ACCESS_KEY).getCode(),
-            systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode(),
-            systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.ENDPOINT).getCode());
-    }
-
-
-    @ApiOperation(value = "涓婁紶鍥剧墖", notes = "涓婁紶鍥剧墖", httpMethod = "POST", position = 6)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
-    })
-    @PostMapping(value = "/uploadPicture", headers = "content-type=multipart/form-data")
-    public void uploadPicture(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception {
-        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-        Iterator<String> fileNames = multipartRequest.getFileNames();
-        Map<String, Object> context = new HashMap<>();
-        while (fileNames.hasNext()){
-            MultipartFile file = multipartRequest.getFile(fileNames.next());
-            String fileName = file.getOriginalFilename();
-            String suffix = fileName.substring(fileName.lastIndexOf("."));
-            if ( !StringUtils.equalsIgnoreCase(suffix, ".jpg") || !StringUtils.equalsIgnoreCase(suffix, ".png")) {
-                context.put("code", 0);
-                context.put("message", "瀵逛笉璧凤紝鏂囦欢鏍煎紡涓婁紶鏈夎锛�");
-            }
-        }
         upload(multipartRequest, response, folder + "/",
                 systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.BUCKETNAME).getCode(),
                 systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.ACCESS_ID).getCode(),
@@ -107,9 +83,6 @@
     }
 
 
-
-
-    public static  FtpUtil ftp  = null;
 
     @ApiOperation(value = "涓婁紶鏂囦欢鍒癋TP")
     @RequestMapping(method= RequestMethod.POST,value="api/uploadFtp.do",headers = "content-type=multipart/form-data")
@@ -205,7 +178,7 @@
 
 
     public void upload(HttpServletRequest request, HttpServletResponse response, String folder, String bucketName,
-        String access_id, String access_key, String resourcePath, String endpoint) throws Exception {
+                       String access_id, String access_key, String resourcePath, String endpoint) throws Exception {
         response.setCharacterEncoding("UTF-8");
         response.setContentType("text/html;charset=UTF-8");
         Map<String, Object> context = new HashMap<>();
@@ -236,6 +209,11 @@
                     if (StringUtils.equalsIgnoreCase(nfix, ".dll")) {
                         context.put("code", 4000);
                         context.put("message", "瀵逛笉璧凤紝鏂囦欢鏍煎紡\".dll\"涓婁紶鏈夎锛�");
+                        return;
+                    }
+                    if (StringUtils.equalsIgnoreCase(nfix, ".so")) {
+                        context.put("code", 4000);
+                        context.put("message", "瀵逛笉璧凤紝鏂囦欢鏍煎紡\".so\"涓婁紶鏈夎锛�");
                         return;
                     }
                     String nowDate = DateUtil.getNowShortDate();// 褰撳墠鏃堕棿锛堝勾鏈堟棩锛�
@@ -297,6 +275,5 @@
             e.printStackTrace();
         }
     }
-
 
 }

--
Gitblit v1.9.3