package com.template.services.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.template.common.utils.CommonUtil; import com.template.mapper.SmartDataClassMapper; import com.template.mapper.SmartDataSourceMapper; import com.template.model.pojo.SmartDataClass; import com.template.model.pojo.SmartDataSource; import com.template.model.result.PageUtils; import com.template.services.SmartDataSourceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.util.List; import java.util.Map; /** *

* 数据源配置 服务实现类 *

* * @author ceshi * @since 2023-12-05 */ @Service public class SmartDataSourceServiceImpl extends ServiceImpl implements SmartDataSourceService { @Autowired private SmartDataSourceMapper smartDataSourceMapper; @Autowired private SmartDataClassMapper smartDataClassMapper; @Override public Map insertSmartDataSource(SmartDataSource smartDataSource) { // 检测参数,还有是否存在重复记录 Map stringStringMap = validateParams(smartDataSource, "insert"); if (stringStringMap != null) { return stringStringMap; } // 必填的参数不为null,则进行新增操作 int result = smartDataSourceMapper.insert(smartDataSource); if (result > 0) { return CommonUtil.getReturnMap(String.valueOf(result), "数据源添加成功!"); } else { return CommonUtil.getReturnMap(String.valueOf(result), "数据源添加失败!"); } } // 检测验证参数,和数据库中是否存在重复记录 private Map validateParams(SmartDataSource smartDataSource, String action) { // 看是否有相同的记录 QueryWrapper queryWrapper = new QueryWrapper<>(); if ("update".equals(action)) { queryWrapper.like(smartDataSource.getDsId() != null, "ds_id", smartDataSource.getDsId()); } queryWrapper.like(smartDataSource.getDsClsId() != null, "ds_cls_id", smartDataSource.getDsClsId()); queryWrapper.like(StringUtils.hasText(smartDataSource.getDsName()), "ds_name", smartDataSource.getDsName()); queryWrapper.like(StringUtils.hasText(smartDataSource.getDsUrl()), "ds_url", smartDataSource.getDsUrl()); queryWrapper.like(StringUtils.hasText(smartDataSource.getDsUser()), "ds_user", smartDataSource.getDsUser()); queryWrapper.like(StringUtils.hasText(smartDataSource.getDsPassword()), "ds_password", smartDataSource.getDsPassword()); queryWrapper.like(smartDataSource.getDsStatus() != null, "ds_status", smartDataSource.getDsStatus()); queryWrapper.like(StringUtils.hasText(smartDataSource.getDsDescrition()), "ds_descrition", smartDataSource.getDsDescrition()); List smartDataSources = smartDataSourceMapper.selectList(queryWrapper); if (smartDataSources.size() > 0) { if ("update".equals(action)) { return CommonUtil.getReturnMap("0", "数据未修改,请修改后再提交!"); } else { return CommonUtil.getReturnMap("0", "有重复记录!"); } } // 检测必要参数是否为null if ("update".equals(action)) { if (smartDataSource.getDsId() == null) { return CommonUtil.getReturnMap("0", "【数据源id】不能为空!"); } SmartDataSource sdc = smartDataSourceMapper.selectById(smartDataSource.getDsId()); if (sdc == null) { return CommonUtil.getReturnMap("0", "要修改的【数据源】不存在!"); } } // 检测必要参数是否为null if (smartDataSource.getDsClsId() == null) { return CommonUtil.getReturnMap("0", "【数据源类型id】不能为空!"); } SmartDataClass smartDataClass = smartDataClassMapper.selectById(smartDataSource.getDsClsId()); if (smartDataClass == null) { return CommonUtil.getReturnMap("0", "选择的【数据源类型】不存在!"); } if (smartDataSource.getDsName() == null) { return CommonUtil.getReturnMap("0", "【数据源名称】不能为空!"); } if (smartDataSource.getDsUrl() == null) { return CommonUtil.getReturnMap("0", "【数据源连接地址】不能为空!"); } if (smartDataSource.getDsUser() == null) { return CommonUtil.getReturnMap("0", "【数据源用户】不能为空!"); } if (smartDataSource.getDsPassword() == null) { return CommonUtil.getReturnMap("0", "【数据源密码】不能为空!"); } if (smartDataSource.getDsDescrition() == null) { return CommonUtil.getReturnMap("0", "【数据源描述】不能为空!"); } return null; } @Override public Map updateSmartDataSource(SmartDataSource smartDataSource) { // 检测参数,还有是否存在重复记录 Map stringStringMap = validateParams(smartDataSource, "insert"); if (stringStringMap != null) { return stringStringMap; } int result = smartDataSourceMapper.updateById(smartDataSource); if (result > 0) { return CommonUtil.getReturnMap(String.valueOf(result), "数据源修改成功!"); } else { return CommonUtil.getReturnMap(String.valueOf(result), "数据源修改失败!"); } } @Override public PageUtils queryPageSmartDataSources(int currentPage, int pageCount, SmartDataSource smartDataSource) { Page page = new Page<>(currentPage, pageCount); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(StringUtils.hasText(smartDataSource.getDsName()), "ds_name", smartDataSource.getDsName()); queryWrapper.like(StringUtils.hasText(smartDataSource.getDsUrl()), "ds_url", smartDataSource.getDsUrl()); queryWrapper.like(smartDataSource.getDsStatus() != null, "ds_status", smartDataSource.getDsStatus()); queryWrapper.like(StringUtils.hasText(smartDataSource.getDsDescrition()), "ds_descrition", smartDataSource.getDsDescrition()); queryWrapper.orderByDesc("ds_update_time"); IPage result = smartDataSourceMapper.selectPage(page, queryWrapper); return new PageUtils<>(result); } @Override public int deleteSmartDataSourceById(int id) { int result = smartDataSourceMapper.deleteById(id); return result; } @Override public SmartDataSource getSmartById(int id) { SmartDataSource result = smartDataSourceMapper.selectById(id); return result; } }