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.IncomeConfigDto;
|
import com.nova.sankuai.domain.dto.IncomeConfigPageDto;
|
import com.nova.sankuai.domain.entity.IncomeConfig;
|
import com.nova.sankuai.domain.vo.IncomeConfigItemListVo;
|
import com.nova.sankuai.domain.vo.IncomeConfigItemVo;
|
import com.nova.sankuai.domain.vo.IncomeConfigVo;
|
import com.nova.sankuai.infra.config.CommonException;
|
import com.nova.sankuai.infra.mapper.ApiCompanyMapper;
|
import com.nova.sankuai.infra.mapper.CapitalInfoMapper;
|
import com.nova.sankuai.infra.mapper.IncomeConfigMapper;
|
import com.nova.sankuai.infra.utils.PageUtil;
|
import com.nova.sankuai.service.IncomeConfigService;
|
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:29
|
*/
|
@Service
|
@Slf4j
|
@AllArgsConstructor
|
public class IncomeConfigServiceImpl extends ServiceImpl<IncomeConfigMapper, IncomeConfig> implements IncomeConfigService {
|
|
private final PageUtil pageUtil;
|
|
private IncomeConfigMapper incomeConfigMapper;
|
|
private ApiCompanyMapper apiCompanyMapper;
|
|
private CapitalInfoMapper capitalInfoMapper;
|
|
@Override
|
public IPage<IncomeConfigVo> getIncomeConfigList(IncomeConfigPageDto pageDto) {
|
Page page = pageUtil.getPage(pageDto);
|
IPage<IncomeConfigVo> incomeConfigVoIPage = incomeConfigMapper.pageIncomeConfigList(page, pageDto);
|
return incomeConfigVoIPage;
|
}
|
|
@Override
|
public void editIncomeConfig(IncomeConfigDto incomeConfigDto) {
|
IncomeConfig incomeConfig = getById(incomeConfigDto.getId());
|
if (incomeConfig == null) {
|
throw new CommonException("此收入配置不存在");
|
}
|
verifyIncomeConfig(incomeConfigDto);
|
incomeConfig.setConfigRecordId(incomeConfigDto.getConfigRecordId());
|
incomeConfig.setConfigRecordName(incomeConfigDto.getConfigRecordName());
|
incomeConfig.setConfigRecordCode(incomeConfigDto.getConfigRecordCode());
|
incomeConfig.setType(incomeConfigDto.getType());
|
incomeConfig.setDefaultFlag(incomeConfigDto.getDefaultFlag());
|
incomeConfig.setLastUpdateDate(new Date());
|
incomeConfig.setRelationCity(incomeConfigDto.getRelationCity());
|
incomeConfig.setRelationCityId(incomeConfigDto.getRelationCityId());
|
incomeConfig.setRelationCityName(incomeConfigDto.getRelationCityName());
|
incomeConfig.setCollisionPrice(incomeConfigDto.getCollisionPrice());
|
incomeConfig.setCapitalPrice(incomeConfigDto.getCapitalPrice());
|
incomeConfig.setAuditPrice(incomeConfigDto.getAuditPrice());
|
if (Objects.equals(incomeConfig.getDefaultFlag(), 1)) {
|
incomeConfig.setRelationCity(null);
|
incomeConfig.setRelationCityName(null);
|
incomeConfig.setRelationCityId(null);
|
}
|
updateById(incomeConfig);
|
}
|
|
@Override
|
public void addIncomeConfig(IncomeConfigDto incomeConfigDto) {
|
verifyIncomeConfig(incomeConfigDto);
|
IncomeConfig incomeConfig = new IncomeConfig();
|
BeanUtils.copyProperties(incomeConfigDto, incomeConfig);
|
incomeConfig.setCreationDate(new Date());
|
incomeConfig.setLastUpdateDate(new Date());
|
if (Objects.equals(incomeConfig.getDefaultFlag(), 1)) {
|
incomeConfig.setRelationCity(null);
|
incomeConfig.setRelationCityName(null);
|
incomeConfig.setRelationCityId(null);
|
}
|
save(incomeConfig);
|
}
|
|
@Override
|
public void deleteIncomeConfig(Long id) {
|
IncomeConfig incomeConfig = getOne(new LambdaQueryWrapper<IncomeConfig>().eq(IncomeConfig::getId, id)
|
.eq(IncomeConfig::getIsDelete, 0));
|
if (incomeConfig == null) {
|
throw new CommonException("此收入配置不存在");
|
}
|
incomeConfigMapper.deleteIncomeConfig(id);
|
}
|
|
public void verifyIncomeConfig(IncomeConfigDto incomeConfigDto) {
|
LambdaQueryWrapper<IncomeConfig> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(IncomeConfig::getConfigRecordId, incomeConfigDto.getConfigRecordId());
|
queryWrapper.eq(IncomeConfig::getType, incomeConfigDto.getType());
|
if (incomeConfigDto.getId() != null) {
|
queryWrapper.ne(IncomeConfig::getId, incomeConfigDto.getId());
|
}
|
if (Objects.equals(incomeConfigDto.getDefaultFlag(), 1)) {
|
queryWrapper.eq(IncomeConfig::getDefaultFlag, incomeConfigDto.getDefaultFlag());
|
} else {
|
queryWrapper.eq(IncomeConfig::getRelationCityId, incomeConfigDto.getRelationCityId());
|
}
|
List<IncomeConfig> incomeConfigList = list(queryWrapper);
|
if (incomeConfigList != null && !incomeConfigList.isEmpty()) {
|
for (IncomeConfig incomeConfig : incomeConfigList) {
|
if (Objects.equals(incomeConfig.getDefaultFlag(), 1)) {
|
throw new CommonException("该机构已存在默认配置");
|
}
|
if (Objects.equals(incomeConfig.getRelationCityId(), incomeConfigDto.getRelationCityId())) {
|
throw new CommonException("该机构此城市配置已存在");
|
}
|
}
|
}
|
}
|
|
@Override
|
public IncomeConfigItemListVo getSelectIncomeConfigs() {
|
List<IncomeConfigItemVo> apiCompanyList = apiCompanyMapper.getSelectIncomeConfigs();
|
List<IncomeConfigItemVo> capitalList = capitalInfoMapper.getSelectIncomeConfigs();
|
IncomeConfigItemListVo listVo = new IncomeConfigItemListVo();
|
listVo.setCapitalList(capitalList);
|
listVo.setApiCompanyList(apiCompanyList);
|
return listVo;
|
}
|
}
|