Commit 6b31dc60 authored by 赵啸非's avatar 赵啸非

添加前端解压

parent 05601421
......@@ -10,9 +10,15 @@ import java.util.Map;
* @date: 2024/9/14 14:21
*/
public enum ProductDisEnum {
网关服务("smart-gateway", "gateway-platform"),
基础服务("base-manager", "base-platform"),
网关服务("smart-gateway", "gateway-gateway"),
基础服务("base-manager", "base-manager"),
基础服务前端("base-manager-ui", "base-manager-ui"),
门户服务("portal-manager", "portal-platform"),
门户服务前端("portal-manager-ui", "portal-manager-ui"),
设备管理服务("device-manager", "device-platform"),
设备管理服务前端("device-manager-ui", "device-manager-ui"),
日志管理服务("log-manager", "log-manager"),
日志管理服务前端("log-manager-ui", "log-manager-ui"),
样表服务("sample-form-manager", "sample-form-manager"),
样表前端("sample-form-manager-ui", "sample-form-manager-ui"),
......
package com.mortals.xhx.daemon.task;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ITask;
import com.mortals.framework.service.ITaskExcuteService;
import com.mortals.xhx.base.system.user.service.UserService;
import com.mortals.xhx.common.code.ProjectTypeEnum;
import com.mortals.xhx.module.setup.model.SetupProjectEntity;
import com.mortals.xhx.module.setup.service.SetupProjectService;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 检测项目运行状态
*/
@Slf4j
@Service("CheckProjectStatusTask")
public class CheckProjectStatusTaskImpl implements ITaskExcuteService {
@Autowired
private SetupProjectService setupProjectService;
@Override
public void excuteTask(ITask task) throws AppException {
log.info("检测项目运行状态任务");
List<SetupProjectEntity> setupProjectEntities = setupProjectService.find(new SetupProjectEntity());
for (SetupProjectEntity setupProjectEntity : setupProjectEntities) {
if (ProjectTypeEnum.后端.getValue() == setupProjectEntity.getProjectType()) {
//todo
} else if (ProjectTypeEnum.前端.getValue() == setupProjectEntity.getProjectType()) {
//todo
}
}
}
@Override
public void stopTask(ITask task) throws AppException {
}
}
......@@ -20,6 +20,8 @@ public interface SetupProjectService extends ICRUDService<SetupProjectEntity,Lon
Rest<String> distribute(SetupProjectEntity setupProjectEntity, Context context);
Rest<String> distributeInit(SetupProjectEntity setupProjectEntity, Context context);
Rest<String> appDeploy(SetupProjectEntity setupProjectEntity, Context context);
......
......@@ -21,6 +21,7 @@ import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.utils.ZipUtils;
import com.mortals.xhx.module.setup.mode.DbSetupEntity;
import com.mortals.xhx.module.setup.mode.SiteEntity;
import com.mortals.xhx.module.setup.model.SetupProjectQuery;
import com.mortals.xhx.module.setup.service.SetupDbService;
import org.apache.commons.compress.compressors.CompressorInputStream;
import org.codehaus.plexus.archiver.tar.TarGZipUnArchiver;
......@@ -194,6 +195,8 @@ public class SetupProjectServiceImpl extends AbstractCRUDServiceImpl<SetupProjec
throw new AppException("请上传项目工程资源文件!");
}
setupProjectEntity.setProjectStatus(ProjectStatusEnum.已部署.getValue());
this.update(setupProjectEntity);
} else if (ProjectTypeEnum.资源.getValue() == setupProjectEntity.getProjectType()) {
//TODO: 资源逻辑
......@@ -206,6 +209,83 @@ public class SetupProjectServiceImpl extends AbstractCRUDServiceImpl<SetupProjec
return Rest.ok();
}
@Override
public Rest<String> distributeInit(SetupProjectEntity setupProjectEntity, Context context) {
//1检测文件是否已经上传
String projectPath = this.publishPath + "/temp/project/";
boolean exist = FileUtil.exist(projectPath);
if (!exist) throw new AppException("请先上传项目工程文件!");
//2.部署并启动项目 包括网关,基础服务,门户服务,设备管理系统,前端,后端资源等等
buildGateWay(context);
buildBaseManager(context);
buildBaseManagerUi(context);
buildPortalManager(context);
buildPortalManagerUi(context);
buildDeviceManager(context);
buildDeviceManagerUi(context);
buildLogManager(context);
buildLogManagerUi(context);
return Rest.ok();
}
private void buildGateWay(Context context) {
log.info("开始部署网关服务");
SetupProjectEntity setupProject = this.selectOne(new SetupProjectQuery().projectCode(ProductDisEnum.网关服务.getValue()));
this.distribute(setupProject, context);
}
private void buildBaseManager(Context context) {
log.info("开始部署基础服务");
SetupProjectEntity setupProject = this.selectOne(new SetupProjectQuery().projectCode(ProductDisEnum.基础服务.getValue()));
this.distribute(setupProject, context);
}
private void buildBaseManagerUi(Context context) {
log.info("开始部署基础服务前端");
SetupProjectEntity setupProject = this.selectOne(new SetupProjectQuery().projectCode(ProductDisEnum.基础服务前端.getValue()));
this.distribute(setupProject, context);
}
private void buildPortalManager(Context context) {
log.info("开始部署门户服务");
SetupProjectEntity setupProject = this.selectOne(new SetupProjectQuery().projectCode(ProductDisEnum.门户服务.getValue()));
this.distribute(setupProject, context);
}
private void buildPortalManagerUi(Context context) {
log.info("开始部署门户服务前端");
SetupProjectEntity setupProject = this.selectOne(new SetupProjectQuery().projectCode(ProductDisEnum.门户服务前端.getValue()));
this.distribute(setupProject, context);
}
private void buildDeviceManager(Context context) {
log.info("开始部署设备管理服务");
SetupProjectEntity setupProject = this.selectOne(new SetupProjectQuery().projectCode(ProductDisEnum.设备管理服务.getValue()));
this.distribute(setupProject, context);
}
private void buildDeviceManagerUi(Context context) {
log.info("开始部署设备管理服务前端");
SetupProjectEntity setupProject = this.selectOne(new SetupProjectQuery().projectCode(ProductDisEnum.设备管理服务前端.getValue()));
this.distribute(setupProject, context);
}
private void buildLogManager(Context context) {
log.info("开始部署设备管理服务");
SetupProjectEntity setupProject = this.selectOne(new SetupProjectQuery().projectCode(ProductDisEnum.设备管理服务.getValue()));
this.distribute(setupProject, context);
}
private void buildLogManagerUi(Context context) {
log.info("开始部署设备管理服务前端");
SetupProjectEntity setupProject = this.selectOne(new SetupProjectQuery().projectCode(ProductDisEnum.设备管理服务前端.getValue()));
this.distribute(setupProject, context);
}
@Override
public Rest<String> appDeploy(SetupProjectEntity setupProjectEntity, Context context) {
......
package com.mortals.xhx.module.setup.web;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
......@@ -10,6 +11,7 @@ import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.OrderCol;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.common.code.ProductDisEnum;
import com.mortals.xhx.common.code.ProjectStatusEnum;
import com.mortals.xhx.common.code.ProjectTypeEnum;
import com.mortals.xhx.common.code.YesNoEnum;
......@@ -17,6 +19,7 @@ import com.mortals.xhx.module.setup.mode.DbSetupEntity;
import com.mortals.xhx.module.setup.mode.ProjectSetupEntity;
import com.mortals.xhx.module.setup.mode.SiteEntity;
import com.mortals.xhx.module.setup.model.SetupProjectEntity;
import com.mortals.xhx.module.setup.model.SetupProjectQuery;
import com.mortals.xhx.module.setup.service.SetupDbService;
import com.mortals.xhx.module.setup.service.SetupProjectService;
import io.swagger.annotations.ApiOperation;
......@@ -96,6 +99,26 @@ public class SetupProjectController extends BaseCRUDJsonBodyMappingController<Se
}
/**
* 部署
*/
@ApiOperation(value = "项目初始部署", notes = "部署")
@PostMapping(value = "init")
public Rest<Void> init(@RequestBody SetupProjectEntity setupProjectEntity) {
String busiDesc = this.getModuleDesc() + "设备模块部署";
Rest<Void> rest = Rest.ok(busiDesc + " 【成功】");
try {
this.service.distributeInit(setupProjectEntity, getContext());
recordSysLog(request, busiDesc + " 【成功】");
} catch (Exception e) {
log.error("项目部署", e);
rest = Rest.fail(super.convertException(e));
}
return rest;
}
@PostMapping("/dbConnect")
@UnAuth
public String connect(@RequestBody SetupProjectEntity setupProjectEntity) {
......@@ -371,6 +394,34 @@ public class SetupProjectController extends BaseCRUDJsonBodyMappingController<Se
}
/**
* 检测是否初始安装,是否已经安装了base-manager,如果没有则进入引导界面进行安装
*
* @return
*/
@GetMapping("/check")
@UnAuth
public Rest<Boolean> check() {
Boolean bool = false;
try {
//todo 检测是否初始安装,是否已经安装了base-manager,如果没有则进入引导界面进行安装
SetupProjectQuery setupProjectQuery = new SetupProjectQuery();
setupProjectQuery.setProjectCode(ProductDisEnum.基础服务.getValue());
SetupProjectEntity setupProjectEntity = this.service.selectOne(setupProjectQuery);
if(ObjectUtils.isEmpty(setupProjectEntity)) throw new AppException("基础服务不存在");
if(setupProjectEntity.getProjectStatus()>ProjectStatusEnum.未部署.getValue()){
bool=true;
return Rest.ok("项目工程已部署", bool);
}
return Rest.ok("项目工程未部署,进入引导界面", bool);
} catch (Exception e) {
log.error("检测异常", e);
return Rest.fail(e.getMessage());
}
}
public static void main(String[] args) {
System.out.println(FileUtil.isDirectory("E://pic"));
......
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