From 0cd3a666af34e28eaf50ed1392b5d219a9d2b1cf Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期三, 24 七月 2024 09:42:06 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia

---
 server/web/src/main/java/com/doumee/api/web/CustomerApi.java                                        |   52 ++++--
 wechat_staff/pages/promotion/index.js                                                               |  149 +++++++++++++++++-
 server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java                                |    3 
 wechat_staff/package-lock.json                                                                      |   10 +
 wechat_staff/package.json                                                                           |    4 
 server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java           |    8 
 admin/src/components/business/OperaNewsDzWindow.vue                                                 |    2 
 wechat_staff/utils/request.js                                                                       |    3 
 server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java       |    9 -
 server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java                |   51 ++---
 server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductInfoResponse.java |    1 
 server/service/src/main/java/com/doumee/core/utils/Constants.java                                   |    5 
 server/web/src/main/java/com/doumee/api/web/PersonnelApi.java                                       |   26 ---
 server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java                                |   12 -
 wechat_staff/pages/promotion/index.wxml                                                             |   37 ++--
 wechat_staff/pages/store/staff.js                                                                   |    7 
 server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java                 |   17 -
 server/service/src/main/java/com/doumee/dao/business/model/CustomerLog.java                         |    4 
 server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java                                  |    6 
 server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java                  |    6 
 wechat_staff/pages/promotion/index.wxss                                                             |   10 +
 admin/src/components/business/OperaNewsWindow.vue                                                   |    4 
 22 files changed, 279 insertions(+), 147 deletions(-)

diff --git a/admin/src/components/business/OperaNewsDzWindow.vue b/admin/src/components/business/OperaNewsDzWindow.vue
index 5bccdbe..b788708 100644
--- a/admin/src/components/business/OperaNewsDzWindow.vue
+++ b/admin/src/components/business/OperaNewsDzWindow.vue
@@ -20,7 +20,7 @@
         </el-radio-group>
       </el-form-item>
       <el-form-item label="鍒楄〃鍥�/瑙嗛"   prop="files" >
-        <upload width="100px" height="100px" :max-length="1"   @dele="delFile" :list="form.fileList" accept=".png,.jpg,.jpeg,.mp4" folder="news" @loading="loading = true" @success="fileResult($event)" />
+        <upload width="100px" height="100px" :max-length="1"   @dele="delFile" :list="form.fileList" accept=".png,.jpg,.jpeg,.mp4" folder="spokesman" @loading="loading = true" @success="fileResult($event)" />
       </el-form-item>
       <el-form-item label="璺宠浆绫诲瀷" prop="linkType" required>
         <el-radio-group v-model="form.linkType"  >
diff --git a/admin/src/components/business/OperaNewsWindow.vue b/admin/src/components/business/OperaNewsWindow.vue
index 548f327..633c667 100644
--- a/admin/src/components/business/OperaNewsWindow.vue
+++ b/admin/src/components/business/OperaNewsWindow.vue
@@ -32,10 +32,10 @@
         </el-radio-group>
       </el-form-item>
       <el-form-item label="鍥鹃泦涓婁紶 锛堟渶澶�9寮狅級"    v-if="form.fileType !=1">
-        <upload width="100px" height="100px" :max-length="9" @dele="delFile" :list="fileImgList" accept=".png,.jpg,.jpeg" folder="news" @loading="loading = true" @success="fileResult($event)" />
+        <upload width="100px" height="100px" :max-length="9" @dele="delFile" :list="fileImgList" accept=".png,.jpg,.jpeg" folder="spokesman" @loading="loading = true" @success="fileResult($event)" />
       </el-form-item>
       <el-form-item label="瑙嗛涓婁紶锛堝崟涓級"    v-if="form.fileType === 1">
-        <upload width="100px" height="100px" :max-length="1"   @dele="delFile" :list="fileVideoList" accept=".mp4" folder="news" @loading="loading = true" @success="fileResult($event)" />
+        <upload width="100px" height="100px" :max-length="1"   @dele="delFile" :list="fileVideoList" accept=".mp4" folder="spokesman" @loading="loading = true" @success="fileResult($event)" />
       </el-form-item>
       <el-form-item label="鎺掑簭鐮侊紙鍗囧簭锛�" prop="sortnum">
         <el-input   v-model="form.sortnum"   type="number"  placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductInfoResponse.java
index fe27696..705f5ce 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductInfoResponse.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductInfoResponse.java
@@ -51,5 +51,6 @@
     private String type;
     private String video;
     private String intro;
+    private Boolean isNew;
 
 }
diff --git a/server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java b/server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
index 44d2bd0..a4e8a98 100644
--- a/server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
+++ b/server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
@@ -60,6 +60,8 @@
     private final static String jwtSecret = "MhAjU9poLf8ko54K25XBDtonaL33vtt1";
     //杩囨湡鏃堕棿(s) 86400L=1澶� 604800L=7澶�
     private static final long expire = 86400L;
+    //redis杩囨湡鏃堕棿
+    private static final Integer redisExpire = 3;
 
     /**
      * 鐢熸垚token,鏍规嵁userId鍜岄粯璁よ繃鏈熸椂闂�
@@ -75,18 +77,10 @@
      * 鐢熸垚token,鏍规嵁userId鍜岄粯璁よ繃鏈熸椂闂�
      */
     public static String generateTokenForZb(Long userId,String userType,String userInfo,RedisTemplate<String,Object> redisTemplate) {
-        Long expiredSeconds = getExpireSeconds();
-        final Date expirationDate = new Date(System.currentTimeMillis() + expiredSeconds * 1000);
-        return generateTokenZb(userId,userType,userInfo, expirationDate,redisTemplate);
-    }
-
-
-    public static String generateTokenZb(Long userId, String userType,String userInfo, Date expiredDate,RedisTemplate<String,Object> redisTemplate) {
         String tokenKey =  UUID.randomUUID() + "_" + userId;
-        redisTemplate.opsForValue().set(userType + "_" +tokenKey,userInfo);
+        redisTemplate.opsForValue().set(userType + "_" +tokenKey,userInfo,redisExpire,TimeUnit.HOURS);
         return tokenKey;
     }
