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