From 2b6cc960169a7a30511e020bd396e4cdf1500393 Mon Sep 17 00:00:00 2001
From: huangdeliang <huangdeliang@skieer.com>
Date: Sat, 8 May 2021 10:56:09 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BE=AE=E4=BF=A1?=
 =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=AF=BC=E5=87=BA=E9=A1=BA=E5=BA=8F=E5=9B=BA?=
 =?UTF-8?q?=E5=AE=9A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../com/stdiet/custom/domain/SysOrder.java    |   2 +
 .../impl/SysRecipesPlanServiceImpl.java       | 114 +++++++++---------
 .../mapper/custom/SysOrderMapper.xml          |   6 +-
 .../custom/SysWxFanStatisticsMapper.xml       |   2 +-
 4 files changed, 67 insertions(+), 57 deletions(-)

diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysOrder.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysOrder.java
index 82cd80faf..d240fa4be 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysOrder.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysOrder.java
@@ -280,6 +280,8 @@ public class SysOrder extends BaseEntity {
     //订单查询时的订单类型二维数组
     private JSONArray searchOrderTypeArray;
 
+    private Integer counted;
+
 
 
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesPlanServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesPlanServiceImpl.java
index a4999a2d5..23cf963b9 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesPlanServiceImpl.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesPlanServiceImpl.java
@@ -120,9 +120,9 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
      */
     @Async
     public void regenerateRecipesPlan(Long cusId) {
-        try{
+        try {
             Thread.sleep(5000);
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
         }
         if (cusId == null || cusId <= 0) {
@@ -132,17 +132,17 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
             //获取redis中该订单对应的锁
             if (synchrolockUtil.lock(String.format(generateRecipesPlanLockKey, cusId))) {
                 List<SysOrder> customerOrderList = sysOrderService.getAllOrderByCusId(cusId);
-                if(customerOrderList != null && customerOrderList.size() > 0){
+                if (customerOrderList != null && customerOrderList.size() > 0) {
 
-                    for(SysOrder sysOrder : customerOrderList){
+                    for (SysOrder sysOrder : customerOrderList) {
                         //订单为空、金额小于0、订单未审核不进行食谱生成、更新,只对2021年开始的订单进行食谱计划生成,判断订单金额、开始时间、结束时间,为空则直接返回,不重新生成食谱计划
                         if (sysOrder == null || !sysOrder.getReviewStatus().equals("yes") || sysOrder.getAmount().floatValue() <= 0 || sysOrder.getStartTime() == null || sysOrder.getServerEndTime() == null) {
                             continue;
                         }
                         //判断是否提成单,拆分单中的副单,体验单,定金单
-                        if(sysOrder.getAfterSaleCommissOrder().intValue() == 1 || ("1".equals(sysOrder.getOrderType()) && sysOrder.getMainOrderId().intValue() != 0) ||
-                                "2".equals(sysOrder.getOrderType()) || "1".equals(sysOrder.getOrderMoneyType())){
-                            System.out.println("---------------------"+sysOrder.getOrderId()+"不生成食谱------------------------");
+                        if (sysOrder.getAfterSaleCommissOrder().intValue() == 1 || ("1".equals(sysOrder.getOrderType()) && sysOrder.getMainOrderId().intValue() != 0) ||
+                                "2".equals(sysOrder.getOrderType()) || "1".equals(sysOrder.getOrderMoneyType()) || sysOrder.getCounted() == 1) {
+                            System.out.println("---------------------" + sysOrder.getOrderId() + "不生成食谱------------------------");
                             continue;
                         }
                         //判断是否已存在食谱计划
@@ -157,9 +157,9 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
                         List<SysOrderPause> pauseList = sysOrderPauseService.getPauseListByCusIdAndOrderId(pauseParam);
 
                         List<SysRecipesPlan> planList = generatePlan(sysOrder, DateUtils.dateToLocalDate(sysOrder.getStartTime()), DateUtils.dateToLocalDate(sysOrder.getServerEndTime()), pauseList);
-                        if(oldRecipesPlanList != null && oldRecipesPlanList.size() > 0){
+                        if (oldRecipesPlanList != null && oldRecipesPlanList.size() > 0) {
                             updateOrAddRecipesPlan(oldRecipesPlanList, planList);
-                        }else{
+                        } else {
                             if (planList != null && planList.size() > 0) {
                                 sysRecipesPlanMapper.insertBatch(planList);
                             }
@@ -177,43 +177,44 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
 
     /**
      * 更新食谱计划,删除旧食谱中多余的,添加新食谱中多的
+     *
      * @param oldRecipesPlanList
      * @param newRecipesPlanList
      */
-    private void updateOrAddRecipesPlan(List<SysRecipesPlan> oldRecipesPlanList, List<SysRecipesPlan> newRecipesPlanList){
+    private void updateOrAddRecipesPlan(List<SysRecipesPlan> oldRecipesPlanList, List<SysRecipesPlan> newRecipesPlanList) {
         int newSize = newRecipesPlanList.size();
         int index = 0;
         List<SysRecipesPlan> addList = new ArrayList<>();
         List<SysRecipesPlan> updateList = new ArrayList<>();
         List<Long> delList = new ArrayList<>();
         for (SysRecipesPlan plan : oldRecipesPlanList) {
-            if(index < newSize){
+            if (index < newSize) {
                 plan.setStartDate(newRecipesPlanList.get(index).getStartDate());
                 plan.setEndDate(newRecipesPlanList.get(index).getEndDate());
                 plan.setPauseDate(newRecipesPlanList.get(index).getPauseDate());
                 plan.setStartNumDay(newRecipesPlanList.get(index).getStartNumDay());
                 plan.setEndNumDay(newRecipesPlanList.get(index).getEndNumDay());
                 updateList.add(plan);
-            }else{
+            } else {
                 delList.add(plan.getId());
             }
             index++;
         }
-        if(newSize > oldRecipesPlanList.size()){
-            addList = newRecipesPlanList.subList(oldRecipesPlanList.size(),newSize);
+        if (newSize > oldRecipesPlanList.size()) {
+            addList = newRecipesPlanList.subList(oldRecipesPlanList.size(), newSize);
         }
         //更新
-        if(updateList.size() > 0){
+        if (updateList.size() > 0) {
             for (SysRecipesPlan plan : updateList) {
                 sysRecipesPlanMapper.updateSysRecipesPlan(plan);
             }
         }
         //删除多余的食谱计划
-        if(delList.size() > 0){
+        if (delList.size() > 0) {
             sysRecipesPlanMapper.deleteSysRecipesPlanByIds(delList.toArray(new Long[delList.size()]));
         }
         //添加新的
-        if(addList.size() > 0){
+        if (addList.size() > 0) {
             sysRecipesPlanMapper.insertBatch(addList);
         }
     }
@@ -221,10 +222,10 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
     /**
      * 根据订单ID、订单开始服务时间、结束时间、暂停列表生成食谱计划列表
      *
-     * @param sysOrder           订单对象
-     * @param serverStartDate    服务开始时间
-     * @param serverEndDate      服务结束时间
-     * @param pauseList          暂停列表
+     * @param sysOrder        订单对象
+     * @param serverStartDate 服务开始时间
+     * @param serverEndDate   服务结束时间
+     * @param pauseList       暂停列表
      * @return
      */
     private List<SysRecipesPlan> generatePlan(SysOrder sysOrder, LocalDate serverStartDate, LocalDate serverEndDate, List<SysOrderPause> pauseList) {
@@ -232,10 +233,10 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
         SysRecipesPlan beforeOrderLastPlan = getLastDayRecipesPlan(sysOrder.getCusId(), sysOrder.getOrderTime());
         int startNumDay = 0;
         //之前是否存在食谱
-        if(beforeOrderLastPlan != null){
+        if (beforeOrderLastPlan != null) {
             long differDay = ChronoUnit.DAYS.between(DateUtils.dateToLocalDate(beforeOrderLastPlan.getEndDate()), serverStartDate);
             //检查之前食谱的结束时间和目前该订单的开始时间是否连续
-            if(differDay <= 1){
+            if (differDay <= 1) {
                 /*if(differDay <= 0){
                     serverStartDate = DateUtils.dateToLocalDate(beforeOrderLastPlan.getEndDate()).plusDays(1);
                     //更新该订单的开始时间
@@ -244,10 +245,10 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
                 //判断前一个订单食谱是否满七天,不满则需要接上
                 int differNum = beforeOrderLastPlan.getEndNumDay() - beforeOrderLastPlan.getStartNumDay();
 
-                if(differNum < 6){
+                if (differNum < 6) {
                     //更新该食谱计划
-                    beforeOrderLastPlan.setEndNumDay(beforeOrderLastPlan.getStartNumDay()+6);
-                    beforeOrderLastPlan.setEndDate(DateUtils.localDateToDate(DateUtils.dateToLocalDate(beforeOrderLastPlan.getEndDate()).plusDays(6-differNum)));
+                    beforeOrderLastPlan.setEndNumDay(beforeOrderLastPlan.getStartNumDay() + 6);
+                    beforeOrderLastPlan.setEndDate(DateUtils.localDateToDate(DateUtils.dateToLocalDate(beforeOrderLastPlan.getEndDate()).plusDays(6 - differNum)));
                     sysRecipesPlanMapper.updateSysRecipesPlan(beforeOrderLastPlan);
                     serverStartDate = DateUtils.dateToLocalDate(beforeOrderLastPlan.getEndDate()).plusDays(1);
                 }
@@ -268,8 +269,8 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
             }
             String[] pauseResult = dealPlanPause(planStartDate, planEndDate, pauseList);
             //根据暂停结果返回的数据更新计划开始、结束时间
-            planStartDate = DateUtils.stringToLocalDate(pauseResult[0],"yyyyMMdd");
-            planEndDate = DateUtils.stringToLocalDate(pauseResult[1],"yyyyMMdd");
+            planStartDate = DateUtils.stringToLocalDate(pauseResult[0], "yyyyMMdd");
+            planEndDate = DateUtils.stringToLocalDate(pauseResult[1], "yyyyMMdd");
             //判断是否大于服务到期时间
             if (ChronoUnit.DAYS.between(planEndDate, serverEndDate) <= 0) {
                 planEndDate = serverEndDate;
@@ -279,7 +280,7 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
                 planStartDate = serverEndDate;
                 breakFlag = false;
             }
-            if(planEndDate == planStartDate && StringUtils.isNotEmpty(pauseResult)) {
+            if (planEndDate == planStartDate && StringUtils.isNotEmpty(pauseResult)) {
                 continue;
             }
             //暂停日期
@@ -292,32 +293,33 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
             startNumDay += 1;
             sysRecipesPlan.setStartNumDay(startNumDay);
             long dayNumber = ChronoUnit.DAYS.between(planStartDate, planEndDate);
-            startNumDay +=  dayNumber > 6 ? 6 : dayNumber;
+            startNumDay += dayNumber > 6 ? 6 : dayNumber;
             sysRecipesPlan.setEndNumDay(startNumDay);
             //添加暂停范围内的日期
             planList.add(sysRecipesPlan);
             //System.out.println(DateUtils.dateTime(sysRecipesPlan.getStartDate()) + "-----" + DateUtils.dateTime(sysRecipesPlan.getEndDate()));
-        }while (breakFlag);
+        } while (breakFlag);
         return planList;
     }
 
     /**
      * 根据食谱开始时间、结束时间、暂停列表获取在食谱计划范围内的暂停天数,以及返回调整之后的计划开始、结束时间,以及暂停日期
+     *
      * @param planStartDate 原先的计划开始时间
-     * @param planEndDate 原先计划结束时间
-     * @param pauseList 暂停列表集合
+     * @param planEndDate   原先计划结束时间
+     * @param pauseList     暂停列表集合
      * @return
      */
     private String[] dealPlanPause(LocalDate planStartDate, LocalDate planEndDate, List<SysOrderPause> pauseList) {
         //分别为计划开始时间、计划结束时间,范围内暂停天数,具体暂停日期,使用|隔开
-        String[] result = {"","","0",""};
+        String[] result = {"", "", "0", ""};
         long pauseDay = 0;
         Set<String> pauseDateString = new TreeSet<>(new MyComparator());
         //判断这个时间内是否存在暂停
         if (pauseList != null && pauseList.size() > 0) {
             //每条暂停时间的范围不会重叠,在添加暂停时做了限制
             for (SysOrderPause sysOrderPause : pauseList) {
-                while(true){
+                while (true) {
                     LocalDate pauseStartDate = DateUtils.dateToLocalDate(sysOrderPause.getPauseStartDate());
                     LocalDate pauseEndDate = DateUtils.dateToLocalDate(sysOrderPause.getPauseEndDate());
                     if (ChronoUnit.DAYS.between(pauseEndDate, planStartDate) > 0 || ChronoUnit.DAYS.between(planEndDate, pauseStartDate) > 0) {
@@ -330,10 +332,10 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
                         pauseEndDate = planEndDate;
                     }
                     //判断暂停记录是否从食谱计划开始时间开始的
-                    if(ChronoUnit.DAYS.between(pauseStartDate, planStartDate) == 0){
+                    if (ChronoUnit.DAYS.between(pauseStartDate, planStartDate) == 0) {
                         planStartDate = pauseEndDate.plusDays(1);
                         planEndDate = planStartDate.plusDays(6);
-                    }else{
+                    } else {
                         planEndDate = planEndDate.plusDays(ChronoUnit.DAYS.between(pauseStartDate, pauseEndDate) + 1);
                         pauseDateString.addAll(getPauseDateString(pauseStartDate, pauseEndDate));
                         break;
@@ -345,37 +347,27 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
                 System.out.println("---------------------------------------");*/
             }
         }
-        result[0] = DateUtils.localDateToString(planStartDate,"yyyyMMdd");
-        result[1] = DateUtils.localDateToString(planEndDate,"yyyyMMdd");
+        result[0] = DateUtils.localDateToString(planStartDate, "yyyyMMdd");
+        result[1] = DateUtils.localDateToString(planEndDate, "yyyyMMdd");
         result[2] = pauseDay + "";
-        result[3] = pauseDateString.size() > 0 ? StringUtils.join(pauseDateString,"|") : "";
+        result[3] = pauseDateString.size() > 0 ? StringUtils.join(pauseDateString, "|") : "";
         return result;
     }
 
     /**
      * 根据暂停时间范围获取范围内的日期
+     *
      * @return
      */
-    private Set<String> getPauseDateString(LocalDate pauseStartDate, LocalDate pauseEndDate){
+    private Set<String> getPauseDateString(LocalDate pauseStartDate, LocalDate pauseEndDate) {
         Set<String> pauseDateList = new HashSet<>();
         long daysBetween = ChronoUnit.DAYS.between(pauseStartDate, pauseEndDate);
-        for(int i = 0; i <= daysBetween; i++){
-            pauseDateList.add(DateUtils.localDateToString(pauseStartDate.plusDays(i),"yyyyMMdd"));
+        for (int i = 0; i <= daysBetween; i++) {
+            pauseDateList.add(DateUtils.localDateToString(pauseStartDate.plusDays(i), "yyyyMMdd"));
         }
         return pauseDateList;
     }
 
-    /**
-     * 集合排序key值比较器
-     * */
-    class MyComparator implements Comparator<String>{
-
-        @Override
-        public int compare(String o1, String o2) {
-            return Integer.parseInt(o1) - Integer.parseInt(o2);
-        }
-    }
-
     /**
      * 根据订单ID删除所有食谱安排计划
      *
@@ -411,10 +403,11 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
 
     /**
      * 根据客户ID查询最后一天食谱计划
+     *
      * @param customerId 客户ID
      * @return
      */
-    public SysRecipesPlan getLastDayRecipesPlan(Long customerId, Date orderTime){
+    public SysRecipesPlan getLastDayRecipesPlan(Long customerId, Date orderTime) {
         return sysRecipesPlanMapper.getLastDayRecipesPlan(customerId, orderTime);
     }
 
@@ -437,4 +430,15 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
         return sysRecipesPlanMapper.selectRecipesModelList(sysRecipesPlan);
     }
 
+    /**
+     * 集合排序key值比较器
+     */
+    class MyComparator implements Comparator<String> {
+
+        @Override
+        public int compare(String o1, String o2) {
+            return Integer.parseInt(o1) - Integer.parseInt(o2);
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml
index 3ecbb19ed..f69e0c382 100644
--- a/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml
+++ b/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml
@@ -49,6 +49,7 @@
         <result property="afterSaleCommissOrder" column="after_sale_commiss_order"/>
         <result property="commissStartTime" column="commiss_start_time"/>
         <result property="delFlag" column="del_flag"/>
+        <result property="counted" column="counted"/>
 
         <!-- 非持久化字段 -->
         <result property="afterSale" column="afterSale_name"></result><!-- 售后名称  -->
@@ -61,7 +62,7 @@
         o.serve_time_id, o.pay_type_id, pay.dict_label as pay_type, o.pre_sale_id, o.create_by, o.create_time, o.after_sale_id, o.update_by, o.update_time,
         o.nutritionist_id, o.remark, o.nutri_assis_id, o.account_id, acc.dict_label as account, o.planner_id, o.planner_assis_id, o.operator_id, o.operator_assis_id,
         o.recommender, o.order_time,o.give_serve_day,o.conditioning_project_id,cp.dict_label as conditioning_project,o.server_end_time,
-        o.on_sale_id,o.order_type,o.order_count_type,o.order_money_type,o.main_order_id,o.after_sale_commiss_order,o.commiss_start_time
+        o.on_sale_id,o.order_type,o.order_count_type,o.order_money_type,o.main_order_id,o.after_sale_commiss_order,o.commiss_start_time, o.counted
         from sys_order o
         LEFT JOIN sys_customer sc ON sc.id = o.cus_id
         LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cus_pay_type') AS pay ON pay.dict_value = o.pay_type_id
@@ -243,6 +244,7 @@
             <if test="afterSaleCommissOrder != null">after_sale_commiss_order,</if>
             <if test="commissStartTime != null">commiss_start_time,</if>
             <if test="delFlag != null">del_flag,</if>
+            <if test="counted != null">counted,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="orderId != null">#{orderId},</if>
@@ -285,6 +287,7 @@
             <if test="afterSaleCommissOrder != null">#{afterSaleCommissOrder},</if>
             <if test="commissStartTime != null">#{commissStartTime},</if>
             <if test="delFlag != null">#{delFlag},</if>
+            <if test="counted != null">#{counted},</if>
         </trim>
     </insert>
 
@@ -330,6 +333,7 @@
             <if test="afterSaleCommissOrder != null">after_sale_commiss_order = #{afterSaleCommissOrder},</if>
             <if test="commissStartTime != null">commiss_start_time = #{commissStartTime},</if>
             <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="counted != null">counted = #{counted},</if>
         </trim>
         where order_id = #{orderId}
     </update>
diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysWxFanStatisticsMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysWxFanStatisticsMapper.xml
index 0fc01ba26..519e44375 100644
--- a/stdiet-custom/src/main/resources/mapper/custom/SysWxFanStatisticsMapper.xml
+++ b/stdiet-custom/src/main/resources/mapper/custom/SysWxFanStatisticsMapper.xml
@@ -70,7 +70,7 @@
         LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'fan_channel') AS cn ON cn.dict_value = wd.account_id
         LEFT JOIN sys_user AS su ON su.user_id = wd.user_id
         WHERE wd.del_flag = 0
-        ORDER BY wd.sale_group_id, wd.user_id ASC
+        ORDER BY wd.sale_group_id, wd.user_id, wd.wechat_account ASC
     </select>
 
     <!-- 查询总进粉数量 -->

From d736726b24a872d0b59bf61c0ff3ee1737d55e7d Mon Sep 17 00:00:00 2001
From: huangdeliang <huangdeliang@skieer.com>
Date: Mon, 10 May 2021 14:50:00 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=AA=E4=BA=BA?=
 =?UTF-8?q?=E4=BF=A1=E6=81=AF=E9=A1=BA=E5=BA=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../custom/WechatAppletController.java        | 59 ++++++++++++++++---
 .../stdiet/custom/domain/SysOrderPause.java   |  3 +
 .../stdiet/custom/domain/SysRecipesPlan.java  |  6 +-
 .../src/components/HealthyView/index.vue      | 23 ++++----
 stdiet-ui/src/views/custom/customer/index.vue |  4 +-
 5 files changed, 74 insertions(+), 21 deletions(-)

diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/WechatAppletController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/WechatAppletController.java
index 99d2fdfb9..96bf037ec 100644
--- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/WechatAppletController.java
+++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/WechatAppletController.java
@@ -4,6 +4,7 @@ import com.aliyun.vod20170321.models.GetPlayInfoResponseBody;
 import com.aliyun.vod20170321.models.GetVideoInfoResponseBody;
 import com.stdiet.common.core.controller.BaseController;
 import com.stdiet.common.core.domain.AjaxResult;
+import com.stdiet.common.core.domain.entity.SysDictData;
 import com.stdiet.common.core.page.TableDataInfo;
 import com.stdiet.common.exception.file.FileNameLengthLimitExceededException;
 import com.stdiet.common.utils.AliyunVideoUtils;
@@ -19,6 +20,7 @@ import com.stdiet.custom.dto.response.MessageNoticeResponse;
 import com.stdiet.custom.dto.response.NutritionalVideoResponse;
 import com.stdiet.custom.page.WxLogInfo;
 import com.stdiet.custom.service.*;
+import com.stdiet.system.service.ISysDictTypeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -50,15 +52,18 @@ public class WechatAppletController extends BaseController {
     private ISysAskNutritionQuestionService sysAskNutritionQuestionService;
     @Autowired
     private ISysCustomerService iSysCustomerService;
-
     @Autowired
     private ISysMessageNoticeService sysMessageNoticeService;
-
     @Autowired
     private ISysCustomerService sysCustomerService;
-
     @Autowired
     private ISysNutritionalVideoService sysNutritionalVideoService;
+    @Autowired
+    private ISysRecipesPlanService sysRecipesPlanService;
+    @Autowired
+    private ISysOrderPauseService sysOrderPauseService;
+    @Autowired
+    private ISysDictTypeService iSysDictTypeService;
 
     /**
      * 查询微信小程序中展示的客户案例
@@ -415,17 +420,23 @@ public class WechatAppletController extends BaseController {
                 return AjaxResult.error(5003, "未查到用户信息,请联系销售顾问");
             }
 
+            sysWxUserInfo.setCusId(sysCustomer.getId());
             if (StringUtils.isNull(curWxUserInfo)) {
                 // 新增sys_wx_user_info
-                sysWxUserInfo.setCusId(sysCustomer.getId());
                 sysWxUserInfo.setCreateTime(DateUtils.getNowDate());
                 sysWxUserInfoService.insertSysWxUserInfo(sysWxUserInfo);
             } else {
                 // 更新sys_wx_user_info数据,
-                curWxUserInfo.setCusId(sysCustomer.getId());
-                curWxUserInfo.setUpdateTime(DateUtils.getNowDate());
-                sysWxUserInfoService.updateSysWxUserInfo(curWxUserInfo);
+                sysWxUserInfo.setUpdateTime(DateUtils.getNowDate());
+                sysWxUserInfoService.updateSysWxUserInfo(sysWxUserInfo);
             }
+            // 更新对象
+            curWxUserInfo = sysWxUserInfo;
+        }
+
+        // 更新时间超过7天,重新登录获取最新信息
+        if (StringUtils.isEmpty(curWxUserInfo.getAvatarUrl()) || ChronoUnit.DAYS.between(DateUtils.dateToLocalDate(curWxUserInfo.getUpdateTime()), LocalDate.now()) >= 7) {
+            return AjaxResult.error(5001, "信息缺失或者过期需要重新登录");
         }
 
         curWxUserInfo.setCustomerId(AesUtils.encrypt(curWxUserInfo.getCusId().toString()));
@@ -433,4 +444,38 @@ public class WechatAppletController extends BaseController {
         // 并返回一系列登录后的数据
         return AjaxResult.success(curWxUserInfo);
     }
+
+    @GetMapping("/getRecipesPlans")
+    public AjaxResult getRecipesPlans(@RequestParam String customerId) {
+        Long cusId = StringUtils.isNotEmpty(customerId) ? Long.parseLong(AesUtils.decrypt(customerId)) : 0L;
+
+        List<SysRecipesPlan> plans = sysRecipesPlanService.selectPlanListByCusId(cusId);
+
+        SysOrderPause orderPause = new SysOrderPause();
+        orderPause.setCusId(cusId);
+        List<SysOrderPause> pauses = sysOrderPauseService.selectSysOrderPauseList(orderPause);
+
+        Map<String, Object> result = new HashMap<>();
+        result.put("plans", plans);
+        result.put("pauses", pauses);
+
+        return AjaxResult.success(result);
+    }
+
+    @GetMapping("/getDicts")
+    public AjaxResult getDicts() {
+
+        List<SysDictData> unitDict = iSysDictTypeService.selectDictDataByType("cus_cus_unit");
+        List<SysDictData> weightDict = iSysDictTypeService.selectDictDataByType("cus_cus_weight");
+        List<SysDictData> menuTypeDict = iSysDictTypeService.selectDictDataByType("cus_dishes_type");
+
+        Map<String, Object> result = new HashMap<>();
+        result.put("unitDict", unitDict);
+        result.put("weightDict", weightDict);
+        result.put("menuTypeDict", menuTypeDict);
+
+        return AjaxResult.success(result);
+    }
 }
+
+
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysOrderPause.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysOrderPause.java
index 085ad81dd..b871990c7 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysOrderPause.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysOrderPause.java
@@ -1,6 +1,7 @@
 package com.stdiet.custom.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.stdiet.common.annotation.Excel;
 import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -25,8 +26,10 @@ public class SysOrderPause {
     /**
      * 订单id
      */
+    @JsonIgnore
     private Long orderId;
 
+    @JsonIgnore
     private Long cusId;
 
     private String outId;
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipesPlan.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipesPlan.java
index 8e5c4bfc5..48da9b9b8 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipesPlan.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipesPlan.java
@@ -1,6 +1,7 @@
 package com.stdiet.custom.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.stdiet.common.annotation.Excel;
 import lombok.Data;
 
@@ -24,6 +25,7 @@ public class SysRecipesPlan {
      * 订单ID
      */
     //@Excel(name = "订单ID")
+    @JsonIgnore
     private Long orderId;
 
     private Long cusId;
@@ -116,7 +118,9 @@ public class SysRecipesPlan {
      */
     private Integer reviewStatus;
 
-    /** 该食谱计划中暂停日期,使用 | 隔开 */
+    /**
+     * 该食谱计划中暂停日期,使用 | 隔开
+     */
     //@Excel(name = "该食谱计划中暂停日期,使用 | 隔开")
     private String pauseDate;
 
diff --git a/stdiet-ui/src/components/HealthyView/index.vue b/stdiet-ui/src/components/HealthyView/index.vue
index 85cf0e5ce..c61af37f0 100644
--- a/stdiet-ui/src/components/HealthyView/index.vue
+++ b/stdiet-ui/src/components/HealthyView/index.vue
@@ -107,6 +107,7 @@ export default {
           title: "既往病史/用药史评估",
           content: [
             { title: "病史体征", value: "physicalSigns" },
+            { title: "忌口过敏食物", value: "dishesIngredient" },
             { title: "湿气数据", value: "moistureDate" },
             { title: "气血数据", value: "bloodData" },
             { title: "家族疾病史", value: "familyIllnessHistory" },
@@ -118,7 +119,16 @@ export default {
             { title: "是否出现过过敏症状", value: "allergyFlag" },
             { title: "过敏症状", value: "allergySituation" },
             { title: "过敏源", value: "allergen" },
-            { title: "忌口过敏食物", value: "dishesIngredient" },
+          ],
+        },
+         {
+          title: "运动习惯评估",
+          content: [
+            { title: "每周运动次数", value: "motionNum" },
+            { title: "每次运动的时长", value: "motionDuration" },
+            { title: "每天运动的时间", value: "motionTime" },
+            { title: "运动", value: "motion" },
+            { title: "运动场地", value: "motionField" },
           ],
         },
         {
@@ -193,16 +203,7 @@ export default {
             { title: "排便的颜色", value: "defecationColor" },
           ],
         },
-        {
-          title: "运动习惯评估",
-          content: [
-            { title: "每周运动次数", value: "motionNum" },
-            { title: "每次运动的时长", value: "motionDuration" },
-            { title: "每天运动的时间", value: "motionTime" },
-            { title: "运动", value: "motion" },
-            { title: "运动场地", value: "motionField" },
-          ],
-        },
+
         {
           title: "睡眠质量评估",
           content: [
diff --git a/stdiet-ui/src/views/custom/customer/index.vue b/stdiet-ui/src/views/custom/customer/index.vue
index d63a018b4..90287895b 100644
--- a/stdiet-ui/src/views/custom/customer/index.vue
+++ b/stdiet-ui/src/views/custom/customer/index.vue
@@ -83,7 +83,7 @@
           />
         </el-select>
       </el-form-item>
-      
+
     <el-form-item label="病史体征" prop="physicalSignsId">
           <el-select
             v-model="queryParams.physicalSignsId"
@@ -147,7 +147,7 @@
         label="创建时间"
         align="center"
         prop="createTime"
-        width="100"
+        width="110"
       >
         <template slot-scope="scope">
           <div v-for="time in scope.row.createTime.split(' ')" :key="time">