[AppleScript] 纯文本查看 复制代码
//页面发布
public ResponseResult postPage(String pageId){
//执行静态化
String pageHtml =
this.
getPageHtml(pageId);
if(StringUtils.isEmpty(pageHtml)){
ExceptionCast.cast(CmsCode.CMS_GENERATEHTML_HTMLISNULL);
}
//保存静态化文件
CmsPage cmsPage
=
saveHtml(pageId, pageHtml);
//发送消息
sendPostPage(pageId);
return new ResponseResult(CommonCode.SUCCESS);
}
//发送页面发布消息
private void sendPostPage(String pageId){
CmsPage cmsPage
=
this.
getById(pageId);
if(cmsPage
== null){
ExceptionCast.cast(CmsCode.CMS_PAGE_NOTEXISTS);
}
Map<String,String> msgMap
= new HashMap<>();
msgMap
.
put(
"
pageId
"
,pageId);
//消息内容
String msg
=
JSON.toJSONString(msgMap);
//获取站点id作为routingKey
String siteId
=
cmsPage.
getSiteId();
//发布消息
this.rabbitTemplate.convertAndSend(RabbitmqConfig
.EX_ROUTING_CMS_POSTPAGE,siteId, msg);
}
//保存静态页面内容
private CmsPage saveHtml(String pageId,String content){
//查询页面
Optional<CmsPage> optional =
cmsPageRepository
.findById(pageId);
if(!optional.isPresent()){
ExceptionCast.cast(CmsCode.CMS_PAGE_NOTEXISTS);
}
CmsPage cmsPage
=
optional.
get();
//存储之前先删除
String htmlFileId
=
cmsPage.
getHtmlFileId();
if(StringUtils.isNotEmpty(htmlFileId)){
gridFsTemplate.delete(Query
.
query(Criteria.where(
"
_id
"
)
.is(htmlFileId)));
}
//保存html文件到GridFS
InputStream inputStream = IOUtils.toInputStream(content);
ObjectId objectId
=
gridFsTemplate.store(inputStream, cmsPage.
getPageName());
//文件id
String fileId
=
objectId.toString();
//将文件id存储到cmspage中
cmsPage.setHtmlFileId(fileId);
cmsPageRepository
.save(cmsPage);
return cmsPage;
}