package cn.stylefeng.guns.modular.business.service.impl;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.ListUtil;
|
import cn.stylefeng.guns.modular.business.dto.request.MentalAnalysisTimeAddUpdateRequest;
|
import cn.stylefeng.guns.modular.business.entity.MentalAnalysisTime;
|
import cn.stylefeng.guns.modular.business.mapper.MentalAnalysisTimeMapper;
|
import cn.stylefeng.guns.modular.business.service.IMentalAnalysisTimeService;
|
import cn.stylefeng.guns.utils.GeneralUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 性格分析可预约时间 服务实现类
|
* </p>
|
*
|
* @author guohongjin
|
* @since 2024-01-27
|
*/
|
@Service
|
public class MentalAnalysisTimeServiceImpl extends ServiceImpl<MentalAnalysisTimeMapper, MentalAnalysisTime> implements IMentalAnalysisTimeService {
|
|
@Override
|
public void updateTime(MentalAnalysisTimeAddUpdateRequest req) {
|
// 删除时间配置重新生成
|
this.remove(new LambdaQueryWrapper<>());
|
// 处理预约时间配置
|
if (CollectionUtil.isNotEmpty(req.getTimeConfigDTOList()) ){
|
List<MentalAnalysisTime> counsellingTimes = new ArrayList<>();
|
req.getTimeConfigDTOList().forEach(timeConfigDTO -> {
|
// 模块编号
|
String moduleNo = GeneralUtil.generateModuleNo();
|
// 星期几
|
List<String> weekList = ListUtil.toList(timeConfigDTO.getWeeks().split(","));
|
// 时间点
|
List<String> timePointList = ListUtil.toList(timeConfigDTO.getTimePoints().split(","));
|
weekList.stream().forEach(week -> {
|
timePointList.forEach(timePoint -> {
|
MentalAnalysisTime obj = new MentalAnalysisTime();
|
obj.setModuleNo(moduleNo);
|
obj.setWeekDay(Integer.parseInt(week));
|
obj.setBeginTimePoint(timePoint.split("-")[0]);
|
obj.setEndTimePoint(timePoint.split("-")[1]);
|
counsellingTimes.add(obj);
|
});
|
});
|
});
|
|
if (CollectionUtil.isNotEmpty(counsellingTimes)){
|
this.saveBatch(counsellingTimes);
|
}
|
}
|
}
|
|
}
|