|
@@ -1,9 +1,10 @@
|
|
package org.jeecg.modules.adweb.site.controller;
|
|
package org.jeecg.modules.adweb.site.controller;
|
|
|
|
|
|
-
|
|
|
|
import jakarta.annotation.Resource;
|
|
import jakarta.annotation.Resource;
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
|
|
+
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
+
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.tuple.Pair;
|
|
import org.apache.commons.lang3.tuple.Pair;
|
|
import org.apache.shiro.SecurityUtils;
|
|
import org.apache.shiro.SecurityUtils;
|
|
@@ -33,39 +34,41 @@ import java.util.List;
|
|
@RequestMapping("/wpWebSite")
|
|
@RequestMapping("/wpWebSite")
|
|
public class WPSiteController {
|
|
public class WPSiteController {
|
|
|
|
|
|
- @Resource
|
|
|
|
- private SelfWebSiteService selfWebSiteService;
|
|
|
|
|
|
+ @Resource private SelfWebSiteService selfWebSiteService;
|
|
|
|
|
|
- @Resource
|
|
|
|
- private AdwebRedisUtil adwebRedisUtil;
|
|
|
|
|
|
+ @Resource private AdwebRedisUtil adwebRedisUtil;
|
|
|
|
|
|
- @Resource
|
|
|
|
- private SiteManageService siteManageService;
|
|
|
|
|
|
+ @Resource private SiteManageService siteManageService;
|
|
|
|
|
|
- @Resource
|
|
|
|
- private DomainService domainService;
|
|
|
|
|
|
+ @Resource private DomainService domainService;
|
|
|
|
|
|
- @Resource
|
|
|
|
- private IResourceQuotaService resourceQuotaService;
|
|
|
|
|
|
+ @Resource private IResourceQuotaService resourceQuotaService;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 创建站点
|
|
* 创建站点
|
|
*
|
|
*
|
|
* @param templateId 模板id
|
|
* @param templateId 模板id
|
|
- * @param planId 域名
|
|
|
|
- * @param name 站点名称
|
|
|
|
- * @param uid 站点所属用户名称
|
|
|
|
- * @param request 请求信息
|
|
|
|
|
|
+ * @param planId 域名
|
|
|
|
+ * @param name 站点名称
|
|
|
|
+ * @param uid 站点所属用户名称
|
|
|
|
+ * @param request 请求信息
|
|
* @return 创建的站点信息
|
|
* @return 创建的站点信息
|
|
*/
|
|
*/
|
|
@RequestMapping("addWebsite")
|
|
@RequestMapping("addWebsite")
|
|
- public Result<?> createWebSiteByTempId(HttpServletRequest request, Long templateId, String planId, String name, String uid, Integer giveDay, Integer compensateDay) {
|
|
|
|
|
|
+ public Result<?> createWebSiteByTempId(
|
|
|
|
+ HttpServletRequest request,
|
|
|
|
+ Long templateId,
|
|
|
|
+ String planId,
|
|
|
|
+ String name,
|
|
|
|
+ String uid,
|
|
|
|
+ Integer giveDay,
|
|
|
|
+ Integer compensateDay) {
|
|
log.info("新建站点模板:" + templateId + "; 站点名称:" + name + "; 套餐id:" + planId);
|
|
log.info("新建站点模板:" + templateId + "; 站点名称:" + name + "; 套餐id:" + planId);
|
|
|
|
|
|
// 校验用户网站资源额度
|
|
// 校验用户网站资源额度
|
|
Pair<Integer, Integer> websiteQuota = resourceQuotaService.getWebsiteQuota(uid);
|
|
Pair<Integer, Integer> websiteQuota = resourceQuotaService.getWebsiteQuota(uid);
|
|
if (websiteQuota.getLeft() <= websiteQuota.getRight()) {
|
|
if (websiteQuota.getLeft() <= websiteQuota.getRight()) {
|
|
- log.info("用户 {} 网站资源额度不足", uid);
|
|
|
|
|
|
+ log.warn("用户 {} 网站资源额度不足", uid);
|
|
return Result.error(
|
|
return Result.error(
|
|
String.format(
|
|
String.format(
|
|
"网站创建失败。用户资源额度为%d,已使用%d",
|
|
"网站创建失败。用户资源额度为%d,已使用%d",
|
|
@@ -89,25 +92,26 @@ public class WPSiteController {
|
|
|
|
|
|
LoginUser user = SecureUtil.currentUser();
|
|
LoginUser user = SecureUtil.currentUser();
|
|
// 建站服务
|
|
// 建站服务
|
|
- selfWebSiteService.createSite(user, templateId, uid, name, planId, sysUser, giveDay, compensateDay);
|
|
|
|
|
|
+ selfWebSiteService.createSite(
|
|
|
|
+ user, templateId, uid, name, planId, sysUser, giveDay, compensateDay);
|
|
|
|
|
|
return Result.OK("申请创建站点成功,请等待通知,或者去站点管理查看结果!");
|
|
return Result.OK("申请创建站点成功,请等待通知,或者去站点管理查看结果!");
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 发布网站接口
|
|
* 发布网站接口
|
|
- * <p>
|
|
|
|
- * 该方法通过接收服务器ID、域名和站点代码来申请发布一个网站
|
|
|
|
- * 用户通过该接口提交发布申请,实际的发布操作由后台异步处理
|
|
|
|
*
|
|
*
|
|
- * @param request HttpServletRequest对象,用于获取请求相关信息
|
|
|
|
|
|
+ * <p>该方法通过接收服务器ID、域名和站点代码来申请发布一个网站 用户通过该接口提交发布申请,实际的发布操作由后台异步处理
|
|
|
|
+ *
|
|
|
|
+ * @param request HttpServletRequest对象,用于获取请求相关信息
|
|
* @param serverId 服务器ID,标识要发布的服务器
|
|
* @param serverId 服务器ID,标识要发布的服务器
|
|
- * @param domain 域名,标识要发布的网站域名
|
|
|
|
|
|
+ * @param domain 域名,标识要发布的网站域名
|
|
* @param siteCode 站点代码,用于识别和验证要发布的站点
|
|
* @param siteCode 站点代码,用于识别和验证要发布的站点
|
|
* @return 返回一个Result对象,包含发布申请的结果信息
|
|
* @return 返回一个Result对象,包含发布申请的结果信息
|
|
*/
|
|
*/
|
|
@RequestMapping("releaseWebsite")
|
|
@RequestMapping("releaseWebsite")
|
|
- public Result<?> releaseWebsite(HttpServletRequest request, String serverId, String domain, String siteCode) {
|
|
|
|
|
|
+ public Result<?> releaseWebsite(
|
|
|
|
+ HttpServletRequest request, String serverId, String domain, String siteCode) {
|
|
|
|
|
|
// 站点发布
|
|
// 站点发布
|
|
selfWebSiteService.releaseSite(request, serverId, domain, siteCode);
|
|
selfWebSiteService.releaseSite(request, serverId, domain, siteCode);
|
|
@@ -127,7 +131,6 @@ public class WPSiteController {
|
|
return selfWebSiteService.delReleaseWebsite(domain, siteId);
|
|
return selfWebSiteService.delReleaseWebsite(domain, siteId);
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* 站点 启动/停止
|
|
* 站点 启动/停止
|
|
*
|
|
*
|
|
@@ -160,7 +163,8 @@ public class WPSiteController {
|
|
|
|
|
|
@RequestMapping(value = "/check/domain", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/check/domain", method = RequestMethod.POST)
|
|
@ResponseBody
|
|
@ResponseBody
|
|
- public Result<?> checkDomain(HttpServletRequest request, String cname, String ip, String domain) {
|
|
|
|
|
|
+ public Result<?> checkDomain(
|
|
|
|
+ HttpServletRequest request, String cname, String ip, String domain) {
|
|
|
|
|
|
log.info("====== checkDomain cname:{},ip:{},domain:{} ======", cname, ip, domain);
|
|
log.info("====== checkDomain cname:{},ip:{},domain:{} ======", cname, ip, domain);
|
|
if (cname.equalsIgnoreCase(domain) || ip.equalsIgnoreCase(domain)) {
|
|
if (cname.equalsIgnoreCase(domain) || ip.equalsIgnoreCase(domain)) {
|
|
@@ -168,30 +172,29 @@ public class WPSiteController {
|
|
return new Result<>(100, "请勿提交我们的CNAME或IP");
|
|
return new Result<>(100, "请勿提交我们的CNAME或IP");
|
|
}
|
|
}
|
|
|
|
|
|
- //提交的域名已发布或被他人使用
|
|
|
|
|
|
+ // 提交的域名已发布或被他人使用
|
|
List<AdwebSite> siteList = siteManageService.checkSiteDomainIsExists(domain);
|
|
List<AdwebSite> siteList = siteManageService.checkSiteDomainIsExists(domain);
|
|
log.info("siteList:{}", siteList);
|
|
log.info("siteList:{}", siteList);
|
|
if (!siteList.isEmpty()) {
|
|
if (!siteList.isEmpty()) {
|
|
return new Result<>(102, "您填写的域名已发布或被他人使用,请勿重复提交!");
|
|
return new Result<>(102, "您填写的域名已发布或被他人使用,请勿重复提交!");
|
|
}
|
|
}
|
|
- //检验域名是否以http开头
|
|
|
|
|
|
+ // 检验域名是否以http开头
|
|
List<String> headStrs = new ArrayList<>();
|
|
List<String> headStrs = new ArrayList<>();
|
|
headStrs.add("http://");
|
|
headStrs.add("http://");
|
|
headStrs.add("https://");
|
|
headStrs.add("https://");
|
|
boolean isHttp = domainService.checkDomainBegin(domain, headStrs);
|
|
boolean isHttp = domainService.checkDomainBegin(domain, headStrs);
|
|
- //isHttp == true 是以http或https开头 直接返回
|
|
|
|
|
|
+ // isHttp == true 是以http或https开头 直接返回
|
|
if (isHttp) {
|
|
if (isHttp) {
|
|
return new Result<>(101, "域名请勿以http://或https://开头");
|
|
return new Result<>(101, "域名请勿以http://或https://开头");
|
|
}
|
|
}
|
|
- //检验域名是否指向cname或ip
|
|
|
|
|
|
+ // 检验域名是否指向cname或ip
|
|
boolean isToCnameOrIp = domainService.checkDomainIsCnameOrIp(cname, domain, ip);
|
|
boolean isToCnameOrIp = domainService.checkDomainIsCnameOrIp(cname, domain, ip);
|
|
if (isToCnameOrIp) {
|
|
if (isToCnameOrIp) {
|
|
- //满足不以http等开头 并且域名指向cname或ip中的一个
|
|
|
|
|
|
+ // 满足不以http等开头 并且域名指向cname或ip中的一个
|
|
return Result.ok();
|
|
return Result.ok();
|
|
} else {
|
|
} else {
|
|
- //未指向cname或ip任意一个
|
|
|
|
|
|
+ // 未指向cname或ip任意一个
|
|
return new Result<>(103, "请确认您的域名已指向CNAME或IP");
|
|
return new Result<>(103, "请确认您的域名已指向CNAME或IP");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|