-
 
     /**
      * 楠岃瘉token鏄惁澶辨晥
diff --git a/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java b/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
index c5872f9..7cc5155 100644
--- a/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
+++ b/server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
@@ -101,6 +101,9 @@
             if(Objects.isNull(member)){
                 throw new BusinessException(ResponseStatus.DATA_EMPTY);
             }
+            if(Objects.isNull(member.getOpenid())){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸叉敞閿�,璇烽噸鏂扮櫥褰�");
+            }
             if(Constants.equalsInteger(member.getIsdeleted(),Constants.ONE)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳");
             }
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 5f0fdd1..3305881 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
@@ -524,6 +524,11 @@
         return null;
     }
 
+    public static String desensitizationPhone(String phone)  {
+        return phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
+    }
+
+
 
     public enum VehiclePlateNoEnum {
         /**
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/CustomerLog.java b/server/service/src/main/java/com/doumee/dao/business/model/CustomerLog.java
index 554ca9b..5d94445 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/CustomerLog.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/CustomerLog.java
@@ -153,6 +153,10 @@
     @ExcelColumn(name="濮撳悕")
     private String name;
 
+    @ApiModelProperty(value = "member鐢ㄦ埛鍚嶇О",hidden = true)
+    @TableField(exist = false)
+    private String memberName;
+
     @ApiModelProperty(value = "openid")
     @TableField(exist = false)
     private String openid;
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java
index 0941de2..172c042 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java
@@ -15,6 +15,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -128,8 +129,10 @@
         MPJLambdaWrapper<CustomerLog> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
         queryWrapper.selectAll(CustomerLog.class)
+                .selectAs(Member::getName,CustomerLog::getMemberName)
                 .leftJoin(Customer.class,Customer::getId,CustomerLog::getCostomerId)
                             .eq(CustomerLog::getIsdeleted, Constants.ZERO)
+                .leftJoin(Member.class,Member::getId,Customer::getMemberId)
                 .eq(Objects.nonNull(pageWrap.getModel().getType()),CustomerLog::getType, pageWrap.getModel().getType())
                 .eq(Objects.nonNull(pageWrap.getModel().getMemberId()),Customer::getMemberId, pageWrap.getModel().getMemberId());
         if (pageWrap.getModel().getMemberId() != null) {
@@ -237,8 +240,11 @@
         for (CustomerLog customerLog:pageData.getRecords()) {
             if(Objects.nonNull(pageWrap.getModel().getIsHiddenPhone())&& Constants.equalsInteger(pageWrap.getModel().getIsHiddenPhone(),Constants.ZERO)){
                 customerLog.setPhone(
-                        customerLog.getPhone().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")
+                        Constants.desensitizationPhone(customerLog.getPhone())
                 );
+                if(Constants.equalsInteger(customerLog.getType(),Constants.TWO)&& StringUtils.isNotBlank(customerLog.getMemberName())){
+                    customerLog.setName(customerLog.getMemberName());
+                }
             }
         }
         return pageData;
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 8cee3a7..44ebc5b 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
@@ -115,14 +115,7 @@
         param.setArticleId(articleId);
         param.setToken(ztBaseInfoResponse.getToken());
         param.setActionType(actionType);
-        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());
-            }
-        }
+        zbomZhongTaiService.collectDo(param);
     }
 
     @Override
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 b4d1738..ea5a395 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
@@ -278,7 +278,7 @@
 //            String openId = code;
             Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId).isNotNull("phone"));
             Users users = new Users();
-            if(StringUtils.isBlank(iamId)){
+            if(StringUtils.isNotBlank(iamId)){
                 users = usersMapper.selectOne(new QueryWrapper<Users>().lambda()
                         .eq(Users::getIamId,iamId)
                         .last("limit 1")
@@ -298,9 +298,7 @@
                     member.setAuthStatus(Constants.ZERO);
                 }
                 ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(member);
-                if(Objects.isNull(ztUserGetTokenResponse)){
-                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓彴鏈嶅姟璋冭捣澶辫触!");
-                }else{
+                if(!Objects.isNull(ztUserGetTokenResponse)){
                     member.setToken(ztUserGetTokenResponse.getToken());
                 }
                 memberMapper.insert(member);
@@ -314,7 +312,7 @@
                 this.saveCustomerUser(users,member.getId());
                 member = this.getMemberInfo(member.getId());
             }
-            String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.CUSTOMER, JSONObject.toJSON(member).toString(),redisTemplate);
+            String token = JwtTokenUtil.generateTokenForZb(member.getId(),ZTConstants.CUSTOMER, JSONObject.toJSON(member).toString(),redisTemplate);
             AccountResponse accountResponse = new AccountResponse();
             accountResponse.setToken(token);
             accountResponse.setSessionKey(session.getSessionKey());
@@ -327,24 +325,23 @@
     }
 
     public void saveCustomerUser(Users users,Long memberId){
-        if(!(Objects.nonNull(users)&&Objects.nonNull(memberId))){
-            return;
-        }
-        if( customerUserMapper.selectCount(new QueryWrapper<CustomerUser>().lambda()
-                        .eq(CustomerUser::getIsdeleted,Constants.ZERO)
-                .eq(CustomerUser::getUserId,users.getId())
-                .eq(CustomerUser::getMemberId,memberId)) <= Constants.ZERO ){
-            CustomerUser customerUser = new CustomerUser();
-            customerUser.setUserId(users.getId());
-            customerUser.setCreateDate(new Date());
-            customerUser.setMemberId(memberId);
-            customerUser.setPhone(users.getPhone());
-            customerUser.setIamUserId(users.getIamId());
-            customerUser.setName(users.getName());
-            customerUser.setUsername(users.getIamUsername());
-            customerUser.setAddr(users.getShopAddress());
-            customerUserMapper.insert(customerUser);
-            //TODO 绛夊緟璋冭捣涓彴鎺ュ彛
+        if(Objects.nonNull(users)&&Objects.nonNull(memberId)) {
+            if (customerUserMapper.selectCount(new QueryWrapper<CustomerUser>().lambda()
+                    .eq(CustomerUser::getIsdeleted, Constants.ZERO)
+                    .eq(CustomerUser::getUserId, users.getId())
+                    .eq(CustomerUser::getMemberId, memberId)) <= Constants.ZERO) {
+                CustomerUser customerUser = new CustomerUser();
+                customerUser.setUserId(users.getId());
+                customerUser.setCreateDate(new Date());
+                customerUser.setMemberId(memberId);
+                customerUser.setPhone(users.getPhone());
+                customerUser.setIamUserId(users.getIamId());
+                customerUser.setName(users.getName());
+                customerUser.setUsername(users.getIamUsername());
+                customerUser.setAddr(users.getShopAddress());
+                customerUserMapper.insert(customerUser);
+                //TODO 绛夊緟璋冭捣涓彴鎺ュ彛
+            }
         }
     }
 
@@ -527,10 +524,6 @@
         if(Objects.isNull(member)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        if(StringUtils.isBlank(member.getPhone())){
-            redisTemplate.delete(token);
-           return null;
-        }
         //鏍¢獙鐢ㄦ埛token淇℃伅
         MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,member.getId(),ZTConstants.CUSTOMER);
         //璋冭捣涓彴娉ㄩ攢鎺ュ彛
@@ -542,9 +535,9 @@
                 .set(Member::getOpenid,null)
                 .set(Member::getPhone,null)
                 .set(Member::getEditDate,new Date())
-                .eq(Member::getId,member.getId())
+                .eq(Member::getOpenid,member.getOpenid())
         );
-        redisTemplate.delete(ZTConstants.CUSTOMER+"_"+ member.getId());
+        redisTemplate.delete(token);
         return ztBaseRequst;
     }
 
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java
index 58450d9..48e7f1e 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java
@@ -189,6 +189,10 @@
         IPage<News> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         MPJLambdaWrapper<News> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
+        if(Objects.isNull(pageWrap.getModel())){
+            News news = new News();
+            pageWrap.setModel(news);
+        }
         pageWrap.getModel().setIsdeleted(Constants.ZERO);
         queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,News::getEditor)
                 .selectAll(News.class)
@@ -257,7 +261,6 @@
 
         PageData<News> pageData =  PageData.from(newsMapper.selectJoinPage(page, News.class,queryWrapper));
         if(pageData!=null && pageData.getRecords()!=null && pageData.getRecords().size()>0){
-
             List<Long> idList = new ArrayList<>();
             for(News model : pageData.getRecords()){
                 idList.add(model.getId());
@@ -266,7 +269,6 @@
             for(News model : pageData.getRecords()){
                 setFilelistById(model,files);
             }
-
         }
         return pageData;
     }
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 b5d2af7..2fd86db 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
@@ -393,13 +393,13 @@
             if(!Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插垹闄�");
             }
-            if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
+            if(!StringUtils.equals(users.getStatus(),Constants.ONE+"")){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插仠鐢紝璇疯仈绯荤鐞嗗憳");
             }
             users.setOpenid(openId);
             usersMapper.updateById(users);
             //鍒涘缓token
-            String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,users.getId()+"",redisTemplate);
+            String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,JSONObject.toJSON(users).toString(),redisTemplate);
             accountResponse.setToken(token);
             getUsersDetail(users);
             accountResponse.setSessionKey(session.getSessionKey());
@@ -410,6 +410,7 @@
         }
         throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
     }
+
 
     @Override
     public AccountResponse getWxMiniPhoneLogin(WxPhoneRequest wxPhoneRequest){
@@ -424,12 +425,12 @@
             Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda()
                     .eq(Users::getPhone,phone).last("limit 1"));
             AccountResponse accountResponse = new AccountResponse();
-            accountResponse.setPhone(phone);
+            accountResponse.setPhone( Constants.desensitizationPhone(phone));
             if(Objects.isNull(users)){
                 return accountResponse;
             }
             accountResponse.setUsers(users);
-            String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,users.getId()+"",redisTemplate);
+            String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,JSONObject.toJSON(users).toString(),redisTemplate);
             accountResponse.setToken(token);
             return accountResponse;
         } catch (Exception e) {
@@ -872,10 +873,6 @@
         if(Objects.isNull(users)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        if(StringUtils.isBlank(users.getOpenid())){
-            redisTemplate.delete(token);
-            return null;
-        }
         //鏍¢獙鐢ㄦ埛token淇℃伅
         MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,users.getId(), ZTConstants.BUSINESS);
         //璋冭捣涓彴娉ㄩ攢鎺ュ彛
@@ -886,9 +883,9 @@
         usersMapper.update(new UpdateWrapper<Users>().lambda()
                 .set(Users::getOpenid,null)
                 .set(Users::getEditDate,new Date())
-                .eq(Users::getId,users.getId())
+                .eq(Users::getOpenid,users.getOpenid())
         );
-        redisTemplate.delete(ZTConstants.BUSINESS+"_"+ users.getId());
+        redisTemplate.delete(token);
         return ztBaseRequst;
     }
 
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 3ebcca5..dd85290 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
@@ -5,6 +5,7 @@
 import com.doumee.biz.zbom.model.zhongtai.*;
 import com.doumee.biz.zbom.model.zhongtai.response.*;
 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;
@@ -295,6 +296,7 @@
 
 
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "鍒嗙被鏁版嵁 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @PostMapping("/getCatalogList")
@@ -303,13 +305,14 @@
     })
     public ApiResponse<List<ZTCatalogInfoResponse>> getCatalogList (@RequestBody ZTCatalogListRequest ztCatalogListRequest ) {
         ztCatalogListRequest.setUserId(getMemberId()+"");
-        ztCatalogListRequest.setUserType(ZTConstants.CUSTOMER);
+        ztCatalogListRequest.setUserType(getUserType());
         List<ZTCatalogInfoResponse> ztCatalogInfoResponseList = getZhongTaiDataService.getCatalogList(ztCatalogListRequest);
         return ApiResponse.success("鏌ヨ鎴愬姛",ztCatalogInfoResponseList);
     }
 
 
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "鏍囩鏁版嵁 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @PostMapping("/getCataLogTagList")
@@ -318,13 +321,14 @@
     })
     public ApiResponse<List<ZTTagInfoResponse>> getCataLogTagList(@RequestBody ZTCatalogListRequest ztCatalogListRequest ) {
         ztCatalogListRequest.setUserId(getMemberId()+"");
-        ztCatalogListRequest.setUserType(ZTConstants.CUSTOMER);
+        ztCatalogListRequest.setUserType(getUserType());
         List<ZTTagInfoResponse> ztTagInfoResponseList = getZhongTaiDataService.getCataLogTagList(ztCatalogListRequest);
         return ApiResponse.success("鏌ヨ鎴愬姛",ztTagInfoResponseList);
     }
 
 
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "琛屼负鍐呭鎺ュ彛 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @GetMapping("/actionDo")
@@ -334,10 +338,11 @@
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "actionType", value = "琛屼负绫诲瀷锛氭敹钘忥細collect;鍙栨秷鏀惰棌锛歝ollect_cancel;鍠滄锛歭ike;鍙栨秷鍠滄锛歭ike_cancel锛涙祻瑙堬細view;鍒嗕韩锛歴hare;涓嬭浇锛歞ownload", required = true),
     })
     public ApiResponse actionDo(@RequestParam String id,@RequestParam String actionType) {
-        getZhongTaiDataService.actionDo(getMemberId(),ZTConstants.CUSTOMER,id,actionType);
+        getZhongTaiDataService.actionDo(getMemberId(),getUserType(),id,actionType);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "瀹氬埗鏈嶅姟鍒楄〃", notes = "瀹㈡埛绔皬绋嬪簭")
     @GetMapping("/getCustomizedNewsList")
@@ -348,6 +353,7 @@
         return ApiResponse.success("鏌ヨ鎴愬姛",newsService.getCustomizedNewsList(Constants.ONE,null,null));
     }
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "瀹氬埗鏈嶅姟璇︽儏", notes = "瀹㈡埛绔皬绋嬪簭")
     @GetMapping("/getCustomizedNewsDetail")
@@ -359,6 +365,7 @@
         return ApiResponse.success("鏌ヨ鎴愬姛",newsService.getCustomizedNewsDetail(id));
     }
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "淇濆瓨鎺ㄥ箍鍜ㄨ鍒嗕韩璁板綍", notes = "瀹㈡埛绔皬绋嬪簭")
     @GetMapping("/saveShareRecord")
@@ -379,7 +386,7 @@
     })
     public ApiResponse<ZTBasePageResponse<ZTCusFavoritesInfoResponse>> getZhongTaiCusFavorite(@RequestBody ZTContentListRequest ztContentListRequest) {
         ztContentListRequest.setUserId(getMemberId()+"");
-        ztContentListRequest.setUserType(ZTConstants.CUSTOMER);
+        ztContentListRequest.setUserType(getUserType());
         ZTBasePageResponse<ZTCusFavoritesInfoResponse> ztBasePageResponse = getZhongTaiDataService.getZhongTaiCusFavorite(ztContentListRequest);
         return ApiResponse.success("鑾峰彇鎴愬姛",ztBasePageResponse);
     }
@@ -394,7 +401,7 @@
     })
     public ApiResponse<List<ZTCusCarouselImageResponse>> getZhongTaiCarouselImage(@RequestBody ZTContentListRequest ztContentListRequest) {
         ztContentListRequest.setUserId(getMemberId()+"");
-        ztContentListRequest.setUserType(ZTConstants.CUSTOMER);
+        ztContentListRequest.setUserType(getUserType());
         List<ZTCusCarouselImageResponse> ztCusCarouselImageResponseList = getZhongTaiDataService.getZhongTaiCarouselImage(ztContentListRequest);
         return ApiResponse.success("鑾峰彇鎴愬姛",ztCusCarouselImageResponseList);
     }
@@ -409,12 +416,13 @@
     })
     public ApiResponse<ZTCusCarouselImageResponse> getZhongTaiCarouselImageDetail(@RequestBody ZTDataDetailRequest ztDataDetailRequest) {
         ztDataDetailRequest.setUserId(getMemberId()+"");
-        ztDataDetailRequest.setUserType(ZTConstants.CUSTOMER);
+        ztDataDetailRequest.setUserType(getUserType());
         ZTCusCarouselImageResponse ztCusCarouselImageResponse = getZhongTaiDataService.getZhongTaiCarouselImageDetail(ztDataDetailRequest);
         return ApiResponse.success("鑾峰彇鎴愬姛",ztCusCarouselImageResponse);
     }
 
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "鍜ㄨ鍒嗛〉鍒楄〃 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @PostMapping("/getZhongTaiProductNewsPage")
@@ -423,12 +431,13 @@
     })
     public ApiResponse<ZTBasePageResponse<ZTProductNewsInfoResponse>> getZhongTaiProductNewsPage(@RequestBody ZTContentListRequest ztContentListRequest) {
         ztContentListRequest.setUserId(getMemberId()+"");
-        ztContentListRequest.setUserType(ZTConstants.CUSTOMER);
+        ztContentListRequest.setUserType(getUserType());
         ZTBasePageResponse<ZTProductNewsInfoResponse>  ztBasePageResponse= getZhongTaiDataService.getZhongTaiProductNewsPage(ztContentListRequest);
         return ApiResponse.success("鏌ヨ鎴愬姛",ztBasePageResponse);
     }
 
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "浜у搧鍒嗛〉鍒楄〃 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @PostMapping("/getZhongTaiProductPage")
@@ -437,11 +446,12 @@
     })
     public ApiResponse<ZTBasePageResponse<ZTProductInfoResponse>> getZhongTaiProductPage(@RequestBody ZTContentListRequest ztContentListRequest) {
         ztContentListRequest.setUserId(getMemberId()+"");
-        ztContentListRequest.setUserType(ZTConstants.CUSTOMER);
+        ztContentListRequest.setUserType(getUserType());
         ZTBasePageResponse<ZTProductInfoResponse>  ztBasePageResponse= getZhongTaiDataService.getZhongTaiProductPage(ztContentListRequest);
         return ApiResponse.success("鏌ヨ鎴愬姛",ztBasePageResponse);
     }
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "瀹炴櫙鍒嗛〉鍒楄〃 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @PostMapping("/getZhongTaiRealcasePage")
@@ -450,11 +460,12 @@
     })
     public ApiResponse<ZTBasePageResponse<ZTRealcaseInfoResponse>> getZhongTaiRealcasePage(@RequestBody ZTContentListRequest ztContentListRequest) {
         ztContentListRequest.setUserId(getMemberId()+"");
-        ztContentListRequest.setUserType(ZTConstants.CUSTOMER);
+        ztContentListRequest.setUserType(getUserType());
         ZTBasePageResponse<ZTRealcaseInfoResponse>  ztBasePageResponse= getZhongTaiDataService.getZhongTaiRealcasePage(ztContentListRequest);
         return ApiResponse.success("鏌ヨ鎴愬姛",ztBasePageResponse);
     }
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "瑙嗛鍒嗛〉鍒楄〃 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @PostMapping("/getZhongTaiVideoPage")
@@ -463,11 +474,12 @@
     })
     public ApiResponse<ZTBasePageResponse<ZTVideoInfoResponse>> getZhongTaiVideoPage(@RequestBody ZTContentListRequest ztContentListRequest) {
         ztContentListRequest.setUserId(getMemberId()+"");
-        ztContentListRequest.setUserType(ZTConstants.CUSTOMER);
+        ztContentListRequest.setUserType(getUserType());
         ZTBasePageResponse<ZTVideoInfoResponse>  ztBasePageResponse= getZhongTaiDataService.getZhongTaiVideoPage(ztContentListRequest);
         return ApiResponse.success("鏌ヨ鎴愬姛",ztBasePageResponse);
     }
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "鍏ㄥ眿妗堜緥鍒嗛〉鍒楄〃 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @PostMapping("/getZhongTaiWholecasePage")
@@ -476,11 +488,12 @@
     })
     public ApiResponse<ZTBasePageResponse<ZTCaseInfoResponse>> getZhongTaiWholecasePage(@RequestBody ZTContentListRequest ztContentListRequest) {
         ztContentListRequest.setUserId(getMemberId()+"");
-        ztContentListRequest.setUserType(ZTConstants.CUSTOMER);
+        ztContentListRequest.setUserType(getUserType());
         ZTBasePageResponse<ZTCaseInfoResponse>  ztBasePageResponse= getZhongTaiDataService.getZhongTaiWholecasePage(ztContentListRequest);
         return ApiResponse.success("鏌ヨ鎴愬姛",ztBasePageResponse);
     }
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "蹇楄瑁呬慨鍒嗛〉鍒楄〃 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @PostMapping("/getZhongTaiZbDecoPage")
@@ -489,12 +502,13 @@
     })
     public ApiResponse<ZTBasePageResponse<ZTZbDecoInfoResponse>> getZhongTaiZbDecoPage(@RequestBody ZTContentListRequest ztContentListRequest) {
         ztContentListRequest.setUserId(getMemberId()+"");
-        ztContentListRequest.setUserType(ZTConstants.CUSTOMER);
+        ztContentListRequest.setUserType(getUserType());
         ZTBasePageResponse<ZTZbDecoInfoResponse>  ztBasePageResponse= getZhongTaiDataService.getZhongTaiZbDecoPage(ztContentListRequest);
         return ApiResponse.success("鏌ヨ鎴愬姛",ztBasePageResponse);
     }
 
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "鍏ㄥ眿妗堜緥璇︽儏 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @GetMapping("/getWholecaseInfo")
@@ -503,11 +517,12 @@
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "鍐呭涓婚敭", required = true),
     })
     public ApiResponse<ZTCaseInfoResponse> getWholecaseInfo(@RequestParam String id) {
-        ZTCaseInfoResponse ztCaseInfoResponse= getZhongTaiDataService.getWholecaseInfo(id,ZTConstants.CUSTOMER,getMemberId());
+        ZTCaseInfoResponse ztCaseInfoResponse= getZhongTaiDataService.getWholecaseInfo(id,getUserType(),getMemberId());
         return ApiResponse.success("鏌ヨ鎴愬姛",ztCaseInfoResponse);
     }
 
 
+    @UserLoginRequired
     @LoginRequired
     @GetMapping("/getProductNewsInfo")
     @ApiOperation(value = "浜у搧璧勮璇︽儏 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
@@ -516,12 +531,13 @@
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "鍐呭涓婚敭", required = true),
     })
     public ApiResponse<ZTProductNewsInfoResponse> getProductNewsInfo(@RequestParam String id) {
-        ZTProductNewsInfoResponse ztProductNewsInfoResponse= getZhongTaiDataService.getProductNewsInfo(id,ZTConstants.CUSTOMER,getMemberId());
+        ZTProductNewsInfoResponse ztProductNewsInfoResponse= getZhongTaiDataService.getProductNewsInfo(id,getUserType(),getMemberId());
         return ApiResponse.success("鏌ヨ鎴愬姛",ztProductNewsInfoResponse);
     }
 
 
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "瀹炴櫙妗堜緥 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @GetMapping("/getRealcaseInfo")
@@ -530,12 +546,13 @@
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "鍐呭涓婚敭", required = true),
     })
     public ApiResponse<ZTRealcaseInfoResponse> getRealcaseInfo(@RequestParam String id) {
-        ZTRealcaseInfoResponse ztRealcaseInfoResponse= getZhongTaiDataService.getRealcaseInfo(id,ZTConstants.CUSTOMER,getMemberId());
+        ZTRealcaseInfoResponse ztRealcaseInfoResponse= getZhongTaiDataService.getRealcaseInfo(id,getUserType(),getMemberId());
         return ApiResponse.success("鏌ヨ鎴愬姛",ztRealcaseInfoResponse);
     }
 
 
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "浜у搧璇︽儏 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @GetMapping("/getProductInfo")
@@ -544,11 +561,12 @@
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "鍐呭涓婚敭", required = true),
     })
     public ApiResponse<ZTProductInfoResponse> getProductInfo(@RequestParam String id) {
-        ZTProductInfoResponse ztProductInfoResponse= getZhongTaiDataService.getProductInfo(id,ZTConstants.CUSTOMER,getMemberId());
+        ZTProductInfoResponse ztProductInfoResponse= getZhongTaiDataService.getProductInfo(id,getUserType(),getMemberId());
         return ApiResponse.success("鏌ヨ鎴愬姛",ztProductInfoResponse);
     }
 
 
+    @UserLoginRequired
     @LoginRequired
     @ApiOperation(value = "鎴戠殑鏀惰棌/鍠滄鍒楄〃 - 涓彴", notes = "瀹㈡埛绔皬绋嬪簭")
     @PostMapping("/collectLikePage")
@@ -557,7 +575,7 @@
     })
     public ApiResponse<ZTBasePageResponse<ZTCollectLikeInfoResponse>> collectLikePage(@RequestBody ZTCollectLikeRequest ztCollectLikeRequest) {
         ztCollectLikeRequest.setUserId(getMemberId()+"");
-        ztCollectLikeRequest.setUserType(ZTConstants.CUSTOMER);
+        ztCollectLikeRequest.setUserType(getUserType());
         ZTBasePageResponse<ZTCollectLikeInfoResponse>  ztBasePageResponse= getZhongTaiDataService.collectLikePage(ztCollectLikeRequest);
         return ApiResponse.success("鏌ヨ鎴愬姛",ztBasePageResponse);
     }
diff --git a/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java b/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java
index b1b50b4..d367c4a 100644
--- a/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java
@@ -65,9 +65,11 @@
 
 
 
+    @UserLoginRequired
     @ApiOperation(value = "銆怋绔皬绋嬪簭銆戞瘡鏃ヤ笂鏂版暟鎹�")
     @GetMapping("/getDailyUpdates")
     @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
             @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "fileType", value = "闄勪欢绫诲瀷 0鍥剧墖 1瑙嗛", required = false)
     })
     public ApiResponse<DailyUpdatesResponse> getDailyUpdates(Integer fileType) {
@@ -75,8 +77,12 @@
     }
 
 
+    @UserLoginRequired
     @ApiOperation("銆怋绔皬绋嬪簭銆� 鎺ㄥ箍鍜ㄨ鍒嗛〉")
     @PostMapping("/newsPage")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+    })
     public ApiResponse<PageData<News>> newsPage (@RequestBody PageWrap<News> pageWrap) {
         return ApiResponse.success(newsService.findPage(pageWrap));
     }
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 887bfb4..03ecf4d 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
@@ -110,7 +110,7 @@
     }
 
 
-    @ApiOperation(value = "鎵嬫満鍙峰揩鎹风櫥褰�", notes = "瀹㈡埛绔皬绋嬪簭")
+    @ApiOperation(value = "鎵嬫満鍙峰揩鎹风櫥褰�", notes = "鍛樺伐绔皬绋嬪簭")
     @PostMapping("/getWxMiniPhoneLogin")
     public ApiResponse<AccountResponse> getWxMiniPhone(@Valid @RequestBody WxPhoneRequest wxPhoneRequest) {
         return  ApiResponse.success("鑾峰彇鎴愬姛",usersService.getWxMiniPhoneLogin(wxPhoneRequest));
@@ -199,30 +199,6 @@
         crmCustomerListRequest.setUserId(getUserId());
         return  ApiResponse.success(getCrmDataService.getCrmCustomerList(crmCustomerListRequest));
     }
- 
-    @UserLoginRequired
-    @ApiOperation(value = "鍒嗙被鏁版嵁 - 涓彴", notes = "鍛樺伐绔皬绋嬪簭")
-    @PostMapping("/getCatalogList")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
-    })
-    public ApiResponse<List<ZTCatalogInfoResponse>> getCatalogList (@RequestBody ZTCatalogListRequest ztCatalogListRequest ) {
-        List<ZTCatalogInfoResponse> ztCatalogInfoResponseList = getZhongTaiDataService.getCatalogList(ztCatalogListRequest);
-        return ApiResponse.success("鏌ヨ鎴愬姛",ztCatalogInfoResponseList);
-    }
- 
-    @UserLoginRequired
-    @ApiOperation(value = "鏍囩鏁版嵁 - 涓彴", notes = "鍛樺伐绔皬绋嬪簭")
-    @PostMapping("/getCataLogTagList")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
-    })
-    public ApiResponse<List<ZTTagInfoResponse>> getCataLogTagList(@RequestBody ZTCatalogListRequest ztCatalogListRequest ) {
-        List<ZTTagInfoResponse> ztTagInfoResponseList = getZhongTaiDataService.getCataLogTagList(ztCatalogListRequest);
-        return ApiResponse.success("鏌ヨ鎴愬姛",ztTagInfoResponseList);
-    }
-
-
 
     @UserLoginRequired
     @ApiOperation(value = "鐢ㄦ埛娉ㄩ攢", notes = "鍛樺伐绔皬绋嬪簭")
diff --git a/wechat_staff/package-lock.json b/wechat_staff/package-lock.json
index 93912f0..6a01a9b 100644
--- a/wechat_staff/package-lock.json
+++ b/wechat_staff/package-lock.json
@@ -21,6 +21,16 @@
       "requires": {
         "jsbn": "^1.1.0"
       }
+    },
+    "moment": {
+      "version": "2.30.1",
+      "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
+      "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
+    },
+    "mp-html": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmmirror.com/mp-html/-/mp-html-2.5.0.tgz",
+      "integrity": "sha512-uvBH5tIaDIlj8qaxsvNXU3RKX0jvXOo3J6FAi/notUv/ds6j79UUTE82aDkxxUk0eLUU0CiCqMrR7WWnytk30Q=="
     }
   }
 }
diff --git a/wechat_staff/package.json b/wechat_staff/package.json
index 92336ca..9f4b08b 100644
--- a/wechat_staff/package.json
+++ b/wechat_staff/package.json
@@ -4,7 +4,9 @@
   "main": ".eslintrc.js",
   "dependencies": {
     "@vant/weapp": "^1.11.6",
-    "miniprogram-sm-crypto": "^0.3.13"
+    "miniprogram-sm-crypto": "^0.3.13",
+    "moment": "^2.30.1",
+    "mp-html": "^2.5.0"
   },
   "devDependencies": {},
   "scripts": {
diff --git a/wechat_staff/pages/promotion/index.js b/wechat_staff/pages/promotion/index.js
index 21a867e..e3638d0 100644
--- a/wechat_staff/pages/promotion/index.js
+++ b/wechat_staff/pages/promotion/index.js
@@ -1,4 +1,5 @@
 import { newsPage } from '../../api/index'
+import moment from "moment";
 Page({
 
   /**
@@ -6,7 +7,7 @@
    */
   data: {
     capacity: 10,
-    page: 0,
+    page: 1,
     list: [],
     total: 0,
   },
