package com.ydtech.modules.admin.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ydtech.constants.InsuranceEnum; import com.ydtech.modules.admin.constants.EnabledEnum; import com.ydtech.modules.admin.dao.SysQueryVehicleConfigMapper; import com.ydtech.modules.admin.model.dto.SysQueryVehicleConfigDTO; import com.ydtech.modules.admin.model.po.SysQueryVehicleConfig; import com.ydtech.modules.admin.model.po.SysQueryVehicleUrl; import com.ydtech.modules.admin.model.vo.SysQueryVehicleConfigQueryPageVo; import com.ydtech.modules.admin.model.vo.SysQueryVehicleConfigQueryVo; import com.ydtech.modules.admin.model.vo.SysQueryVehicleConfigSaveVo; import com.ydtech.modules.admin.service.SysQueryVehicleConfigService; import com.ydtech.modules.admin.service.SysQueryVehicleUrlService; import com.ydtech.modules.order.entity.BasePageResult; import com.ydtech.modules.protocol.utils.AssertionUtils; import com.ydtech.utils.ObjectUtil; import com.ydtech.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Collections; import java.util.List; import java.util.Objects; /** * @author Administrator * @description 针对表【sys_query_vehicle_config(车型查询配置信息)】的数据库操作Service实现 * @createDate 2024-08-16 10:20:52 */ @Service @RequiredArgsConstructor public class SysQueryVehicleConfigServiceImpl extends ServiceImpl implements SysQueryVehicleConfigService { private final SysQueryVehicleUrlService sysQueryVehicleUrlService; @Override @Transactional public void disposition(SysQueryVehicleConfigSaveVo sysQueryVehicleConfigSaveVo) { SysQueryVehicleConfigSaveVo.SysQueryVehicleConfigDTO sysQueryVehicleConfigDTO = sysQueryVehicleConfigSaveVo.getSysQueryVehicleConfigDTO(); // 保证项目中只能出险一个开启的车险配置 boolean b1 = updateEnabled(sysQueryVehicleConfigDTO.getEnabled()); SysQueryVehicleConfig sysQueryVehicleConfig = sysQueryVehicleConfigDTO.toSysQueryVehicleConfig(); boolean save = save(sysQueryVehicleConfig); boolean b = sysQueryVehicleUrlService.saveVehicleUrlDTOs(sysQueryVehicleConfig.getId(), sysQueryVehicleConfigSaveVo.getSysQueryVehicleUrlDTOList()); AssertionUtils.isSucceed(save && b && b1, "配置信息保存失败"); } @Override public BasePageResult inquire(SysQueryVehicleConfigQueryPageVo sysQueryVehicleConfigQueryVo) { Page page = new Page<>(sysQueryVehicleConfigQueryVo.getPageNum(), sysQueryVehicleConfigQueryVo.getPageSize()); Page sysQueryVehicleConfigPage = lambdaQuery() .eq(StringUtils.isNotEmpty(sysQueryVehicleConfigQueryVo.getCompanyId()), SysQueryVehicleConfig::getCompanyId, sysQueryVehicleConfigQueryVo.getCompanyId()) .eq(ObjectUtils.isNotEmpty(sysQueryVehicleConfigQueryVo.getEnabled()), SysQueryVehicleConfig::getEnabled, sysQueryVehicleConfigQueryVo.getEnabled()) .page(page); return new BasePageResult<>(sysQueryVehicleConfigQueryVo.getPageNum(), sysQueryVehicleConfigQueryVo.getPageSize(), sysQueryVehicleConfigPage.getTotal(), sysQueryVehicleConfigPage.getPages(), sysQueryVehicleConfigPage.getRecords()); } @Override @Transactional public void deleteVehicleConfig(Integer id) { // 删除配置信息 boolean b = removeById(id); // 删除配置链接信息 boolean remove = sysQueryVehicleUrlService.deleteByConfigId(id); AssertionUtils.isSucceed(remove && b, "配置信息删除失败"); } @Override @Transactional public void modify(Integer id, SysQueryVehicleConfigSaveVo sysQueryVehicleConfigSaveVo) { // 修改配置信息 SysQueryVehicleConfig sysQueryVehicleConfig = getByIdExist(id, "查询配置信息不存在"); BeanUtils.copyProperties(sysQueryVehicleConfigSaveVo.getSysQueryVehicleConfigDTO(), sysQueryVehicleConfig); // 保证项目中只能出险一个开启的车险配置 boolean b = updateEnabled(sysQueryVehicleConfigSaveVo.getSysQueryVehicleConfigDTO().getEnabled()); sysQueryVehicleConfig.setId(id); boolean update = updateById(sysQueryVehicleConfig); // 删除并添加 boolean remove = sysQueryVehicleUrlService.deleteByConfigId(id); // 批量添加配置信息 boolean saveBatch = sysQueryVehicleUrlService.saveVehicleUrlDTOs(id, sysQueryVehicleConfigSaveVo.getSysQueryVehicleUrlDTOList()); AssertionUtils.isSucceed(update && remove && saveBatch && b, "配置信息修改失败"); } @Override public SysQueryVehicleConfigQueryVo queryById(Integer id) { SysQueryVehicleConfig sysQueryVehicleConfig = getByIdExist(id, "查询配置信息不存在"); SysQueryVehicleConfigQueryVo sysQueryVehicleConfigQueryDTO = new SysQueryVehicleConfigQueryVo(); sysQueryVehicleConfigQueryDTO.setSysQueryVehicleConfig(sysQueryVehicleConfig); List list = sysQueryVehicleUrlService.lambdaQuery().eq(SysQueryVehicleUrl::getConfigId, id).list(); sysQueryVehicleConfigQueryDTO.setSysQueryVehicleUrlList(list); return sysQueryVehicleConfigQueryDTO; } @Override public SysQueryVehicleConfigDTO getByType(String type) { SysQueryVehicleConfigDTO sysQueryVehicleConfigDTO = baseMapper.getByType(type); if(ObjectUtils.isEmpty(sysQueryVehicleConfigDTO)) { return null; } return sysQueryVehicleConfigDTO; } @Override @Transactional public void openOne(Integer id) { SysQueryVehicleConfig sysQueryVehicleConfig = getByIdExist(id, "查询配置信息不存在"); Integer enabled = sysQueryVehicleConfig.getEnabled(); Integer i = Objects.equals(EnabledEnum.EE_1.getCode(), enabled) ? EnabledEnum.EE_0.getCode() : EnabledEnum.EE_1.getCode(); boolean b = updateEnabled(i); sysQueryVehicleConfig.setEnabled(i); boolean b1 = updateById(sysQueryVehicleConfig); AssertionUtils.isSucceed(b1 && b, "成功"); } }