Commit 36a673af authored by 陈祥烨's avatar 陈祥烨

修改

parent 6598a771
package com.yeejoin.amos.api.tool.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.DataBaseNameListModel;
import com.yeejoin.amos.api.tool.face.service.DataBaseNameListService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
@RestController
@Api(tags = "数据库名称表")
@RequestMapping(value = "/database_name")
public class DataBaseNameListResource {
@Autowired
private DataBaseNameListService dataBaseNameListService;
/**
* 数据库初始化
* @param ipSeq 数据库连接seq
* @return List<DataBaseLinkModel>
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PostMapping(value = "/refresh/{ipSeq}")
@ApiOperation(httpMethod = "POST", value = "数据库初始化", notes = "数据库初始化")
public ResponseModel<List<DataBaseNameListModel>> refresh(@PathVariable Long ipSeq) throws Exception {
return ResponseHelper.buildResponse(
dataBaseNameListService.refreshDataBase(ipSeq));
}
/**
* 分页查询
* @param current 当前分页
* @param size 分页大小
* @return Page<DataBaseNameListModel>
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET", value = "分页查询", notes = "分页查询")
public ResponseModel<Page<DataBaseNameListModel>> queryForPage(
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
Page<DataBaseNameListModel> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(dataBaseNameListService.queryForDataBasePage(page));
}
}
package com.yeejoin.amos.api.tool.face.service; package com.yeejoin.amos.api.tool.face.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel;
import com.yeejoin.amos.api.tool.face.model.DataBaseNameListModel; import com.yeejoin.amos.api.tool.face.model.DataBaseNameListModel;
import com.yeejoin.amos.api.tool.face.orm.dao.DataBaseLinkMapper;
import com.yeejoin.amos.api.tool.face.orm.dao.DataBaseNameListMapper; import com.yeejoin.amos.api.tool.face.orm.dao.DataBaseNameListMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.DataBaseLink;
import com.yeejoin.amos.api.tool.face.orm.entity.DataBaseNameList; import com.yeejoin.amos.api.tool.face.orm.entity.DataBaseNameList;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@Service @Service
public class DataBaseNameListService extends BaseService<DataBaseNameListModel, DataBaseNameList, DataBaseNameListMapper> { public class DataBaseNameListService extends BaseService<DataBaseNameListModel, DataBaseNameList, DataBaseNameListMapper> {
@Autowired
private DataBaseLinkService dataBaseLinkService;
/**
* 分页查询
*/
public Page<DataBaseNameListModel> queryForDataBasePage(Page<DataBaseNameListModel> page) {
return this.queryForPage(page, null, false);
}
/**
* 初始化数据库名表
*/
public List<DataBaseNameListModel> refreshDataBase(Long ipSeq) throws Exception {
DataBaseLinkModel dataBaseLinkModel = dataBaseLinkService.encryptPwd(dataBaseLinkService.queryBySeq(ipSeq));
//清空表单
this.remove(new QueryWrapper<>());
//连接数据库
Connection connection = dataBaseLinkService.connectNewDatabase(dataBaseLinkModel);
if (connection == null)
return null;
List<DataBaseNameListModel> models = new ArrayList<>();
Collection<DataBaseNameList> dataBaseNameLists = new ArrayList<>();
for (String name : dataBaseLinkService.getDataBaseName(connection)) {
if (name == null)
break;
DataBaseNameListModel model = new DataBaseNameListModel();
BeanUtils.copyProperties(model, dataBaseLinkModel);
model.setDbName(name);
models.add(model);
dataBaseNameLists.add(this.prepareEntity(model));
}
this.saveBatch(dataBaseNameLists);
connection.close();
return models;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment