排班优化加上一键复制功能,营养知识列表、视频列表加上创建时间
This commit is contained in:
		| @@ -26,4 +26,6 @@ public class NutritionQuestionResponse implements Serializable { | ||||
|  | ||||
|     /** 小程序是否显示,0不显示 1显示 */ | ||||
|     private String showFlag; | ||||
|  | ||||
|     private String createTime; | ||||
| } | ||||
|   | ||||
| @@ -77,4 +77,17 @@ public interface SysLiveSchedulMapper | ||||
|      * @return | ||||
|      */ | ||||
|     public SysLiveSchedul getLastLiveSchedulById(SysLiveSchedul sysLiveSchedul); | ||||
|  | ||||
|     /** | ||||
|      * 获取所有计划 | ||||
|      * @param sysLiveSchedul | ||||
|      * @return | ||||
|      */ | ||||
|     public List<SysLiveSchedul> getAllLiveSchedulByDate(SysLiveSchedul sysLiveSchedul); | ||||
|  | ||||
|     /** | ||||
|      * 获取最后一次直播计划 | ||||
|      * @return | ||||
|      */ | ||||
|     public SysLiveSchedul getLastLiveSchedul(); | ||||
| } | ||||
| @@ -1,6 +1,8 @@ | ||||
| package com.stdiet.custom.service; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| import com.stdiet.common.core.domain.AjaxResult; | ||||
| import com.stdiet.custom.domain.SysLiveSchedul; | ||||
|  | ||||
| /** | ||||
| @@ -77,4 +79,10 @@ public interface ISysLiveSchedulService | ||||
|      * @return | ||||
|      */ | ||||
|     public SysLiveSchedul getLastLiveSchedulById(SysLiveSchedul sysLiveSchedul); | ||||
|  | ||||
|     /** | ||||
|      * 复制上一次直播间计划,并将上次的直播计划状态全部改为未开播 | ||||
|      * @return | ||||
|      */ | ||||
|     public AjaxResult copyLastTimeLiveSchedul(); | ||||
| } | ||||
| @@ -1,7 +1,13 @@ | ||||
| package com.stdiet.custom.service.impl; | ||||
|  | ||||
| import java.time.LocalDate; | ||||
| import java.time.LocalDateTime; | ||||
| import java.util.Date; | ||||
| import java.util.List; | ||||
|  | ||||
| import com.stdiet.common.core.domain.AjaxResult; | ||||
| import com.stdiet.common.utils.DateUtils; | ||||
| import com.stdiet.common.utils.SecurityUtils; | ||||
| import lombok.Data; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | ||||
| @@ -123,4 +129,53 @@ public class SysLiveSchedulServiceImpl implements ISysLiveSchedulService | ||||
|     public SysLiveSchedul getLastLiveSchedulById(SysLiveSchedul sysLiveSchedul){ | ||||
|         return sysLiveSchedulMapper.getLastLiveSchedulById(sysLiveSchedul); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 复制上一次直播间计划,并将上次的直播计划状态全部改为未开播 | ||||
|      * @return | ||||
|      */ | ||||
|     @Override | ||||
|     public AjaxResult copyLastTimeLiveSchedul(){ | ||||
|         AjaxResult result = AjaxResult.success(); | ||||
|         //获取上一次直播时间 | ||||
|         SysLiveSchedul lastLiveSchedul = sysLiveSchedulMapper.getLastLiveSchedul(); | ||||
|         if(lastLiveSchedul == null){ | ||||
|             return AjaxResult.error("不存在直播记录,无法复制"); | ||||
|         } | ||||
|         Date nowDate = new Date(); | ||||
|         LocalDate nowLocalDate = DateUtils.dateToLocalDate(nowDate); | ||||
|         if(DateUtils.isSameDay(lastLiveSchedul.getLiveSchedulDate(), nowDate)){ | ||||
|             return AjaxResult.error("今日已存在直播记录,无法复制"); | ||||
|         } | ||||
|         //获取上一次所有计划 | ||||
|         List<SysLiveSchedul> list = sysLiveSchedulMapper.getAllLiveSchedulByDate(lastLiveSchedul); | ||||
|         if(list != null && list.size() > 0){ | ||||
|             int row = 0; | ||||
|             for (SysLiveSchedul schedul : list) { | ||||
|                 schedul.setLiveStatus(0L); | ||||
|                 schedul.setCreateTime(new Date()); | ||||
|                 schedul.setUpdateTime(null); | ||||
|                 schedul.setCreateBy(SecurityUtils.getLoginUser().getUser().getUserId()+""); | ||||
|                 schedul.setUpdateBy(null); | ||||
|                 schedul.setLiveSchedulDate(DateUtils.dateToDate(nowDate)); | ||||
|                 if(schedul.getLiveStartTime() != null) { | ||||
|                     LocalDateTime liveStartTime = DateUtils.dateToLocalDateTime(schedul.getLiveStartTime()); | ||||
|                     schedul.setLiveStartTime(DateUtils.localDateTimeToDate(LocalDateTime.of(nowLocalDate.getYear(),nowLocalDate.getMonthValue(),nowLocalDate.getDayOfMonth(), | ||||
|                             liveStartTime.getHour(),liveStartTime.getMinute()))); | ||||
|                     System.out.println(liveStartTime.getHour() + "-" +liveStartTime.getMinute()); | ||||
|                 } | ||||
|                 if(schedul.getLiveEndTime() != null) { | ||||
|                     LocalDateTime liveEndTime = DateUtils.dateToLocalDateTime(schedul.getLiveEndTime()); | ||||
|                     schedul.setLiveEndTime(DateUtils.localDateTimeToDate(LocalDateTime.of(nowLocalDate.getYear(),nowLocalDate.getMonthValue(),nowLocalDate.getDayOfMonth(), | ||||
|                             liveEndTime.getHour(),liveEndTime.getMinute()))); | ||||
|                     System.out.println(liveEndTime.getHour() + "-" +liveEndTime.getMinute()); | ||||
|                 } | ||||
|  | ||||
|                 row = sysLiveSchedulMapper.insertSysLiveSchedul(schedul); | ||||
|             } | ||||
|         }else{ | ||||
|             return AjaxResult.error("不存在直播记录,无法复制"); | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
| } | ||||
| @@ -40,7 +40,7 @@ public class SysNutritionQuestionServiceImpl implements ISysNutritionQuestionSer | ||||
|     public String index_path; | ||||
|  | ||||
|     //建立索引的字段名称 | ||||
|     public static final String[] index_field_array = {"id", "title", "content", "key", "showFlag"}; | ||||
|     public static final String[] index_field_array = {"id", "title", "content", "key", "showFlag", "createTime"}; | ||||
|     //查询字段 | ||||
|     public static final String[] index_select_field_array = {"title", "content", "key"}; | ||||
|  | ||||
| @@ -275,7 +275,8 @@ public class SysNutritionQuestionServiceImpl implements ISysNutritionQuestionSer | ||||
|     private NutritionQuestionResponse documentToNutritionQuestion(Document document){ | ||||
|         NutritionQuestionResponse nutritionQuestionResponse = new NutritionQuestionResponse(); | ||||
|         for (String fieldName : index_field_array) { | ||||
|             ReflectUtils.setFieldValue(nutritionQuestionResponse, fieldName, document.get(fieldName)); | ||||
|             String value = document.get(fieldName); | ||||
|             ReflectUtils.setFieldValue(nutritionQuestionResponse, fieldName, StringUtils.isEmpty(value) ? "" : value); | ||||
|         } | ||||
|         return nutritionQuestionResponse; | ||||
|     } | ||||
| @@ -288,7 +289,12 @@ public class SysNutritionQuestionServiceImpl implements ISysNutritionQuestionSer | ||||
|     private Document nutritionQuestionToDocument(SysNutritionQuestion sysNutritionQuestion){ | ||||
|         Document document = new Document(); | ||||
|         for (String fieldName : index_field_array) { | ||||
|             TextField field = new TextField(fieldName, ReflectUtils.getFieldValue(sysNutritionQuestion, fieldName)+"", Field.Store.YES); | ||||
|             TextField field = null; | ||||
|             if("createTime".equals(fieldName)){ | ||||
|                 field = new TextField(fieldName, DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,sysNutritionQuestion.getCreateTime()), Field.Store.YES); | ||||
|             } else{ | ||||
|                 field = new TextField(fieldName, ReflectUtils.getFieldValue(sysNutritionQuestion, fieldName)+"", Field.Store.YES); | ||||
|             } | ||||
|             if(nutritionQuestionBoostMap.containsKey(fieldName)){ | ||||
|                 field.setBoost(nutritionQuestionBoostMap.get(fieldName).floatValue()); | ||||
|             } | ||||
|   | ||||
| @@ -208,6 +208,19 @@ public class SysOrderServiceImpl implements ISysOrderService { | ||||
|             sysOrder.setOperatorId(null); | ||||
|             sysOrder.setOperatorAssisId(null); | ||||
|         } | ||||
|         if(oldSysOrder.getStartTime() == null){//确保提成计算时间不为空 | ||||
|             sysOrder.setCommissStartTime(sysOrder.getOrderTime()); | ||||
|         } | ||||
|         //如果更新了开始服务时间,需要判断是否需要同步提成计算时间 | ||||
|         if (oldSysOrder.getStartTime() != null && sysOrder.getStartTime() != null | ||||
|                 && ChronoUnit.DAYS.between(DateUtils.dateToLocalDate(oldSysOrder.getStartTime()), DateUtils.dateToLocalDate(sysOrder.getStartTime())) != 0) { | ||||
|             //本月第一天 | ||||
|             LocalDate monthStart = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()); | ||||
|             //旧的开始时间和新的开始时间都要需要大于本月第一天 | ||||
|             if(oldSysOrder.getCommissStartTime() != null && ChronoUnit.DAYS.between(monthStart, DateUtils.dateToLocalDate(oldSysOrder.getCommissStartTime())) >= 0 && ChronoUnit.DAYS.between(monthStart, DateUtils.dateToLocalDate(sysOrder.getStartTime())) >= 0){ | ||||
|                 sysOrder.setCommissStartTime(sysOrder.getStartTime()); | ||||
|             } | ||||
|         } | ||||
|         //更新订单 | ||||
|         int row = sysOrderMapper.updateSysOrder(sysOrder); | ||||
|         // 审核后的订单才生成食谱 | ||||
| @@ -300,7 +313,7 @@ public class SysOrderServiceImpl implements ISysOrderService { | ||||
|             for (SysOrder sysOrder : orderList) { | ||||
|                 LocalDate newStartTime = null; | ||||
|                 //判断是否提成单,拆分单中的副单,体验单,定金单 | ||||
|                 if(sysOrder.getAfterSaleCommissOrder().intValue() == 1 || ("1".equals(sysOrder.getOrderType()) && sysOrder.getMainOrderId().intValue() != 0) || | ||||
|                 if(sysOrder.getStartTime() == null || sysOrder.getAfterSaleCommissOrder().intValue() == 1 || ("1".equals(sysOrder.getOrderType()) && sysOrder.getMainOrderId().intValue() != 0) || | ||||
|                         "2".equals(sysOrder.getOrderType()) || "1".equals(sysOrder.getOrderMoneyType())){ | ||||
|                     continue; | ||||
|                 } | ||||
| @@ -310,7 +323,7 @@ public class SysOrderServiceImpl implements ISysOrderService { | ||||
|                     //本月第一天 | ||||
|                     LocalDate monthStart = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()); | ||||
|                     //旧的开始时间和新的开始时间都要需要大于本月第一天 | ||||
|                     if(ChronoUnit.DAYS.between(monthStart, DateUtils.dateToLocalDate(sysOrder.getStartTime())) >= 0 && ChronoUnit.DAYS.between(monthStart, newStartTime) >= 0){ | ||||
|                     if(sysOrder.getCommissStartTime() != null && ChronoUnit.DAYS.between(monthStart, DateUtils.dateToLocalDate(sysOrder.getCommissStartTime())) >= 0 && ChronoUnit.DAYS.between(monthStart, newStartTime) >= 0){ | ||||
|                         sysOrder.setCommissStartTime(DateUtils.localDateToDate(newStartTime)); | ||||
|                     } | ||||
|                     sysOrder.setStartTime(DateUtils.localDateToDate(newStartTime)); | ||||
|   | ||||
| @@ -193,4 +193,22 @@ | ||||
|         from sys_live_schedul | ||||
|         where id <![CDATA[ < ]]> #{id} and del_flag = 0 and live_room = #{liveRoom}  order by live_start_time desc limit 1 | ||||
|     </select> | ||||
|  | ||||
|     <!-- 根据时间查询所有直播计划 --> | ||||
|     <select id="getAllLiveSchedulByDate" parameterType="SysLiveSchedul" resultMap="SysLiveSchedulResultSigle"> | ||||
|         select | ||||
|         <include refid="selectSysLiveSchedulVo"/> | ||||
|         from sys_live_schedul where del_flag = 0 and live_schedul_date = #{liveSchedulDate} | ||||
|         order by live_start_time asc | ||||
|     </select> | ||||
|  | ||||
|     <!-- 查最后一次直播计划 --> | ||||
|     <select id="getLastLiveSchedul" resultMap="SysLiveSchedulResultSigle"> | ||||
|         select | ||||
|         <include refid="selectSysLiveSchedulVo"/> | ||||
|         from sys_live_schedul | ||||
|         where del_flag = 0 order by live_schedul_date  desc limit 1 | ||||
|     </select> | ||||
|  | ||||
|  | ||||
| </mapper> | ||||
		Reference in New Issue
	
	Block a user