SysQueryVehicleConfigServiceImpl.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package com.ydtech.modules.admin.service.impl;
  2. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.ydtech.constants.InsuranceEnum;
  5. import com.ydtech.modules.admin.dao.SysQueryVehicleConfigMapper;
  6. import com.ydtech.modules.admin.model.dto.SysQueryVehicleConfigDTO;
  7. import com.ydtech.modules.admin.model.po.SysQueryVehicleConfig;
  8. import com.ydtech.modules.admin.model.po.SysQueryVehicleUrl;
  9. import com.ydtech.modules.admin.model.vo.SysQueryVehicleConfigQueryPageVo;
  10. import com.ydtech.modules.admin.model.vo.SysQueryVehicleConfigQueryVo;
  11. import com.ydtech.modules.admin.model.vo.SysQueryVehicleConfigSaveVo;
  12. import com.ydtech.modules.admin.service.SysQueryVehicleConfigService;
  13. import com.ydtech.modules.admin.service.SysQueryVehicleUrlService;
  14. import com.ydtech.modules.order.entity.BasePageResult;
  15. import com.ydtech.modules.protocol.utils.AssertionUtils;
  16. import lombok.RequiredArgsConstructor;
  17. import org.springframework.beans.BeanUtils;
  18. import org.springframework.stereotype.Service;
  19. import org.springframework.transaction.annotation.Transactional;
  20. import java.util.Collections;
  21. import java.util.List;
  22. /**
  23. * @author Administrator
  24. * @description 针对表【sys_query_vehicle_config(车型查询配置信息)】的数据库操作Service实现
  25. * @createDate 2024-08-16 10:20:52
  26. */
  27. @Service
  28. @RequiredArgsConstructor
  29. public class SysQueryVehicleConfigServiceImpl extends ServiceImpl<SysQueryVehicleConfigMapper, SysQueryVehicleConfig> implements SysQueryVehicleConfigService {
  30. private final SysQueryVehicleUrlService sysQueryVehicleUrlService;
  31. @Override
  32. @Transactional
  33. public void disposition(SysQueryVehicleConfigSaveVo sysQueryVehicleConfigSaveVo) {
  34. SysQueryVehicleConfigSaveVo.SysQueryVehicleConfigDTO sysQueryVehicleConfigDTO = sysQueryVehicleConfigSaveVo.getSysQueryVehicleConfigDTO();
  35. // 保证项目中只能出险一个开启的车险配置
  36. updateEnabled(sysQueryVehicleConfigDTO.getEnabled());
  37. SysQueryVehicleConfig sysQueryVehicleConfig = sysQueryVehicleConfigDTO.toSysQueryVehicleConfig();
  38. boolean save = save(sysQueryVehicleConfig);
  39. boolean b = sysQueryVehicleUrlService.saveVehicleUrlDTOs(sysQueryVehicleConfig.getId(), sysQueryVehicleConfigSaveVo.getSysQueryVehicleUrlDTOList());
  40. AssertionUtils.isSucceed(save && b, "配置信息保存失败");
  41. }
  42. @Override
  43. public BasePageResult<SysQueryVehicleConfig> inquire(SysQueryVehicleConfigQueryPageVo sysQueryVehicleConfigQueryVo) {
  44. Page<SysQueryVehicleConfig> page = new Page<>(sysQueryVehicleConfigQueryVo.getPageNum(), sysQueryVehicleConfigQueryVo.getPageSize());
  45. Page<SysQueryVehicleConfig> sysQueryVehicleConfigPage = lambdaQuery()
  46. .eq(SysQueryVehicleConfig::getCompanyId, sysQueryVehicleConfigQueryVo.getCompanyId())
  47. .eq(SysQueryVehicleConfig::getEnabled, sysQueryVehicleConfigQueryVo.getEnabled())
  48. .page(page);
  49. return new BasePageResult<>(sysQueryVehicleConfigQueryVo.getPageNum(), sysQueryVehicleConfigQueryVo.getPageSize(), sysQueryVehicleConfigPage.getTotal(), sysQueryVehicleConfigPage.getPages(), sysQueryVehicleConfigPage.getRecords());
  50. }
  51. @Override
  52. @Transactional
  53. public void deleteVehicleConfig(Integer id) {
  54. // 删除配置信息
  55. boolean b = removeById(id);
  56. // 删除配置链接信息
  57. boolean remove = sysQueryVehicleUrlService.deleteByConfigId(id);
  58. AssertionUtils.isSucceed(remove && b, "配置信息删除失败");
  59. }
  60. @Override
  61. @Transactional
  62. public void modify(Integer id, SysQueryVehicleConfigSaveVo sysQueryVehicleConfigSaveVo) {
  63. // 修改配置信息
  64. SysQueryVehicleConfig sysQueryVehicleConfig = getByIdExist(id, "查询配置信息不存在");
  65. BeanUtils.copyProperties(sysQueryVehicleConfigSaveVo.getSysQueryVehicleConfigDTO(), sysQueryVehicleConfig);
  66. // 保证项目中只能出险一个开启的车险配置
  67. updateEnabled(sysQueryVehicleConfigSaveVo.getSysQueryVehicleConfigDTO().getEnabled());
  68. sysQueryVehicleConfig.setId(id);
  69. boolean update = updateById(sysQueryVehicleConfig);
  70. // 删除并添加
  71. boolean remove = sysQueryVehicleUrlService.deleteByConfigId(id);
  72. // 批量添加配置信息
  73. boolean saveBatch = sysQueryVehicleUrlService.saveVehicleUrlDTOs(id, sysQueryVehicleConfigSaveVo.getSysQueryVehicleUrlDTOList());
  74. AssertionUtils.isSucceed(update && remove && saveBatch, "配置信息修改失败");
  75. }
  76. @Override
  77. public SysQueryVehicleConfigQueryVo queryById(Integer id) {
  78. SysQueryVehicleConfig sysQueryVehicleConfig = getByIdExist(id, "查询配置信息不存在");
  79. SysQueryVehicleConfigQueryVo sysQueryVehicleConfigQueryDTO = new SysQueryVehicleConfigQueryVo();
  80. sysQueryVehicleConfigQueryDTO.setSysQueryVehicleConfig(sysQueryVehicleConfig);
  81. List<SysQueryVehicleUrl> list = sysQueryVehicleUrlService.lambdaQuery().eq(SysQueryVehicleUrl::getConfigId, id).list();
  82. sysQueryVehicleConfigQueryDTO.setSysQueryVehicleUrlList(list);
  83. return sysQueryVehicleConfigQueryDTO;
  84. }
  85. @Override
  86. public SysQueryVehicleConfigDTO getByType(String type) {
  87. SysQueryVehicleConfigDTO sysQueryVehicleConfigDTO = baseMapper.getByType(type);
  88. String substring = sysQueryVehicleConfigDTO.getCompanyId().substring(0, 4);
  89. if (InsuranceEnum.ZMBX.getCode().equals(substring)) {
  90. return null;
  91. }
  92. return sysQueryVehicleConfigDTO;
  93. }
  94. }