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">