fix(website): 防止同一租户重复创建站点,设置默认状态
- CmsWebsiteController中新增校验,若当前租户已有站点则拒绝新增 - 避免并发和重复请求导致多条孤儿记录产生 - CmsWebsiteServiceImpl中设置默认运行状态,防止状态字段为空显示异常 - 保持后端枚举status与前端展示running状态一致 - 调用方仍可覆盖默认状态值
This commit is contained in:
@@ -109,6 +109,18 @@ public class CmsWebsiteController extends BaseController {
|
|||||||
// 记录当前登录用户id
|
// 记录当前登录用户id
|
||||||
User loginUser = getLoginUser();
|
User loginUser = getLoginUser();
|
||||||
if (loginUser != null) {
|
if (loginUser != null) {
|
||||||
|
// 防重复建站:同一租户已存在站点时拒绝新增,
|
||||||
|
// 避免并发请求/重复点击建出多条记录(getSiteInfo 仅取 limit 1,多余记录会成为孤儿数据)
|
||||||
|
if (ObjectUtil.isNotEmpty(loginUser.getTenantId())) {
|
||||||
|
long exist = cmsWebsiteService.count(
|
||||||
|
new LambdaQueryWrapper<CmsWebsite>()
|
||||||
|
.eq(CmsWebsite::getTenantId, loginUser.getTenantId())
|
||||||
|
.eq(CmsWebsite::getDeleted, 0)
|
||||||
|
);
|
||||||
|
if (exist > 0) {
|
||||||
|
return fail("当前租户已存在站点,请勿重复创建");
|
||||||
|
}
|
||||||
|
}
|
||||||
cmsWebsite.setLoginUser(loginUser);
|
cmsWebsite.setLoginUser(loginUser);
|
||||||
return success("创建成功", cmsWebsiteService.create(cmsWebsite));
|
return success("创建成功", cmsWebsiteService.create(cmsWebsite));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -193,6 +193,15 @@ public class CmsWebsiteServiceImpl extends ServiceImpl<CmsWebsiteMapper, CmsWebs
|
|||||||
website.setTemplateId(loginUser.getTemplateId());
|
website.setTemplateId(loginUser.getTemplateId());
|
||||||
website.setCompanyId(loginUser.getCompanyId());
|
website.setCompanyId(loginUser.getCompanyId());
|
||||||
|
|
||||||
|
// 默认运行中:status(后台枚举)与 running(getSiteInfo 状态展示用)保持一致,
|
||||||
|
// 避免公开站读取到空值显示「状态未知」;调用方可覆盖
|
||||||
|
if (website.getStatus() == null) {
|
||||||
|
website.setStatus(1);
|
||||||
|
}
|
||||||
|
if (website.getRunning() == null) {
|
||||||
|
website.setRunning(1);
|
||||||
|
}
|
||||||
|
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
if(save(website)){
|
if(save(website)){
|
||||||
// 插入网站设置记录
|
// 插入网站设置记录
|
||||||
|
|||||||
Reference in New Issue
Block a user