排班优化加上一键复制功能,营养知识列表、视频列表加上创建时间
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