package cn.stylefeng.guns.modular.business.service.impl;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.ListUtil;
|
import cn.hutool.core.util.StrUtil;
|
import cn.stylefeng.guns.modular.business.entity.CounsellingInfo;
|
import cn.stylefeng.guns.modular.business.entity.CounsellingSetMeal;
|
import cn.stylefeng.guns.modular.business.entity.CounsellingTimeConfig;
|
import cn.stylefeng.guns.modular.business.mapper.CounsellingInfoMapper;
|
import cn.stylefeng.guns.modular.business.service.ICounsellingInfoService;
|
import cn.stylefeng.guns.modular.business.service.ICounsellingSetMealService;
|
import cn.stylefeng.guns.modular.business.service.ICounsellingTimeConfigService;
|
import cn.stylefeng.guns.utils.GeneralUtil;
|
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.google.common.collect.Lists;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 咨询师信息 服务实现类
|
* </p>
|
*
|
* @author goupan
|
* @since 2024-01-01
|
*/
|
@Service
|
public class CounsellingInfoServiceImpl extends ServiceImpl<CounsellingInfoMapper, CounsellingInfo> implements ICounsellingInfoService {
|
|
|
@Autowired
|
private ICounsellingSetMealService counsellingSetMealService;
|
|
@Autowired
|
private ICounsellingTimeConfigService counsellingTimeConfigService;
|
|
@Override
|
public long getCountCounsellingInfo(List<String> tagIds) {
|
return this.baseMapper.getCountCounsellingInfo(tagIds);
|
}
|
|
@Override
|
public void saveOrUpdateCounsellingInfo(CounsellingInfo counsellingInfo) {
|
//判断是否新增
|
if (counsellingInfo.getId() != null){
|
counsellingInfo.setUpdateUser(LoginContext.me().getLoginUser().getUserId());
|
this.updateById(counsellingInfo);
|
//处理所有套餐信息为删除状态
|
this.counsellingSetMealService.update(new LambdaUpdateWrapper<CounsellingSetMeal>().set(CounsellingSetMeal::getIsDelete,1)
|
.eq(CounsellingSetMeal::getCounsellingInfoId,counsellingInfo.getId()));
|
//生成套餐信息
|
if (CollectionUtil.isNotEmpty(counsellingInfo.getCounsellingSetMealList())){
|
counsellingInfo.getCounsellingSetMealList().forEach(counsellingSetMeal -> {
|
counsellingSetMeal.setCounsellingInfoId(counsellingInfo.getId());
|
});
|
this.counsellingSetMealService.saveOrUpdateBatch(counsellingInfo.getCounsellingSetMealList());
|
}
|
//删除时间配置重新生成
|
this.counsellingTimeConfigService.remove(new LambdaQueryWrapper<CounsellingTimeConfig>().eq(CounsellingTimeConfig::getCounsellingInfoId,counsellingInfo.getId()));
|
//处理预约时间配置
|
if (CollectionUtil.isNotEmpty(counsellingInfo.getTimeConfigDTOList()) ){
|
List<CounsellingTimeConfig> counsellingTimeConfigs = new ArrayList<>();
|
counsellingInfo.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 ->{
|
CounsellingTimeConfig counsellingTimeConfig = new CounsellingTimeConfig();
|
counsellingTimeConfig.setModuleNo(moduleNo);
|
counsellingTimeConfig.setWeekDay(Integer.parseInt(week));
|
counsellingTimeConfig.setCounsellingInfoId(counsellingInfo.getId());
|
counsellingTimeConfig.setBeginTimePoint(timePoint.split("-")[0]);
|
counsellingTimeConfig.setEndTimePoint(timePoint.split("-")[1]);
|
counsellingTimeConfigs.add(counsellingTimeConfig);
|
});
|
});
|
});
|
|
if (CollectionUtil.isNotEmpty(counsellingTimeConfigs)){
|
this.counsellingTimeConfigService.saveBatch(counsellingTimeConfigs);
|
}
|
|
}
|
}else{
|
counsellingInfo.setListingStatus(1);
|
counsellingInfo.setCreateUser(LoginContext.me().getLoginUser().getUserId());
|
this.save(counsellingInfo);
|
//生成套餐信息
|
if (CollectionUtil.isNotEmpty(counsellingInfo.getCounsellingSetMealList())){
|
counsellingInfo.getCounsellingSetMealList().forEach(counsellingSetMeal -> {
|
counsellingSetMeal.setCounsellingInfoId(counsellingInfo.getId());
|
});
|
this.counsellingSetMealService.saveBatch(counsellingInfo.getCounsellingSetMealList());
|
}
|
//生成预约时间配置
|
if (CollectionUtil.isNotEmpty(counsellingInfo.getTimeConfigDTOList())){
|
List<CounsellingTimeConfig> counsellingTimeConfigs = new ArrayList<>();
|
counsellingInfo.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 ->{
|
CounsellingTimeConfig counsellingTimeConfig = new CounsellingTimeConfig();
|
counsellingTimeConfig.setModuleNo(moduleNo);
|
counsellingTimeConfig.setWeekDay(Integer.parseInt(week));
|
counsellingTimeConfig.setCounsellingInfoId(counsellingInfo.getId());
|
counsellingTimeConfig.setBeginTimePoint(timePoint.split("-")[0]);
|
counsellingTimeConfig.setEndTimePoint(timePoint.split("-")[1]);
|
counsellingTimeConfigs.add(counsellingTimeConfig);
|
});
|
});
|
|
});
|
|
if (CollectionUtil.isNotEmpty(counsellingTimeConfigs)){
|
this.counsellingTimeConfigService.saveBatch(counsellingTimeConfigs);
|
}
|
|
}
|
}
|
}
|
}
|