Commit 1e346e27 authored by 陈祥烨's avatar 陈祥烨

机构管理逻辑修改

parent 07dde498
package com.yeejoin.amos.api.tool.controller;
import com.yeejoin.amos.api.tool.face.model.AgencyTreeModel;
import com.yeejoin.amos.api.tool.face.service.AgencyTreeService;
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;
/**
* @author r
*/
@RestController
@Api(tags = "机构树")
@RequestMapping(value = "/privilege_agency")
public class AgencyTreeResource {
@Autowired
private AgencyTreeService agencyTreeService;
/**
* 根据sequenceNbr删除
* @param sequenceNbr 主键
* @return Boolean
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(@PathVariable(value = "sequenceNbr") Long sequenceNbr){
return ResponseHelper.buildResponse(agencyTreeService.removeById(sequenceNbr));
}
/**
*列表全部数据查询
* @return List<AgencyTreeModel>
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<AgencyTreeModel>> selectForList() {
return ResponseHelper.buildResponse(agencyTreeService.queryForAgencyTreeList());
}
}
package com.yeejoin.amos.api.tool.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.AgencyModel;
import com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel;
import com.yeejoin.amos.api.tool.face.service.DataBaseLinkService;
import io.swagger.annotations.Api;
......@@ -12,6 +13,7 @@ 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.sql.SQLException;
import java.util.List;
......@@ -20,7 +22,7 @@ import java.util.List;
*/
@RestController
@Api(tags = "数据库信息")
@RequestMapping(value = "/database_join_record")
@RequestMapping(value = "/database_link")
public class DataBaseLinkResource {
@Autowired
......@@ -28,49 +30,53 @@ public class DataBaseLinkResource {
/**
* 新增
* @param model 数据库连接
*
* @param dataBaseLinkModel 数据库连接
* @return DataBaseLinkModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<DataBaseLinkModel> save(@RequestBody DataBaseLinkModel model) throws Exception {
dataBaseLinkService.testConnection(model);
return ResponseHelper.buildResponse(dataBaseLinkService.createWithModel(dataBaseLinkService.encryptPwd(model)));
public ResponseModel<DataBaseLinkModel> save(@RequestBody DataBaseLinkModel dataBaseLinkModel) throws Exception {
return ResponseHelper.buildResponse(dataBaseLinkService.save(dataBaseLinkModel));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return Boolean
*/
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(@PathVariable(value = "sequenceNbr") Long sequenceNbr){
public ResponseModel<Boolean> deleteBySequenceNbr(@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(dataBaseLinkService.removeById(sequenceNbr));
}
/**
* 列表分页查询
*
* @param current 当前分页
* @param size 分页大小
* @return Page<DataBaseLinkModel>
* @return Page<AgencyModel>
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET", value = "分页查询", notes = "分页查询")
public ResponseModel<Page<DataBaseLinkModel>> queryForPage(
@ApiOperation(httpMethod = "GET", value = "机构分页查询", notes = "分页查询")
public ResponseModel<Page<AgencyModel>> queryForPage(
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
Page<DataBaseLinkModel> page = new Page<>();
@RequestParam(value = "size") int size,
@RequestParam Long ipSeq) throws SQLException {
Page<AgencyModel> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(dataBaseLinkService.queryForDataBasePage(page));
return ResponseHelper.buildResponse(dataBaseLinkService.queryForAgencyPage(page,ipSeq));
}
/**
* 列表全部数据查询
*
* @return List<DataBaseLinkModel>
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
......
......@@ -24,19 +24,21 @@ public class DataBaseNameListResource {
/**
* 数据库初始化
*
* @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 {
public ResponseModel<List<String>> refresh(@PathVariable Long ipSeq) throws Exception {
return ResponseHelper.buildResponse(
dataBaseNameListService.refreshDataBase(ipSeq));
}
/**
* 分页查询
*
* @param current 当前分页
* @param size 分页大小
* @return Page<DataBaseNameListModel>
......
package com.yeejoin.amos.api.tool.controller;
import com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel;
import com.yeejoin.amos.api.tool.face.service.DataBaseLinkService;
import com.yeejoin.amos.api.tool.face.service.RelationService;
import io.swagger.annotations.Api;
......@@ -13,10 +12,6 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import javax.xml.crypto.Data;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
@CrossOrigin
......@@ -37,12 +32,12 @@ public class RelationResource {
* @return String
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@DeleteMapping(value = "/relation/{agencyCodeId}/{sequenceNbrs}")
@DeleteMapping(value = "/relation/{agencyCode}/{sequenceNbrs}")
@ApiOperation(httpMethod = "DELETE", value = "机构删除", notes = "机构删除")
public ResponseModel<String> deleteDataBase(
@PathVariable Long agencyCodeId,
@PathVariable String agencyCode,
@PathVariable String sequenceNbrs) throws Exception {
relationService.deleteAgency(agencyCodeId, sequenceNbrs);
relationService.deleteAgency(agencyCode, sequenceNbrs);
return ResponseHelper.buildResponse("The data has been deleted !");
}
......@@ -52,14 +47,14 @@ public class RelationResource {
* @return String
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/output/{agencyCodeId}/{sequenceNbrs}")
@GetMapping(value = "/output/{agencyCode}/{sequenceNbrs}")
@ApiOperation(httpMethod = "GET", value = "导出", notes = "导出")
public ResponseModel<String> genereteSQL(
@PathVariable Long agencyCodeId,
public ResponseModel<String> generateSQL(
@PathVariable String agencyCode,
@PathVariable String sequenceNbrs,
HttpServletResponse response) throws Exception {
relationService.outputAgency(agencyCodeId, sequenceNbrs,response);
relationService.outputAgency(agencyCode, sequenceNbrs,response);
return ResponseHelper.buildResponse("yes");
}
}
\ No newline at end of file
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.api.tool.face.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.typroject.tyboot.core.rdbms.model.BaseModel;
......@@ -10,9 +11,8 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel;
* @author r
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "DataBaseLinkModel", description = "")
public class AgencyTreeModel extends BaseModel {
@ApiModel(value = "AgencyModel", description = "")
public class AgencyModel {
@ApiModelProperty(value = "机构名称")
private String agencyName;
......
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.api.tool.face.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
......@@ -10,6 +11,7 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel;
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "DataBaseNameListModel", description = "")
public class DataBaseNameListModel extends BaseModel {
......@@ -17,6 +19,6 @@ public class DataBaseNameListModel extends BaseModel {
private String dbName;
@ApiModelProperty(value = "连接id")
private String parentId;
private Long parentId;
}
package com.yeejoin.amos.api.tool.face.orm.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.AgencyTree;
/**
* Mapper 接口
*
* @author r
*/
public interface AgencyTreeMapper extends BaseMapper<AgencyTree> {
}
package com.yeejoin.amos.api.tool.face.orm.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author r
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("privilege_agency")
public class AgencyTree extends BaseEntity {
/**
*机构名称
*/
@TableField("AGENCY_NAME")
private String agencyName;
/**
*机构编码
*/
@TableField("AGENCY_CODE")
private String agencyCode;
/**
*机构描述
*/
@TableField("AGENCY_DESC")
private String agencyDesc;
}
......@@ -22,31 +22,31 @@ public class DataBaseLink extends BaseEntity {
/**
*主机IP
*/
@TableField("ip")
@TableField("IP")
private String ip;
/**
*端口
*/
@TableField("port")
@TableField("PORT")
private String port;
/**
*数据库名
*/
@TableField("dbName")
@TableField("DATABASE_NAME")
private String dbName;
/**
*用户名
*/
@TableField("userName")
@TableField("USER_NAME")
private String userName;
/**
*密码
*/
@TableField("passWord")
@TableField("PASSWORD")
private String passWord;
}
......@@ -16,12 +16,12 @@ public class DataBaseNameList extends BaseEntity {
/**
* 数据库名
*/
@TableField("dbName")
@TableField("DATABASE_NAME")
private String dbName;
/**
* 连接id
*/
@TableField("parentId")
@TableField("PARENT_ID")
private Long parentId;
}
package com.yeejoin.amos.api.tool.face.service;
import com.yeejoin.amos.api.tool.face.model.AgencyTreeModel;
import com.yeejoin.amos.api.tool.face.orm.dao.AgencyTreeMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.AgencyTree;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.List;
/**
* 服务实现类
*
* @author r
*/
@Service
public class AgencyTreeService extends BaseService<AgencyTreeModel, AgencyTree, AgencyTreeMapper> {
/**
* 列表查询
*/
public List<AgencyTreeModel> queryForAgencyTreeList() {
return this.queryForList("" , false);
}
public String queryForAgencyCodeById(Long id){
return queryBySeq(id).getAgencyCode();
}
}
package com.yeejoin.amos.api.tool.face.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.AgencyModel;
import com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel;
import com.yeejoin.amos.api.tool.face.model.TemplateModel;
import com.yeejoin.amos.api.tool.face.orm.dao.DataBaseLinkMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.DataBaseLink;
import com.yeejoin.amos.api.tool.utils.AESUtils;
import com.yeejoin.amos.api.tool.utils.TableUtils;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 服务实现类
......@@ -19,11 +26,45 @@ import java.util.List;
@Service
public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBaseLink, DataBaseLinkMapper> {
/**
* 分页查询
* 新增
*/
public Page<DataBaseLinkModel> queryForDataBasePage(Page<DataBaseLinkModel> page) {
return this.queryForPage(page, null, false);
public DataBaseLinkModel save(DataBaseLinkModel dataBaseLinkModel) throws Exception {
DataBaseLinkModel model = this.encryptPwd(dataBaseLinkModel);
if (this.testConnection(model)) {
return this.createWithModel(model);
} else {
return new DataBaseLinkModel();
}
}
/**
* 机构分页查询
*/
public Page<AgencyModel> queryForAgencyPage(Page<AgencyModel> page, Long ipSeq) throws SQLException {
Connection connection = this.connectNewDatabase(this.queryBySeq(ipSeq));
List<Map<String, Object>> maps =
TableUtils.getMaps("SELECT AGENCY_NAME, AGENCY_CODE, AGENCY_DESC FROM privilege_agency;", connection);
connection.close();
List<AgencyModel> records = new ArrayList<>();
for (Map<String, Object> map : maps) {
AgencyModel model = new AgencyModel();
model.setAgencyName(map.get("AGENCY_NAME").toString());
model.setAgencyCode(map.get("AGENCY_CODE").toString());
if ((map.get("AGENCY_DESC") != null))
model.setAgencyDesc(map.get("AGENCY_DESC").toString());
records.add(model);
}
Page<AgencyModel> entiryPage = new Page(page.getCurrent(), page.getSize());
if (!ValidationUtil.isEmpty(records)) {
page.setTotal(records.size());
page.setPages(entiryPage.getPages());
page.setCurrent(entiryPage.getCurrent());
page.setSize(entiryPage.getSize());
page.setRecords(records);
}
return page;
}
/**
......@@ -58,8 +99,7 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase
String dbUrl = "jdbc:mysql://" + model.getIp() + ":" + model.getPort() + "/" + model.getDbName();
// 解密pwd,并连接
return DriverManager.getConnection(dbUrl, model.getUserName(), AESUtils.decrypt(model.getPassWord()));
}
catch (SQLException | ClassNotFoundException e){
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
throw new RuntimeException(e);
......@@ -70,17 +110,16 @@ public class DataBaseLinkService extends BaseService<DataBaseLinkModel, DataBase
/**
* 测试连接数据库
*/
public void testConnection(DataBaseLinkModel model) throws Exception {
Connection connection = this.connectNewDatabase(this.encryptPwd(model));
try{
if(connection != null){
public boolean testConnection(DataBaseLinkModel model) throws Exception {
Connection connection = this.connectNewDatabase(model);
if (connection != null) {
connection.close();
return true;
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
return false;
}
/**
* 加密model里的密码
*/
......
......@@ -31,27 +31,25 @@ public class DataBaseNameListService extends BaseService<DataBaseNameListModel,
/**
* 初始化数据库名表
*/
public List<DataBaseNameListModel> refreshDataBase(Long ipSeq) throws Exception {
DataBaseLinkModel dataBaseLinkModel = dataBaseLinkService.encryptPwd(dataBaseLinkService.queryBySeq(ipSeq));
public List<String> refreshDataBase(Long ipSeq) throws Exception {
DataBaseLinkModel dataBaseLinkModel = dataBaseLinkService.queryBySeq(ipSeq);
//清空表单
this.remove(new QueryWrapper<DataBaseNameList>().eq("patentId",ipSeq));
this.remove(new QueryWrapper<DataBaseNameList>().eq("PARENT_ID", ipSeq));
//连接数据库
Connection connection = dataBaseLinkService.connectNewDatabase(dataBaseLinkModel);
if (connection == null)
return null;
List<DataBaseNameListModel> models = new ArrayList<>();
List<String> strings = 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);
DataBaseNameListModel model = new DataBaseNameListModel(name, ipSeq);
strings.add(name);
dataBaseNameLists.add(this.prepareEntity(model));
}
this.saveBatch(dataBaseNameLists);
connection.close();
return models;
return strings;
}
}
......@@ -39,8 +39,6 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
@Autowired
private DataBaseLinkService dataBaseLinkService;
@Autowired
private AgencyTreeService agencyTreeService;
@Autowired
JdbcTemplate jdbcTemplate;
@Autowired
StudioResourceService studioResourceService;
......@@ -48,24 +46,24 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
/**
* 根据机构删除
*/
public void deleteAgency(Long agencyCodeId, String sequenceNbrs) throws Exception {
public void deleteAgency(String agencyCode, String sequenceNbrs) throws Exception {
for (Long seq : (Long[]) ConvertUtils.convert(StringUtil.string2Array(sequenceNbrs), Long.class)) {
DataBaseLinkModel model = dataBaseLinkService.queryBySeq(seq);
Connection connection = dataBaseLinkService.connectNewDatabase(model);
this.deleteDataBase(
connection, agencyTreeService.queryForAgencyCodeById(agencyCodeId), model.getDbName());
connection, agencyCode, model.getDbName());
}
}
/**
* 导出机构
*/
public void outputAgency(Long agencyCodeId, String sequenceNbrs, HttpServletResponse response) throws Exception {
public void outputAgency(String agencyCode, String sequenceNbrs, HttpServletResponse response) throws Exception {
for (Long seq : (Long[]) ConvertUtils.convert(StringUtil.string2Array(sequenceNbrs), Long.class)) {
DataBaseLinkModel model = dataBaseLinkService.queryBySeq(seq);
Connection connection = dataBaseLinkService.connectNewDatabase(model);
this.insertData(
connection, agencyTreeService.queryForAgencyCodeById(agencyCodeId), model.getDbName(), response);
connection, agencyCode, model.getDbName(), response);
}
}
......@@ -114,8 +112,7 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
public List<HashMap<String, String>> queryRelation(String dbName) throws SQLException {
StringBuilder sql = new StringBuilder("SELECT * FROM ");
sql.append(dbName).append("_relation;");
List<HashMap<String, String>> maps = relationMapper.getPublicItems(sql.toString());
return maps;
return relationMapper.getPublicItems(sql.toString());
}
/**
......
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