package com.nova.sankuai.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.nova.sankuai.domain.dto.CostConfigDto;
|
import com.nova.sankuai.domain.dto.CostConfigPageDto;
|
import com.nova.sankuai.domain.entity.CostConfig;
|
import com.nova.sankuai.domain.vo.CostConfigVo;
|
import com.nova.sankuai.infra.config.CommonException;
|
import com.nova.sankuai.infra.mapper.CostConfigMapper;
|
import com.nova.sankuai.infra.utils.PageUtil;
|
import com.nova.sankuai.service.CostConfigService;
|
import lombok.AllArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* @Author Lilinhong
|
* @Date 2022/7/13 9:18
|
*/
|
@Service
|
@Slf4j
|
@AllArgsConstructor
|
public class CostConfigServiceImpl extends ServiceImpl<CostConfigMapper, CostConfig> implements CostConfigService {
|
|
private final PageUtil pageUtil;
|
|
private final CostConfigMapper costConfigMapper;
|
|
@Override
|
public IPage<CostConfigVo> getCostConfigList(CostConfigPageDto pageDto) {
|
Page page = pageUtil.getPage(pageDto);
|
IPage<CostConfigVo> costConfigIPage = costConfigMapper.pageCostConfigList(page, pageDto);
|
return costConfigIPage;
|
}
|
|
@Override
|
public void editCostConfig(CostConfigDto costConfigDto) {
|
CostConfig costConfig = getById(costConfigDto.getId());
|
if (costConfig == null) {
|
throw new CommonException("此成本配置不存在");
|
}
|
verifyCostConfig(costConfigDto);
|
costConfig.setChannelId(costConfigDto.getChannelId());
|
costConfig.setChannelName(costConfigDto.getChannelName());
|
costConfig.setChannelCode(costConfigDto.getChannelCode());
|
costConfig.setDefaultFlag(costConfigDto.getDefaultFlag());
|
costConfig.setLastUpdateDate(new Date());
|
costConfig.setRelationCity(costConfigDto.getRelationCity());
|
costConfig.setRelationCityId(costConfigDto.getRelationCityId());
|
costConfig.setRelationCityName(costConfigDto.getRelationCityName());
|
costConfig.setUvPrice(costConfigDto.getUvPrice());
|
costConfig.setRegisterPrice(costConfigDto.getRegisterPrice());
|
costConfig.setFinishedPrice(costConfigDto.getFinishedPrice());
|
if (Objects.equals(costConfig.getDefaultFlag(), 1)) {
|
costConfig.setRelationCity(null);
|
costConfig.setRelationCityName(null);
|
costConfig.setRelationCityId(null);
|
}
|
updateById(costConfig);
|
}
|
|
@Override
|
public void addCostConfig(CostConfigDto costConfigDto) {
|
verifyCostConfig(costConfigDto);
|
CostConfig costConfig = new CostConfig();
|
BeanUtils.copyProperties(costConfigDto, costConfig);
|
costConfig.setCreationDate(new Date());
|
costConfig.setLastUpdateDate(new Date());
|
if (Objects.equals(costConfig.getDefaultFlag(), 1)) {
|
costConfig.setRelationCity(null);
|
costConfig.setRelationCityName(null);
|
costConfig.setRelationCityId(null);
|
}
|
save(costConfig);
|
}
|
|
@Override
|
public void deleteCostConfig(Long id) {
|
CostConfig costConfig = getOne(new LambdaQueryWrapper<CostConfig>().eq(CostConfig::getId, id)
|
.eq(CostConfig::getIsDelete, 0));
|
if (costConfig == null) {
|
throw new CommonException("此成本配置不存在");
|
}
|
costConfigMapper.deleteCostConfig(id);
|
}
|
|
public void verifyCostConfig(CostConfigDto costConfigDto) {
|
LambdaQueryWrapper<CostConfig> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(CostConfig::getChannelId, costConfigDto.getChannelId());
|
if (costConfigDto.getId() != null) {
|
queryWrapper.ne(CostConfig::getId, costConfigDto.getId());
|
}
|
if (Objects.equals(costConfigDto.getDefaultFlag(), 1)) {
|
queryWrapper.eq(CostConfig::getDefaultFlag, costConfigDto.getDefaultFlag());
|
} else {
|
queryWrapper.eq(CostConfig::getRelationCityId, costConfigDto.getRelationCityId());
|
}
|
List<CostConfig> costConfigList = list(queryWrapper);
|
if (costConfigList != null && !costConfigList.isEmpty()) {
|
for (CostConfig costConfig : costConfigList) {
|
if (Objects.equals(costConfig.getDefaultFlag(), 1)) {
|
throw new CommonException("该渠道已存在默认配置");
|
}
|
if (Objects.equals(costConfig.getRelationCityId(), costConfigDto.getRelationCityId())) {
|
throw new CommonException("该渠道此城市配置已存在");
|
}
|
}
|
}
|
}
|
}
|