@@ -15,10 +16,22 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
   onLoad(options) {
-
+    this.getList()
   },
   getList() {
-    newsPage() 
+    newsPage({capacity:this.data.capacity,
+      page:this.data.page,
+      model:{type:0}})
+      .then(res =>{
+        if(this.data.page == res.data.page){ 
+          res.data.records.forEach(element => { 
+            element.createDate = moment(element.createDate).format("yyyy/MM/DD")  
+          })
+          this.setData({list: [...this.data.list, ...res.data.records || []],
+            total:res.data.total})  
+        }          
+        console.log(this.data)
+    }) 
   },
   onReady() {
 
@@ -30,7 +43,126 @@
   onShow() {
 
   },
-
+  onReachBottom() {
+    console.log('瑙﹀簳浜嬩欢');
+    const { total, list, page } = this.data
+    if(total > list.length){
+      this.setData({ page: page + 1 })
+      this.getList()
+    }else{
+      wx.showToast({
+        title: '鏆傛棤鏇村鏁版嵁',
+        icon: 'none'
+      })
+    }
+  },
+  downfile(e){
+    const item =  e.currentTarget.dataset.index;
+    const files = []
+    if(item.fileType ==1 && item.fileList && item.fileList.length && item.fileList[0].fileurlFull  ){
+      files.push(item.fileList[0].fileurlFull)
+    }
+    if(item.fileType !=1 && item.fileList && item.fileList.length  ){
+      item.fileList.forEach(ee => { 
+         if(ee.fileurlFull){ 
+           files.push(ee.fileurlFull)
+         }
+      }) 
+    }
+    if(item.fileType ==1){
+      this.downloadVideoFileDo(files,item.title)
+    }else{
+      this.downloadImageFileDo(files,item.title)
+    } 
+  },
+  downloadImageFileDo(files,title){
+    wx.showLoading({
+      title: '姝e湪涓嬭浇',
+    })
+   let temp = 0;
+    if(files.length){
+      for(let i = 0;i<files.length;i++){        
+        let filePath = wx.env.USER_DATA_PATH + '/' + new Date().valueOf()+i + '.jpg'  ;
+        wx.downloadFile({
+          url: files[i],
+          filePath: filePath,
+          timeout:180000,
+          success: function (res) { 
+            var tempFp = res.filePath
+            wx.saveImageToPhotosAlbum({
+              filePath: tempFp,
+              success(result) {
+                temp ++;
+                console.log(result) 
+                if(temp == files.length){
+                    wx.hideLoading();
+                    wx.setClipboardData({
+                      data:  title,
+                      success: function (res) {
+                        wx.getClipboardData({
+                          success: function (res) {
+                            wx.showToast({
+                              title: '鏂囨宸插鍒舵垚鍔燂紝鍘诲垎浜惂'
+                            })
+                          }
+                        })
+                      }
+                  })
+                } 
+              }, fail(err) { 
+                wx.showToast({
+                  title: '鍥剧墖涓嬭浇澶辫触鍝�'
+                })
+              }
+            })
+          } , fail(err) { 
+            wx.showToast({
+              title: '鍥剧墖涓嬭浇澶辫触鍝�'
+            })
+          }
+        })
+      } 
+    } 
+  },
+  downloadVideoFileDo(files,title){
+    wx.showLoading({
+      title: '姝e湪涓嬭浇',
+    }) 
+    if(files.length){  
+      let filePath = wx.env.USER_DATA_PATH + '/' + new Date().valueOf() + '0.mp4';
+      wx.downloadFile({
+        url: files[0],
+        filePath: filePath,
+        timeout:180000,
+        success: function (res) { 
+          var tempFp = res.filePath
+          wx.saveVideoToPhotosAlbum({
+            filePath: tempFp,
+            success(result) { 
+              console.log(result)  
+                  wx.hideLoading();
+                  wx.setClipboardData({
+                    data:  title,
+                    success: function (res) {
+                      wx.getClipboardData({
+                        success: function (res) {
+                          wx.showToast({
+                            title: '鏂囨宸插鍒舵垚鍔燂紝鍘诲垎浜惂'
+                          })
+                        }
+                      })
+                    }
+                }) 
+            }, fail(err) { 
+              wx.showToast({
+                title: '瑙嗛涓嬭浇澶辫触鍝�'
+              })
+            }
+          })
+        } 
+      }) 
+    } 
+  },
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
    */
@@ -51,14 +183,7 @@
   onPullDownRefresh() {
 
   },
-
-  /**
-   * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
-   */
-  onReachBottom() {
-
-  },
-
+ 
   /**
    * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
    */
diff --git a/wechat_staff/pages/promotion/index.wxml b/wechat_staff/pages/promotion/index.wxml
index 49f0495..993cebc 100644
--- a/wechat_staff/pages/promotion/index.wxml
+++ b/wechat_staff/pages/promotion/index.wxml
@@ -1,28 +1,23 @@
 <view class="container">
   <view class="home_title">鎺ㄥ箍鍙戝竷</view>
-  <view class="content">
-    <view class="time">2022/22/22</view>
-    <view class="text">鎳傜敓娲伙紝浼氳璁★紝鎰忓紡绠�绾﹀崟浜烘矙鍙戞锛屼负鎮ㄥ垱閫犲绉嶅彲鑳界殑鐢熸椿鏂瑰紡</view>
-    <view class="imgs">
-      <view class="img_wrap">
-        <image class="img" mode="widthFix" src=""></image>
-        <!-- <image class="icon" src="../../static/ic_top1@2x.png" mode="widthFix"></image> -->
+  <view>
+    <view class="content"  data-id="{{ item.id }}"  wx:for="{{ list }}"   wx:for-item="item" >
+      <view class="time" >{{ item.createDate }}</view>
+      <view class="text">{{item.title }}</view>
+      <view class="imgs">  
+          <video controls wx:if="{{item.fileType ==1 && item.fileList &&item.fileList.length}}"  src="{{item.fileList[0].fileurlFull}}" class="video"></video>  
+        <view wx:if="{{item.fileType !=1 && item.fileList}}"  data-id="{{ item.id }}"  wx:for-item="item1"   wx:for="{{ item.fileList }}" class="img_wrap">
+          <image class="img" mode="widthFix" src="{{item1.fileurlFull}}"></image> 
+        </view> 
       </view>
-      <view class="img_wrap">
-        <image class="img" mode="widthFix" src=""></image>
-        <!-- <image class="icon" src="../../static/ic_top2@2x.png" mode="widthFix"></image> -->
+      <view class="footer">
+        <view class="left">
+          <image class="icon" src="../../static/icon/detail_nav_share.png" mode="widthFix"></image>
+          <text>{{item.donwloadNum}}</text>
+        </view>
+        <view class="btn" bind:tap="downfile" data-index="{{item}}">绔嬪嵆鍒嗕韩</view>
       </view>
-      <view class="img_wrap">
-        <image class="img" mode="widthFix" src=""></image>
-        <!-- <image class="icon" src="../../static/ic_top3@2x.png" mode="widthFix"></image> -->
-      </view>
-    </view>
-    <view class="footer">
-      <view class="left">
-        <image class="icon" src="../../static/icon/detail_nav_share.png" mode="widthFix"></image>
-        <text>123123</text>
-      </view>
-      <view class="btn">绔嬪嵆鍒嗕韩</view>
     </view>
   </view>
+  
 </view>
\ No newline at end of file
diff --git a/wechat_staff/pages/promotion/index.wxss b/wechat_staff/pages/promotion/index.wxss
index c696933..06c5da7 100644
--- a/wechat_staff/pages/promotion/index.wxss
+++ b/wechat_staff/pages/promotion/index.wxss
@@ -13,6 +13,7 @@
   background: #F7F7F7;
   border-radius: 8rpx;
   padding: 34rpx 40rpx 40rpx;
+  margin-bottom: 40rpx;
 }
 .content .time {
   font-weight: 500;
@@ -30,6 +31,8 @@
 }
 .content .imgs {
   display: flex;
+  width: 100%;
+  flex-wrap: wrap;
 }
 .content .imgs .img_wrap {
   width: 184rpx;
@@ -38,13 +41,18 @@
   border: 1px solid;
   position: relative;
   margin-right: 20rpx;
+  margin-bottom: 20rpx;
 }
 .content .imgs .img_wrap:nth-of-type(3n) {
   margin-right: 0;
 }
 .content .imgs .img_wrap .img {
   width: 100%;
-  height: 100%;
+  max-height: 100%;  
+}
+.content .imgs   .video {
+  width: 100%;
+  max-height: 100%;  
 }
 .content .imgs .img_wrap .icon {
   position: absolute;
diff --git a/wechat_staff/pages/store/staff.js b/wechat_staff/pages/store/staff.js
index 83549a1..30c5c7f 100644
--- a/wechat_staff/pages/store/staff.js
+++ b/wechat_staff/pages/store/staff.js
@@ -59,12 +59,7 @@
             })
           }
         })
-        // wx.saveFile({
-        //   tempFilePath: res.tempFilePath,
-        //   success: function (res) {
-        //     console.log(res.savedFilePath)
-        //   }
-        // })
+      
       }
     })
   },
diff --git a/wechat_staff/utils/request.js b/wechat_staff/utils/request.js
index 61723df..2eda17e 100644
--- a/wechat_staff/utils/request.js
+++ b/wechat_staff/utils/request.js
@@ -1,5 +1,4 @@
-import { baseUrl } from "./config"
-
+import { baseUrl } from "./config" 
 export function request(options){
   let loading = options.loading || '1' // 榛樿鍊�1鏄剧ず锛屽惁鍒欎笉鏄剧ず
   if(loading == '1'){

--
Gitblit v1.9.3