refactor(cms): 优化网站创建时的数据复制逻辑
- 仅在templateId存在且大于0时执行数据复制操作 - 添加无效模板ID时的日志警告提示-保持原有国际化、参数、模型、广告、链接及栏目文章的复制逻辑- 修复可能因templateId为null导致的潜在空指针异常
This commit is contained in:
@@ -173,123 +173,116 @@ public class CmsWebsiteServiceImpl extends ServiceImpl<CmsWebsiteMapper, CmsWebs
|
||||
// cmsWebsiteSettingService.save(setting);
|
||||
|
||||
// 将网站创建者的userId做为查询条件 10257(4716),10324(6978),10398(26564)
|
||||
Integer websiteUserId = website.getTemplateId() != null ? website.getTemplateId() : 0;
|
||||
Integer websiteUserId = website.getTemplateId();
|
||||
|
||||
// 只有当templateId存在时才执行复制操作
|
||||
if (websiteUserId != null && websiteUserId > 0) {
|
||||
// TODO 国际化
|
||||
final CmsLangLogParam cmsLangLogParam = new CmsLangLogParam();
|
||||
cmsLangLogParam.setWebsiteUserId(websiteUserId);
|
||||
final List<CmsLangLog> logs = cmsLangLogMapper.selectListAllRel(cmsLangLogParam);
|
||||
logs.forEach(d->{
|
||||
d.setTenantId(loginUser.getTenantId());
|
||||
});
|
||||
cmsLangLogService.saveBatch(logs);
|
||||
|
||||
// TODO 复制参数
|
||||
final CmsWebsiteFieldParam param = new CmsWebsiteFieldParam();
|
||||
param.setUserId(websiteUserId);
|
||||
final List<CmsWebsiteField> fields = cmsWebsiteFieldMapper.selectListAllRel(param);
|
||||
fields.forEach(d->{
|
||||
d.setTenantId(loginUser.getTenantId());
|
||||
});
|
||||
cmsWebsiteFieldService.saveBatch(fields);
|
||||
|
||||
// TODO 国际化
|
||||
final CmsLangLogParam cmsLangLogParam = new CmsLangLogParam();
|
||||
cmsLangLogParam.setWebsiteUserId(websiteUserId);
|
||||
final List<CmsLangLog> logs = cmsLangLogMapper.selectListAllRel(cmsLangLogParam);
|
||||
logs.forEach(d->{
|
||||
d.setTenantId(loginUser.getTenantId());
|
||||
});
|
||||
cmsLangLogService.saveBatch(logs);
|
||||
// TODO 复制模型
|
||||
final CmsModelParam modelParam = new CmsModelParam();
|
||||
modelParam.setWebsiteUserId(websiteUserId);
|
||||
final List<CmsModel> models = cmsModelMapper.selectListAllRel(modelParam);
|
||||
models.forEach(d->{
|
||||
d.setUserId(loginUser.getUserId());
|
||||
d.setTenantId(loginUser.getTenantId());
|
||||
});
|
||||
cmsModelService.saveBatch(models);
|
||||
|
||||
// TODO 复制参数
|
||||
final CmsWebsiteFieldParam param = new CmsWebsiteFieldParam();
|
||||
param.setUserId(websiteUserId);
|
||||
final List<CmsWebsiteField> fields = cmsWebsiteFieldMapper.selectListAllRel(param);
|
||||
fields.forEach(d->{
|
||||
d.setTenantId(loginUser.getTenantId());
|
||||
});
|
||||
cmsWebsiteFieldService.saveBatch(fields);
|
||||
// TODO 复制广告
|
||||
final CmsAdParam cmsAdParam = new CmsAdParam();
|
||||
cmsAdParam.setWebsiteUserId(websiteUserId);
|
||||
final List<CmsAd> ads = cmsAdMapper.selectListAllRel(cmsAdParam);
|
||||
ads.forEach(d -> {
|
||||
d.setUserId(loginUser.getUserId());
|
||||
d.setTenantId(loginUser.getTenantId());
|
||||
});
|
||||
cmsAdService.saveBatch(ads);
|
||||
|
||||
// TODO 复制模型
|
||||
final CmsModelParam modelParam = new CmsModelParam();
|
||||
modelParam.setWebsiteUserId(websiteUserId);
|
||||
final List<CmsModel> models = cmsModelMapper.selectListAllRel(modelParam);
|
||||
models.forEach(d->{
|
||||
d.setUserId(loginUser.getUserId());
|
||||
d.setTenantId(loginUser.getTenantId());
|
||||
});
|
||||
cmsModelService.saveBatch(models);
|
||||
// TODO 复制链接
|
||||
CmsLinkParam cmsLinkParam = new CmsLinkParam();
|
||||
cmsLinkParam.setWebsiteUserId(websiteUserId);
|
||||
final List<CmsLink> links = cmsLinkMapper.selectListAllRel(cmsLinkParam);
|
||||
links.forEach(d -> {
|
||||
d.setUserId(loginUser.getUserId());
|
||||
d.setTenantId(loginUser.getTenantId());
|
||||
});
|
||||
cmsLinkService.saveBatch(links);
|
||||
|
||||
// TODO 复制广告
|
||||
final CmsAdParam cmsAdParam = new CmsAdParam();
|
||||
cmsAdParam.setWebsiteUserId(websiteUserId);
|
||||
final List<CmsAd> ads = cmsAdMapper.selectListAllRel(cmsAdParam);
|
||||
ads.forEach(d -> {
|
||||
d.setUserId(loginUser.getUserId());
|
||||
d.setTenantId(loginUser.getTenantId());
|
||||
});
|
||||
cmsAdService.saveBatch(ads);
|
||||
|
||||
// TODO 复制链接
|
||||
CmsLinkParam cmsLinkParam = new CmsLinkParam();
|
||||
cmsLinkParam.setWebsiteUserId(websiteUserId);
|
||||
final List<CmsLink> links = cmsLinkMapper.selectListAllRel(cmsLinkParam);
|
||||
links.forEach(d -> {
|
||||
d.setUserId(loginUser.getUserId());
|
||||
d.setTenantId(loginUser.getTenantId());
|
||||
});
|
||||
cmsLinkService.saveBatch(links);
|
||||
|
||||
// TODO 复制订单
|
||||
// CmsOrderParam cmsOrderParam = new CmsOrderParam();
|
||||
// cmsOrderParam.setWebsiteUserId(websiteUserId);
|
||||
// final List<CmsOrder> orders = cmsOrderMapper.selectListAllRel(cmsOrderParam);
|
||||
// orders.forEach(d -> {
|
||||
// d.setUserId(loginUser.getUserId());
|
||||
// d.setTenantId(loginUser.getTenantId());
|
||||
// });
|
||||
// cmsOrderService.saveBatch(orders);
|
||||
|
||||
|
||||
// TODO 复制栏目和文章、文章内容
|
||||
CmsNavigationParam cmsNavigationParam = new CmsNavigationParam();
|
||||
cmsNavigationParam.setWebsiteUserId(websiteUserId);
|
||||
cmsNavigationParam.setParentId(0);
|
||||
final List<CmsNavigation> parents = cmsNavigationMapper.selectListAllRel(cmsNavigationParam);
|
||||
parents.forEach(d -> {
|
||||
Integer navigationId = d.getNavigationId();
|
||||
// 复制顶级栏目
|
||||
d.setTenantId(loginUser.getTenantId());
|
||||
d.setUserId(loginUser.getUserId());
|
||||
if (cmsNavigationService.save(d)) {
|
||||
cmsNavigationService.saveAsync(d);
|
||||
// 复制栏目文章
|
||||
CmsArticleParam cmsArticleParam = new CmsArticleParam();
|
||||
cmsArticleParam.setWebsiteUserId(websiteUserId);
|
||||
cmsArticleParam.setCategoryId(navigationId);
|
||||
final List<CmsArticle> articles = cmsArticleMapper.selectListAllRel(cmsArticleParam);
|
||||
articles.forEach(a -> {
|
||||
a.setCategoryId(d.getNavigationId());
|
||||
a.setUserId(loginUser.getUserId());
|
||||
a.setTenantId(loginUser.getTenantId());
|
||||
if (cmsArticleService.save(a)) {
|
||||
final CmsArticleContent content = new CmsArticleContent();
|
||||
content.setArticleId(a.getArticleId());
|
||||
content.setContent(a.getContent());
|
||||
cmsArticleContentService.save(content);
|
||||
}
|
||||
});
|
||||
// 复制子栏目
|
||||
cmsNavigationParam.setParentId(navigationId);
|
||||
final List<CmsNavigation> navigations = cmsNavigationMapper.selectListAllRel(cmsNavigationParam);
|
||||
navigations.forEach(c -> {
|
||||
cmsArticleParam.setCategoryId(c.getNavigationId());
|
||||
c.setParentId(d.getNavigationId());
|
||||
c.setTenantId(loginUser.getTenantId());
|
||||
c.setUserId(loginUser.getUserId());
|
||||
cmsNavigationService.save(c);
|
||||
cmsNavigationService.saveAsync(c);
|
||||
// 复制子栏目文章
|
||||
final List<CmsArticle> articles2 = cmsArticleMapper.selectListAllRel(cmsArticleParam);
|
||||
articles2.forEach(a2 -> {
|
||||
a2.setCategoryId(c.getNavigationId());
|
||||
a2.setParentId(c.getParentId());
|
||||
a2.setUserId(loginUser.getUserId());
|
||||
a2.setTenantId(loginUser.getTenantId());
|
||||
if (cmsArticleService.save(a2)) {
|
||||
final CmsArticleContent content = new CmsArticleContent();
|
||||
content.setArticleId(a2.getArticleId());
|
||||
content.setContent(a2.getContent());
|
||||
cmsArticleContentService.save(content);
|
||||
}
|
||||
// TODO 复制栏目和文章、文章内容
|
||||
CmsNavigationParam cmsNavigationParam = new CmsNavigationParam();
|
||||
cmsNavigationParam.setWebsiteUserId(websiteUserId);
|
||||
cmsNavigationParam.setParentId(0);
|
||||
final List<CmsNavigation> parents = cmsNavigationMapper.selectListAllRel(cmsNavigationParam);
|
||||
parents.forEach(d -> {
|
||||
Integer navigationId = d.getNavigationId();
|
||||
// 复制顶级栏目
|
||||
d.setTenantId(loginUser.getTenantId());
|
||||
d.setUserId(loginUser.getUserId());
|
||||
if (cmsNavigationService.save(d)) {
|
||||
cmsNavigationService.saveAsync(d);
|
||||
// 复制栏目文章
|
||||
CmsArticleParam cmsArticleParam = new CmsArticleParam();
|
||||
cmsArticleParam.setWebsiteUserId(websiteUserId);
|
||||
cmsArticleParam.setCategoryId(navigationId);
|
||||
final List<CmsArticle> articles = cmsArticleMapper.selectListAllRel(cmsArticleParam);
|
||||
articles.forEach(a -> {
|
||||
a.setCategoryId(d.getNavigationId());
|
||||
a.setUserId(loginUser.getUserId());
|
||||
a.setTenantId(loginUser.getTenantId());
|
||||
if (cmsArticleService.save(a)) {
|
||||
final CmsArticleContent content = new CmsArticleContent();
|
||||
content.setArticleId(a.getArticleId());
|
||||
content.setContent(a.getContent());
|
||||
cmsArticleContentService.save(content);
|
||||
}
|
||||
});
|
||||
// 复制子栏目
|
||||
cmsNavigationParam.setParentId(navigationId);
|
||||
final List<CmsNavigation> navigations = cmsNavigationMapper.selectListAllRel(cmsNavigationParam);
|
||||
navigations.forEach(c -> {
|
||||
cmsArticleParam.setCategoryId(c.getNavigationId());
|
||||
c.setParentId(d.getNavigationId());
|
||||
c.setTenantId(loginUser.getTenantId());
|
||||
c.setUserId(loginUser.getUserId());
|
||||
cmsNavigationService.save(c);
|
||||
cmsNavigationService.saveAsync(c);
|
||||
// 复制子栏目文章
|
||||
final List<CmsArticle> articles2 = cmsArticleMapper.selectListAllRel(cmsArticleParam);
|
||||
articles2.forEach(a2 -> {
|
||||
a2.setCategoryId(c.getNavigationId());
|
||||
a2.setParentId(c.getParentId());
|
||||
a2.setUserId(loginUser.getUserId());
|
||||
a2.setTenantId(loginUser.getTenantId());
|
||||
if (cmsArticleService.save(a2)) {
|
||||
final CmsArticleContent content = new CmsArticleContent();
|
||||
content.setArticleId(a2.getArticleId());
|
||||
content.setContent(a2.getContent());
|
||||
cmsArticleContentService.save(content);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
log.warn("没有有效的模板ID,跳过复制操作");
|
||||
}
|
||||
|
||||
// 新增项目
|
||||
final Project project = new Project();
|
||||
|
||||
Reference in New Issue
Block a user