Commit 7b11e81f authored by zhanghouying's avatar zhanghouying
Browse files

添加运维系统

parent f81b4fd3
package me.zhengjie.modules.mnt.service;
import me.zhengjie.modules.mnt.domain.App;
import me.zhengjie.modules.mnt.service.dto.AppDTO;
import me.zhengjie.modules.mnt.service.dto.AppQueryCriteria;
import org.springframework.data.domain.Pageable;
/**
* @author zhanghouying
* @date 2019-08-24
*/
public interface AppService {
/**
* queryAll 分页
* @param criteria
* @param pageable
* @return
*/
Object queryAll(AppQueryCriteria criteria, Pageable pageable);
/**
* queryAll 不分页
* @param criteria
* @return
*/
public Object queryAll(AppQueryCriteria criteria);
/**
* findById
* @param id
* @return
*/
AppDTO findById(String id);
/**
* create
* @param resources
* @return
*/
AppDTO create(App resources);
/**
* update
* @param resources
*/
void update(App resources);
/**
* delete
* @param id
*/
void delete(String id);
}
package me.zhengjie.modules.mnt.service;
import me.zhengjie.modules.mnt.domain.Database;
import me.zhengjie.modules.mnt.service.dto.DatabaseDTO;
import me.zhengjie.modules.mnt.service.dto.DatabaseQueryCriteria;
import org.springframework.data.domain.Pageable;
/**
* @author: ZhangHouYing
* @date 2019-08-24
*/
public interface DatabaseService {
/**
* queryAll 分页
* @param criteria
* @param pageable
* @return
*/
Object queryAll(DatabaseQueryCriteria criteria, Pageable pageable);
/**
* queryAll 不分页
* @param criteria
* @return
*/
public Object queryAll(DatabaseQueryCriteria criteria);
/**
* findById
* @param id
* @return
*/
DatabaseDTO findById(String id);
/**
* create
* @param resources
* @return
*/
DatabaseDTO create(Database resources);
/**
* update
* @param resources
*/
void update(Database resources);
/**
* delete
* @param id
*/
void delete(String id);
}
package me.zhengjie.modules.mnt.service;
import me.zhengjie.modules.mnt.domain.DeployHistory;
import me.zhengjie.modules.mnt.service.dto.DeployHistoryDTO;
import me.zhengjie.modules.mnt.service.dto.DeployHistoryQueryCriteria;
import org.springframework.data.domain.Pageable;
/**
*
* @author: ZhangHouYing
* @date 2019-08-24
*/
public interface DeployHistoryService {
/**
* queryAll 分页
* @param criteria
* @param pageable
* @return
*/
Object queryAll(DeployHistoryQueryCriteria criteria, Pageable pageable);
/**
* queryAll 不分页
* @param criteria
* @return
*/
public Object queryAll(DeployHistoryQueryCriteria criteria);
/**
* findById
* @param id
* @return
*/
DeployHistoryDTO findById(String id);
/**
* create
* @param resources
* @return
*/
DeployHistoryDTO create(DeployHistory resources);
/**
* update
* @param resources
*/
void update(DeployHistory resources);
/**
* delete
* @param id
*/
void delete(String id);
}
package me.zhengjie.modules.mnt.service;
import me.zhengjie.modules.mnt.domain.Deploy;
import me.zhengjie.modules.mnt.domain.DeployHistory;
import me.zhengjie.modules.mnt.service.dto.DeployDTO;
import me.zhengjie.modules.mnt.service.dto.DeployQueryCriteria;
import org.springframework.data.domain.Pageable;
/**
* @author zhanghouying
* @date 2019-08-24
*/
public interface DeployService {
/**
* queryAll 分页
* @param criteria
* @param pageable
* @return
*/
Object queryAll(DeployQueryCriteria criteria, Pageable pageable);
/**
* queryAll 不分页
* @param criteria
* @return
*/
public Object queryAll(DeployQueryCriteria criteria);
/**
* findById
* @param id
* @return
*/
DeployDTO findById(String id);
/**
* create
* @CacheEvict(allEntries = true)
* @param resources
* @return
*/
DeployDTO create(Deploy resources);
/**
* update
* @CacheEvict(allEntries = true)
* @param resources
*/
void update(Deploy resources);
/**
* delete
* @CacheEvict(allEntries = true)
* @param id
*/
void delete(String id);
/**
* 部署文件到服务器
* @param fileSavePath
* @param appId
* @return
*/
public String deploy(String fileSavePath, String appId);
/**
* 查询部署状态
* @param resources
* @return
*/
public String serverStatus(Deploy resources);
/**
* 启动服务
* @param resources
* @return
*/
public String startServer(Deploy resources);
/**
* 停止服务
* @param resources
* @return
*/
public String stopServer(Deploy resources);
/**
* 停止服务
* @param resources
* @return
*/
public String serverReduction(DeployHistory resources);
}
package me.zhengjie.modules.mnt.service;
import me.zhengjie.modules.mnt.domain.ServerAccount;
import me.zhengjie.modules.mnt.service.dto.ServerAccountDTO;
import me.zhengjie.modules.mnt.service.dto.ServerAccountQueryCriteria;
import org.springframework.data.domain.Pageable;
/**
* @author zhanghouying
* @date 2019-08-24
*/
public interface ServerAccountService {
/**
* queryAll 分页
* @param criteria
* @param pageable
* @return
*/
Object queryAll(ServerAccountQueryCriteria criteria, Pageable pageable);
/**
* queryAll 不分页
* @param criteria
* @return
*/
public Object queryAll(ServerAccountQueryCriteria criteria);
/**
* findById
* @param id
* @return
*/
ServerAccountDTO findById(String id);
/**
* create
* @param resources
* @return
*/
ServerAccountDTO create(ServerAccount resources);
/**
* update
* @param resources
*/
void update(ServerAccount resources);
/**
* delete
* @param id
*/
void delete(String id);
}
package me.zhengjie.modules.mnt.service;
import me.zhengjie.modules.mnt.domain.ServerDeploy;
import me.zhengjie.modules.mnt.service.dto.ServerDeployDTO;
import me.zhengjie.modules.mnt.service.dto.ServerDeployQueryCriteria;
import org.springframework.data.domain.Pageable;
/**
* @author zhanghouying
* @date 2019-08-24
*/
public interface ServerDeployService {
/**
* queryAll 分页
* @param criteria
* @param pageable
* @return
*/
Object queryAll(ServerDeployQueryCriteria criteria, Pageable pageable);
/**
* queryAll 不分页
* @param criteria
* @return
*/
public Object queryAll(ServerDeployQueryCriteria criteria);
/**
* findById
* @param id
* @return
*/
ServerDeployDTO findById(String id);
/**
* create
* @param resources
* @return
*/
ServerDeployDTO create(ServerDeploy resources);
/**
* update
* @param resources
*/
void update(ServerDeploy resources);
/**
* delete
* @param id
*/
void delete(String id);
}
package me.zhengjie.modules.mnt.service.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class AppDTO implements Serializable {
/**
* 应用编号
*/
private String id;
/**
* 应用名称
*/
private String name;
/**
* 端口
*/
private int port;
/**
* 上传目录
*/
private String uploadPath;
/**
* 部署目录
*/
private String deployPath;
/**
* 备份目录
*/
private String backupPath;
/**
* 启动脚本
*/
private String startScript;
/**
* 部署脚本
*/
private String deployScript;
}
package me.zhengjie.modules.mnt.service.dto;
import lombok.Data;
import me.zhengjie.annotation.Query;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class AppQueryCriteria{
/**
* 模糊
*/
@Query(type = Query.Type.INNER_LIKE)
private String name;
}
package me.zhengjie.modules.mnt.service.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class DatabaseDTO implements Serializable {
/**
* id
*/
private String id;
/**
* 数据库名称
*/
private String name;
/**
* 数据库连接地址
*/
private String jdbcUrl;
/**
* 数据库密码
*/
private String pwd;
/**
* 用户名
*/
private String userName;
}
package me.zhengjie.modules.mnt.service.dto;
import lombok.Data;
import me.zhengjie.annotation.Query;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class DatabaseQueryCriteria{
/**
* 模糊
*/
@Query(type = Query.Type.INNER_LIKE)
private String name;
/**
* 精确
*/
@Query
private String jdbcUrl;
}
package me.zhengjie.modules.mnt.service.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class DeployDTO implements Serializable {
/**
* 部署编号
*/
private String id;
/**
* 应用编号
*/
private String appId;
/**
* IP列表
*/
private String ip;
/**
* 服务状态
*/
private String status;
}
package me.zhengjie.modules.mnt.service.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class DeployHistoryDTO implements Serializable {
/**
* 编号
*/
private String id;
/**
* 应用名称
*/
private String appName;
/**
* 部署IP
*/
private String ip;
/**
* 部署时间
*/
private String deployDate;
/**
* 部署人员
*/
private String deployUser;
/**
* 部署编号
*/
private String deployId;
}
package me.zhengjie.modules.mnt.service.dto;
import lombok.Data;
import me.zhengjie.annotation.Query;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class DeployHistoryQueryCriteria{
/**
* 精确
*/
@Query
private String deployId;
/**
* 模糊
*/
@Query(type = Query.Type.INNER_LIKE)
private String deployDate;
}
package me.zhengjie.modules.mnt.service.dto;
import lombok.Data;
import me.zhengjie.annotation.Query;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class DeployQueryCriteria{
/**
* 模糊
*/
@Query(type = Query.Type.EQUAL)
private String appId;
/**
* 模糊
*/
@Query(type = Query.Type.INNER_LIKE)
private String ip;
}
package me.zhengjie.modules.mnt.service.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class ServerAccountDTO implements Serializable {
/**
* 编号
*/
private String id;
/**
* 名称
*/
private String name;
/**
* 账号
*/
private String account;
/**
* 密码
*/
private String password;
}
package me.zhengjie.modules.mnt.service.dto;
import lombok.Data;
import me.zhengjie.annotation.Query;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class ServerAccountQueryCriteria{
/**
* 模糊
*/
@Query(type = Query.Type.INNER_LIKE)
private String name;
/**
* 模糊
*/
@Query(type = Query.Type.INNER_LIKE)
private String account;
}
package me.zhengjie.modules.mnt.service.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class ServerDeployDTO implements Serializable {
/**
* 服务器IP
*/
private String id;
/**
* 服务器账号
*/
private String accountId;
}
package me.zhengjie.modules.mnt.service.dto;
import lombok.Data;
import me.zhengjie.annotation.Query;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class ServerDeployQueryCriteria{
/**
* 模糊
*/
@Query(type = Query.Type.INNER_LIKE)
private String id;
}
package me.zhengjie.modules.mnt.service.impl;
import cn.hutool.core.util.IdUtil;
import me.zhengjie.modules.mnt.domain.App;
import me.zhengjie.modules.mnt.repository.AppRepository;
import me.zhengjie.modules.mnt.service.AppService;
import me.zhengjie.modules.mnt.service.dto.AppDTO;
import me.zhengjie.modules.mnt.service.dto.AppQueryCriteria;
import me.zhengjie.modules.mnt.service.mapper.AppMapper;
import me.zhengjie.utils.PageUtil;
import me.zhengjie.utils.QueryHelp;
import me.zhengjie.utils.ValidationUtil;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.Optional;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class AppServiceImpl implements AppService {
private AppRepository appRepository;
private AppMapper appMapper;
public AppServiceImpl(AppRepository appRepository, AppMapper appMapper) {
this.appMapper = appMapper;
this.appRepository = appRepository;
}
@Override
public Object queryAll(AppQueryCriteria criteria, Pageable pageable){
Page<App> page = appRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
return PageUtil.toPage(page.map(appMapper::toDto));
}
@Override
public Object queryAll(AppQueryCriteria criteria){
return appMapper.toDto(appRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
}
@Override
public AppDTO findById(String id) {
Optional<App> app = appRepository.findById(id);
ValidationUtil.isNull(app,"App","id",id);
return appMapper.toDto(app.get());
}
@Override
@Transactional(rollbackFor = Exception.class)
public AppDTO create(App resources) {
resources.setId(IdUtil.fastUUID());
return appMapper.toDto(appRepository.save(resources));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(App resources) {
Optional<App> optionalApp = appRepository.findById(resources.getId());
ValidationUtil.isNull( optionalApp,"App","id",resources.getId());
App App = optionalApp.get();
App.copy(resources);
appRepository.save(App);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String id) {
appRepository.deleteById(id);
}
}
package me.zhengjie.modules.mnt.service.impl;
import cn.hutool.core.util.IdUtil;
import me.zhengjie.modules.mnt.domain.Database;
import me.zhengjie.modules.mnt.repository.DatabaseRepository;
import me.zhengjie.modules.mnt.service.DatabaseService;
import me.zhengjie.modules.mnt.service.dto.DatabaseDTO;
import me.zhengjie.modules.mnt.service.dto.DatabaseQueryCriteria;
import me.zhengjie.modules.mnt.service.mapper.DatabaseMapper;
import me.zhengjie.utils.PageUtil;
import me.zhengjie.utils.QueryHelp;
import me.zhengjie.utils.ValidationUtil;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.Optional;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class DatabaseServiceImpl implements DatabaseService {
private DatabaseRepository databaseRepository;
private DatabaseMapper databaseMapper;
public DatabaseServiceImpl(DatabaseRepository databaseRepository,DatabaseMapper databaseMapper){
this.databaseMapper = databaseMapper;
this.databaseRepository = databaseRepository;
}
@Override
public Object queryAll(DatabaseQueryCriteria criteria, Pageable pageable){
Page<Database> page = databaseRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
return PageUtil.toPage(page.map(databaseMapper::toDto));
}
@Override
public Object queryAll(DatabaseQueryCriteria criteria){
return databaseMapper.toDto(databaseRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
}
@Override
public DatabaseDTO findById(String id) {
Optional<Database> database = databaseRepository.findById(id);
ValidationUtil.isNull(database,"Database","id",id);
return databaseMapper.toDto(database.get());
}
@Override
@Transactional(rollbackFor = Exception.class)
public DatabaseDTO create(Database resources) {
resources.setId(IdUtil.simpleUUID());
return databaseMapper.toDto(databaseRepository.save(resources));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(Database resources) {
Optional<Database> optionalDatabase = databaseRepository.findById(resources.getId());
ValidationUtil.isNull( optionalDatabase,"Database","id",resources.getId());
Database database = optionalDatabase.get();
database.copy(resources);
databaseRepository.save(database);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String id) {
databaseRepository.deleteById(id);
}
}
Supports Markdown
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