package com.oying.modules.maint.service.impl; import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.oying.modules.maint.domain.Database; import com.oying.modules.maint.domain.dto.DatabaseQueryCriteria; import com.oying.modules.maint.mapper.DatabaseMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import com.oying.modules.maint.service.DatabaseService; import com.oying.modules.maint.util.SqlUtils; import com.oying.utils.FileUtil; import com.oying.utils.PageResult; import com.oying.utils.PageUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.*; /** * @author Z * @date 2019-08-24 */ @Slf4j @Service @RequiredArgsConstructor public class DatabaseServiceImpl extends ServiceImpl implements DatabaseService { private final DatabaseMapper databaseMapper; @Override public PageResult queryAll(DatabaseQueryCriteria criteria, Page page){ return PageUtil.toPage(databaseMapper.findAll(criteria, page)); } @Override public List queryAll(DatabaseQueryCriteria criteria){ return databaseMapper.findAll(criteria); } @Override @Transactional(rollbackFor = Exception.class) public void create(Database resources) { resources.setId(IdUtil.simpleUUID()); save(resources); } @Override @Transactional(rollbackFor = Exception.class) public void update(Database resources) { Database database = getById(resources.getId()); database.copy(resources); saveOrUpdate(database); } @Override @Transactional(rollbackFor = Exception.class) public void delete(Set ids) { removeBatchByIds(ids); } @Override public boolean testConnection(Database resources) { try { return SqlUtils.testConnection(resources.getJdbcUrl(), resources.getUserName(), resources.getPwd()); } catch (Exception e) { log.error(e.getMessage()); return false; } } @Override public void download(List databases, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); for (Database database : databases) { Map map = new LinkedHashMap<>(); map.put("数据库名称", database.getName()); map.put("数据库连接地址", database.getJdbcUrl()); map.put("用户名", database.getUserName()); map.put("创建日期", database.getCreateTime()); list.add(map); } FileUtil.downloadExcel(list, response); } }