修正站点主题导入资源iurl转换错误

This commit is contained in:
兮玥 2023-12-24 17:36:45 +08:00
parent 7c4f76f7b9
commit 49f6c943d3
3 changed files with 11 additions and 34 deletions

View File

@ -8,7 +8,6 @@ import com.chestnut.common.async.AsyncTaskManager;
import com.chestnut.common.utils.JacksonUtils; import com.chestnut.common.utils.JacksonUtils;
import com.chestnut.common.utils.StringUtils; import com.chestnut.common.utils.StringUtils;
import com.chestnut.contentcore.core.ICoreDataHandler; import com.chestnut.contentcore.core.ICoreDataHandler;
import com.chestnut.contentcore.core.InternalURL;
import com.chestnut.contentcore.core.SiteExportContext; import com.chestnut.contentcore.core.SiteExportContext;
import com.chestnut.contentcore.core.SiteImportContext; import com.chestnut.contentcore.core.SiteImportContext;
import com.chestnut.contentcore.util.InternalUrlUtils; import com.chestnut.contentcore.util.InternalUrlUtils;
@ -17,7 +16,6 @@ import org.springframework.stereotype.Component;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.regex.Matcher; import java.util.regex.Matcher;
/** /**
@ -83,18 +81,8 @@ public class ArticleCoreDataHandler implements ICoreDataHandler {
while (matcher.find()) { while (matcher.find()) {
String tagStr = matcher.group(); String tagStr = matcher.group();
String iurl = matcher.group(1); String iurl = matcher.group(1);
// begin String newIurl = context.dealInternalUrl(iurl);
try { tagStr = StringUtils.replaceEx(tagStr, iurl, newIurl);
InternalURL internalUrl = InternalUrlUtils.parseInternalUrl(iurl);
if (Objects.nonNull(internalUrl)) {
Long resourceId = context.getResourceIdMap().get(internalUrl.getId());
internalUrl.setId(resourceId);
tagStr = StringUtils.replaceEx(tagStr, iurl, internalUrl.toIUrl());
}
} catch (Exception e) {
e.printStackTrace();
}
// end
html.append(contentHtml, index, matcher.start()).append(tagStr); html.append(contentHtml, index, matcher.start()).append(tagStr);
index = matcher.end(); index = matcher.end();
} }

View File

@ -4,6 +4,7 @@ import com.chestnut.common.utils.IdUtils;
import com.chestnut.contentcore.config.CMSConfig; import com.chestnut.contentcore.config.CMSConfig;
import com.chestnut.contentcore.core.impl.InternalDataType_Catalog; import com.chestnut.contentcore.core.impl.InternalDataType_Catalog;
import com.chestnut.contentcore.core.impl.InternalDataType_Content; import com.chestnut.contentcore.core.impl.InternalDataType_Content;
import com.chestnut.contentcore.core.impl.InternalDataType_Resource;
import com.chestnut.contentcore.domain.CmsSite; import com.chestnut.contentcore.domain.CmsSite;
import com.chestnut.contentcore.util.InternalUrlUtils; import com.chestnut.contentcore.util.InternalUrlUtils;
import com.chestnut.contentcore.util.SiteUtils; import com.chestnut.contentcore.util.SiteUtils;
@ -83,10 +84,14 @@ public class SiteImportContext implements ISiteThemeContext {
Long id = switch (internalURL.getType()) { Long id = switch (internalURL.getType()) {
case InternalDataType_Catalog.ID -> catalogIdMap.get(internalURL.getId()); case InternalDataType_Catalog.ID -> catalogIdMap.get(internalURL.getId());
case InternalDataType_Content.ID -> contentIdMap.get(internalURL.getId()); case InternalDataType_Content.ID -> contentIdMap.get(internalURL.getId());
case InternalDataType_Resource.ID -> resourceIdMap.get(internalURL.getId());
default -> null; default -> null;
}; };
if (IdUtils.validate(id)) { if (IdUtils.validate(id)) {
internalURL.setId(id); internalURL.setId(id);
if (InternalDataType_Resource.ID.equals(internalURL.getType())) {
internalURL.setParams(Map.of("sid", site.getSiteId().toString()));
}
return internalURL.toIUrl(); return internalURL.toIUrl();
} }
} }

View File

@ -147,16 +147,7 @@ public class SiteThemeService {
} }
data.createBy(context.getOperator()); data.createBy(context.getOperator());
// 处理logo // 处理logo
InternalURL internalURL = InternalUrlUtils.parseInternalUrl(data.getLogo()); data.setLogo(context.dealInternalUrl(data.getLogo()));
if (Objects.nonNull(internalURL)) {
Long resourceId = context.getResourceIdMap().get(internalURL.getId());
if (IdUtils.validate(resourceId)) {
internalURL.setId(resourceId);
data.setLogo(internalURL.toIUrl());
} else {
data.setLogo(StringUtils.EMPTY);
}
}
catalogService.save(data); catalogService.save(data);
context.getCatalogIdMap().put(sourceCatalogId, data.getCatalogId()); context.getCatalogIdMap().put(sourceCatalogId, data.getCatalogId());
if (CatalogType_Link.ID.equals(data.getCatalogType())) { if (CatalogType_Link.ID.equals(data.getCatalogType())) {
@ -199,6 +190,8 @@ public class SiteThemeService {
if (Objects.nonNull(catalog)) { if (Objects.nonNull(catalog)) {
data.setCatalogId(catalog.getCatalogId()); data.setCatalogId(catalog.getCatalogId());
data.setCatalogAncestors(catalog.getAncestors()); data.setCatalogAncestors(catalog.getAncestors());
} else {
this.addErrorMessage("页面部件栏目关联失败:" + data.getName());
} }
} }
data.createBy(context.getOperator()); data.createBy(context.getOperator());
@ -231,16 +224,7 @@ public class SiteThemeService {
content.setDeptCode(StringUtils.EMPTY); content.setDeptCode(StringUtils.EMPTY);
content.createBy(operator.getUsername()); content.createBy(operator.getUsername());
// 处理logo // 处理logo
InternalURL internalURL = InternalUrlUtils.parseInternalUrl(catalog.getLogo()); content.setLogo(context.dealInternalUrl(content.getLogo()));
if (Objects.nonNull(internalURL)) {
Long resourceId = context.getResourceIdMap().get(internalURL.getId());
if (IdUtils.validate(resourceId)) {
internalURL.setId(resourceId);
catalog.setLogo(internalURL.toIUrl());
} else {
catalog.setLogo(StringUtils.EMPTY);
}
}
contentService.save(content); contentService.save(content);
context.getContentIdMap().put(sourceContentId, content.getContentId()); context.getContentIdMap().put(sourceContentId, content.getContentId());
if (content.isLinkContent()) { if (content.isLinkContent()) {