|
@@ -13,6 +13,8 @@ import org.jeecg.modules.adweb.common.service.FeishuService;
|
|
|
import org.jeecg.modules.adweb.common.service.ShellService;
|
|
|
import org.jeecg.modules.adweb.common.service.WebSocketService;
|
|
|
import org.jeecg.modules.adweb.common.util.ShellSSH2Util;
|
|
|
+import org.jeecg.modules.adweb.server.entity.AdwebServer;
|
|
|
+import org.jeecg.modules.adweb.server.service.IAdwebServerService;
|
|
|
import org.jeecg.modules.adweb.site.constant.WordPressConstants;
|
|
|
import org.jeecg.modules.adweb.site.entity.AdwebSite;
|
|
|
import org.jeecg.modules.adweb.system.entity.SysException;
|
|
@@ -50,12 +52,8 @@ public class SelfWebSiteService {
|
|
|
@Resource
|
|
|
private WebSocketService webSocketService;
|
|
|
|
|
|
-
|
|
|
- @Value(value = "${jeecg.minio.dataPrefix}")
|
|
|
- private String dataPrefix;
|
|
|
-
|
|
|
- @Value(value = "${jeecg.minio_us.dataPrefix}")
|
|
|
- private String usDataPrefix;
|
|
|
+ @Resource
|
|
|
+ private IAdwebServerService serverService;
|
|
|
|
|
|
@Value("${AdwebSiteConnect.host}")
|
|
|
private String host;
|
|
@@ -232,24 +230,25 @@ public class SelfWebSiteService {
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * 发布站点(生产环境)
|
|
|
+ * 发布站点到生产环境
|
|
|
*
|
|
|
- * @param domain 新域名
|
|
|
- * @param siteId 站点ID
|
|
|
+ * @param request HTTP请求对象,用于获取会话信息
|
|
|
+ * @param serverId 服务器ID,未在方法体内使用
|
|
|
+ * @param domain 域名,用于站点发布
|
|
|
+ * @param siteCode 站点代码,标识特定的站点
|
|
|
*/
|
|
|
- public Result<?> releaseSite(HttpServletRequest request, String domain, Integer siteId) {
|
|
|
- log.info("===== releaseSite domain:{},siteId:{} ====", domain, siteId);
|
|
|
+ @Async
|
|
|
+ public void releaseSite(HttpServletRequest request, String serverId, String domain, String siteCode) {
|
|
|
+ log.info("===== releaseSite domain:{},siteCode:{} ====", domain, siteCode);
|
|
|
StringBuilder statusSuccess = new StringBuilder();
|
|
|
StringBuilder statusFail = new StringBuilder();
|
|
|
- AdwebSite adwebSite = siteService.getById(siteId);
|
|
|
+ AdwebSite adwebSite = siteService.getSiteByCode(siteCode);
|
|
|
HttpSession session = request.getSession();
|
|
|
+ AdwebServer adwebServer = serverService.getById(serverId);
|
|
|
|
|
|
- if (StringUtils.isEmpty(adwebSite.getDevServerIp())) {
|
|
|
- return Result.error("该站点的服务器IP没有设置,请设置后在发布上线!");
|
|
|
- }
|
|
|
- log.info("===== releaseSite domain:{},siteId:{},getDevServerIp:{} ====", domain, siteId, adwebSite.getDevServerIp());
|
|
|
- if ((!WordPressConstants.DEV_CI1.equals(adwebSite.getDevServerIp())) && (!WordPressConstants.DEV_CI2.equals(adwebSite.getDevServerIp()))) {
|
|
|
- return Result.error("该站点的服务器IP设置不正确,请重试!");
|
|
|
+ if (adwebServer == null) {
|
|
|
+ log.error("发布生产环境时未指定服务器");
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
String usWest118ServerShellPath = "/home/ci-user/shell";
|
|
@@ -261,7 +260,7 @@ public class SelfWebSiteService {
|
|
|
domain = domain.replace("www.", "");
|
|
|
}
|
|
|
String dbName = domain.replaceAll("[^a-zA-Z0-9]", "") + "_" + adwebSite.getCode();
|
|
|
- log.info("===== releaseSite domain:{},siteId:{},originDomain:{},domain:{},dbName:{} ====", domain, siteId, originDomain, domain, dbName);
|
|
|
+ log.info("===== releaseSite domain:{},siteCode:{},originDomain:{},domain:{},dbName:{} ====", domain, siteCode, originDomain, domain, dbName);
|
|
|
|
|
|
String cmd = "";
|
|
|
if (WordPressConstants.DEV_CI1.equals(adwebSite.getDevServerIp())) {
|
|
@@ -270,17 +269,18 @@ public class SelfWebSiteService {
|
|
|
if (WordPressConstants.DEV_CI2.equals(adwebSite.getDevServerIp())) {
|
|
|
cmd = "sudo sh " + usWest118ServerShellPath + "/adweb-publish-devci2_http.sh " + adwebSite.getCode() + " " + domain + " " + dbName;
|
|
|
}
|
|
|
- log.info("===== releaseSite originDomain:{},domain:{},siteId:{},cmd:{} ====", originDomain, domain, siteId, cmd);
|
|
|
+ log.info("===== releaseSite originDomain:{},domain:{},siteCode:{},cmd:{} ====", originDomain, domain, siteCode, cmd);
|
|
|
|
|
|
if (StringUtils.isEmpty(cmd)) {
|
|
|
String errorMsg = "网站上线脚本命令获取失败!";
|
|
|
String title = "网站域名:" + originDomain + " 站点发布失败";
|
|
|
- String message = "**站点ID:** " + siteId + "\n";
|
|
|
+ String message = "**站点ID:** " + siteCode + "\n";
|
|
|
message += "**临时域名:** " + adwebSite.getDomainDev() + "\n";
|
|
|
message += "**服务器IP:** " + adwebSite.getDevServerIp() + "\n";
|
|
|
message += "**错误原因:** " + errorMsg + "\n";
|
|
|
sendAdWebV2FeiShuMsg(title, message);
|
|
|
- return Result.error("该站点的发布上线命令执行失败,请重试!");
|
|
|
+ Result.error("该站点的发布上线命令执行失败,请重试!");
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
// return false;
|
|
@@ -332,11 +332,11 @@ public class SelfWebSiteService {
|
|
|
// }
|
|
|
//正式域名
|
|
|
|
|
|
- log.info("===== releaseSite originDomain:{},domain:{},siteId:{},statusSuccess:{} ====", originDomain, domain, siteId, statusSuccess);
|
|
|
- log.info("===== releaseSite originDomain:{},domain:{},siteId:{},statusFail:{} ====", originDomain, domain, siteId, statusFail);
|
|
|
+ log.info("===== releaseSite originDomain:{},domain:{},siteId:{},statusSuccess:{} ====", originDomain, domain, siteCode, statusSuccess);
|
|
|
+ log.info("===== releaseSite originDomain:{},domain:{},siteId:{},statusFail:{} ====", originDomain, domain, siteCode, statusFail);
|
|
|
if (StringUtils.isNotEmpty(statusFail.toString())) {
|
|
|
String title = "网站域名:" + originDomain + " 站点发布失败";
|
|
|
- String message = "**站点ID:** " + siteId + "\n";
|
|
|
+ String message = "**站点ID:** " + siteCode + "\n";
|
|
|
message += "**临时域名:** " + adwebSite.getDomainDev() + "\n";
|
|
|
message += "**服务器IP:** " + adwebSite.getDevServerIp() + "\n";
|
|
|
message += "**错误信息:** " + statusFail.toString() + "\n";
|
|
@@ -345,10 +345,10 @@ public class SelfWebSiteService {
|
|
|
// 站点发布失败
|
|
|
adwebSite.setStatus(6);
|
|
|
siteService.updateById(adwebSite);
|
|
|
- return Result.error("网站发布上线失败!");
|
|
|
+ Result.error("网站发布上线失败!");
|
|
|
} else {
|
|
|
String title = "网站域名:" + originDomain + " 站点发布成功";
|
|
|
- String message = "**站点ID:** " + siteId + "\n";
|
|
|
+ String message = "**站点ID:** " + siteCode + "\n";
|
|
|
message += "**临时域名:** " + adwebSite.getDomainDev() + "\n";
|
|
|
message += "**服务器IP:** " + adwebSite.getDevServerIp() + "\n";
|
|
|
sendAdWebV2FeiShuMsg(title, message);
|
|
@@ -369,14 +369,14 @@ public class SelfWebSiteService {
|
|
|
// updateWrapper.set("domain", domain);
|
|
|
// seoKeywordsService.update(updateWrapper);
|
|
|
session.setAttribute("shellLineModular", "");
|
|
|
- return Result.OK("网站发布上线成功!");
|
|
|
+ Result.OK("网站发布上线成功!");
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
log.error("站点发布失败,退出执行;" + e.getMessage(), e);
|
|
|
// 站点发布失败
|
|
|
adwebSite.setStatus(6);
|
|
|
siteService.updateById(adwebSite);
|
|
|
- return Result.error("网站发布上线失败!");
|
|
|
+ Result.error("网站发布上线失败!");
|
|
|
}
|
|
|
}
|
|
|
|