init
This commit is contained in:
@@ -0,0 +1,290 @@
|
||||
package com.ruoyi.cms.blog.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.ruoyi.cms.fileInfo.service.ISysFileInfoService;
|
||||
import com.ruoyi.cms.tag.domain.CmsTag;
|
||||
import com.ruoyi.cms.tag.service.ICmsTagService;
|
||||
import com.ruoyi.cms.type.domain.CmsType;
|
||||
import com.ruoyi.cms.type.service.ICmsTypeService;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.framework.web.service.SysPermissionService;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.cms.blog.domain.CmsBlog;
|
||||
import com.ruoyi.cms.blog.service.ICmsBlogService;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
|
||||
/**
|
||||
* 文章管理Controller
|
||||
*
|
||||
* @author ning
|
||||
* @date 2022-01-01
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/cms/blog")
|
||||
public class CmsBlogController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private ICmsBlogService cmsBlogService;
|
||||
|
||||
@Autowired
|
||||
private ICmsTypeService cmsTypeService;
|
||||
|
||||
@Autowired
|
||||
private ICmsTagService cmsTagService;
|
||||
|
||||
@Autowired
|
||||
private SysPermissionService permissionService;
|
||||
|
||||
@Autowired
|
||||
private ISysFileInfoService sysFileInfoService;
|
||||
|
||||
/**
|
||||
* 首页查询文章列表
|
||||
*/
|
||||
@GetMapping("/cms/cmsList")
|
||||
public TableDataInfo cmsList(CmsBlog cmsBlog)
|
||||
{
|
||||
startPage();
|
||||
//状态为发布
|
||||
cmsBlog.setStatus("1");
|
||||
List<CmsBlog> list = cmsBlogService.selectCmsBlogList(cmsBlog);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 首页获取文章详细信息
|
||||
*/
|
||||
@GetMapping(value = { "/cms/detail/", "/cms/detail/{id}" })
|
||||
public AjaxResult getInfoDetail(@PathVariable(value = "id", required = false) Long id)
|
||||
{
|
||||
AjaxResult ajax = AjaxResult.success();
|
||||
CmsType cmsType = new CmsType();
|
||||
CmsTag cmsTag = new CmsTag();
|
||||
ajax.put("types", cmsTypeService.selectCmsTypeList(cmsType));
|
||||
ajax.put("tags", cmsTagService.selectCmsTagList(cmsTag));
|
||||
if (StringUtils.isNotNull(id))
|
||||
{
|
||||
ajax.put(AjaxResult.DATA_TAG, cmsBlogService.selectCmsBlogById(id));
|
||||
}
|
||||
return ajax;
|
||||
}
|
||||
|
||||
/**
|
||||
* 首页按分类查询文章列表
|
||||
*/
|
||||
@GetMapping("/cms/cmsListByType/{id}")
|
||||
public TableDataInfo cmsListByTypeId(@PathVariable(value = "id", required = false) Long id)
|
||||
{
|
||||
startPage();
|
||||
List<CmsBlog> list = cmsBlogService.selectCmsBlogListByTypeId(id);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 首页按标签查询文章列表
|
||||
*/
|
||||
@GetMapping("/cms/cmsListByTag/{id}")
|
||||
public TableDataInfo cmsListByTagId(@PathVariable(value = "id", required = false) Long id)
|
||||
{
|
||||
startPage();
|
||||
List<CmsBlog> list = cmsBlogService.selectCmsBlogListByTagId(id);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 首页查询推荐文章列表
|
||||
*/
|
||||
@GetMapping("/cms/cmsListRecommend")
|
||||
public TableDataInfo cmsListRecommend(CmsBlog cmsBlog)
|
||||
{
|
||||
startPage();
|
||||
//状态为发布
|
||||
cmsBlog.setStatus("1");
|
||||
List<CmsBlog> list = cmsBlogService.selectCmsBlogListRecommend(cmsBlog);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 首页增加阅读量
|
||||
*/
|
||||
@GetMapping("/cms/addBlogViews/{id}")
|
||||
public AjaxResult addBlogViews(@PathVariable(value = "id", required = false) Long id)
|
||||
{
|
||||
CmsBlog cmsBlog = cmsBlogService.selectCmsBlogById(id);
|
||||
Long views = cmsBlog.getViews();
|
||||
views+=Long.parseLong("1");
|
||||
cmsBlog.setViews(views);
|
||||
cmsBlogService.updateCmsBlog(cmsBlog);
|
||||
return AjaxResult.success(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 随笔页查询文章列表
|
||||
*/
|
||||
@GetMapping("/cms/cmsEssayList")
|
||||
public TableDataInfo cmsEssayList(CmsBlog cmsBlog)
|
||||
{
|
||||
startPage();
|
||||
//状态为发布
|
||||
cmsBlog.setStatus("1");
|
||||
List<CmsBlog> list = cmsBlogService.selectCmsBlogList(cmsBlog);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询文章管理列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cms:blog:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(CmsBlog cmsBlog)
|
||||
{
|
||||
startPage();
|
||||
// 角色集合
|
||||
Set<String> roles = permissionService.getRolePermission(getLoginUser().getUser());
|
||||
if (!SecurityUtils.isAdmin(getUserId())&&!roles.contains("admin")&&!roles.contains("cms")){
|
||||
cmsBlog.setCreateBy(getUsername());
|
||||
}
|
||||
List<CmsBlog> list = cmsBlogService.selectCmsBlogList(cmsBlog);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出文章管理列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cms:blog:export')")
|
||||
@Log(title = "文章管理", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, CmsBlog cmsBlog)
|
||||
{
|
||||
List<CmsBlog> list = cmsBlogService.selectCmsBlogList(cmsBlog);
|
||||
ExcelUtil<CmsBlog> util = new ExcelUtil<CmsBlog>(CmsBlog.class);
|
||||
util.exportExcel(response, list, "文章管理数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取文章管理详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cms:blog:query')")
|
||||
@GetMapping(value = { "/", "/{id}" })
|
||||
public AjaxResult getInfo(@PathVariable(value = "id", required = false) Long id)
|
||||
{
|
||||
AjaxResult ajax = AjaxResult.success();
|
||||
CmsType cmsType = new CmsType();
|
||||
CmsTag cmsTag = new CmsTag();
|
||||
ajax.put("types", cmsTypeService.selectCmsTypeList(cmsType));
|
||||
ajax.put("tags", cmsTagService.selectCmsTagList(cmsTag));
|
||||
if (StringUtils.isNotNull(id))
|
||||
{
|
||||
ajax.put(AjaxResult.DATA_TAG, cmsBlogService.selectCmsBlogById(id));
|
||||
}
|
||||
return ajax;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增文章管理
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cms:blog:add')")
|
||||
@Log(title = "文章管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody CmsBlog cmsBlog)
|
||||
{
|
||||
cmsBlog.setCreateBy(getUsername());
|
||||
Long blogId = cmsBlogService.insertCmsBlog(cmsBlog);
|
||||
if (blogId==null){
|
||||
return AjaxResult.error();
|
||||
}
|
||||
return AjaxResult.success(blogId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改文章管理
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cms:blog:edit')")
|
||||
@Log(title = "文章管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody CmsBlog cmsBlog)
|
||||
{
|
||||
cmsBlog.setUpdateBy(getUsername());
|
||||
//删除原首图
|
||||
CmsBlog oldBlog = cmsBlogService.selectCmsBlogById(cmsBlog.getId());
|
||||
if (cmsBlog.getBlogPic().isEmpty()||!cmsBlog.getBlogPic().equals(oldBlog.getBlogPic())){
|
||||
if(!oldBlog.getBlogPic().isEmpty()){
|
||||
String blogPic = oldBlog.getBlogPic();
|
||||
if (blogPic!=null&&!"".equals(blogPic)){
|
||||
int newFileNameSeparatorIndex = blogPic.lastIndexOf("/");
|
||||
String FileName = blogPic.substring(newFileNameSeparatorIndex + 1).toLowerCase();
|
||||
sysFileInfoService.deleteSysFileInfoByFileObjectName(FileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
return toAjax(cmsBlogService.updateCmsBlog(cmsBlog));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除文章管理
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cms:blog:remove')")
|
||||
@Log(title = "文章管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
{
|
||||
//删除原首图
|
||||
for (Long id : ids) {
|
||||
CmsBlog oldBlog = cmsBlogService.selectCmsBlogById(id);
|
||||
if(!oldBlog.getBlogPic().isEmpty()){
|
||||
String blogPic = oldBlog.getBlogPic();
|
||||
if (blogPic!=null&&!"".equals(blogPic)){
|
||||
int newFileNameSeparatorIndex = blogPic.lastIndexOf("/");
|
||||
String FileName = blogPic.substring(newFileNameSeparatorIndex + 1).toLowerCase();
|
||||
sysFileInfoService.deleteSysFileInfoByFileObjectName(FileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
return toAjax(cmsBlogService.deleteCmsBlogByIds(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消按钮-删除首图
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('cms:blog:edit')")
|
||||
@PostMapping("/cancel")
|
||||
public AjaxResult cancel(@RequestBody CmsBlog cmsBlog)
|
||||
{
|
||||
String blogPic = cmsBlog.getBlogPic();
|
||||
if (blogPic!=null&&!"".equals(blogPic)){
|
||||
Long blogId = cmsBlog.getId();
|
||||
if (blogId==null){
|
||||
int newFileNameSeparatorIndex = blogPic.lastIndexOf("/");
|
||||
String FileName = blogPic.substring(newFileNameSeparatorIndex + 1).toLowerCase();
|
||||
sysFileInfoService.deleteSysFileInfoByFileObjectName(FileName);
|
||||
}else {
|
||||
String Pic = cmsBlogService.selectCmsBlogById(blogId).getBlogPic();
|
||||
if (!blogPic.equals(Pic)){
|
||||
int newFileNameSeparatorIndex = blogPic.lastIndexOf("/");
|
||||
String FileName = blogPic.substring(newFileNameSeparatorIndex + 1).toLowerCase();
|
||||
sysFileInfoService.deleteSysFileInfoByFileObjectName(FileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
return toAjax(1);
|
||||
}
|
||||
}
|
||||
282
ruoyi-cms/src/main/java/com/ruoyi/cms/blog/domain/CmsBlog.java
Normal file
282
ruoyi-cms/src/main/java/com/ruoyi/cms/blog/domain/CmsBlog.java
Normal file
@@ -0,0 +1,282 @@
|
||||
package com.ruoyi.cms.blog.domain;
|
||||
|
||||
import com.ruoyi.cms.tag.domain.CmsTag;
|
||||
import com.ruoyi.cms.type.domain.CmsType;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 文章管理对象 cms_blog
|
||||
*
|
||||
* @author ning
|
||||
* @date 2022-01-01
|
||||
*/
|
||||
public class CmsBlog extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@Excel(name = "标题")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 类型 1文章 2随笔
|
||||
*/
|
||||
@Excel(name = "类型")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
@Excel(name = "内容")
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 文本编辑器类型 1 Quill富文本编辑器 2 CherryMarkdown
|
||||
*/
|
||||
@Excel(name = "文本编辑器类型")
|
||||
private String contentType;
|
||||
|
||||
/**
|
||||
* Markdown格式内容
|
||||
*/
|
||||
@Excel(name = "Markdown格式内容")
|
||||
private String contentMarkdown;
|
||||
|
||||
/**
|
||||
* 置顶(0否 1是)
|
||||
*/
|
||||
@Excel(name = "置顶", readConverterExp = "0=否,1=是")
|
||||
private String top;
|
||||
|
||||
/**
|
||||
* 阅读
|
||||
*/
|
||||
@Excel(name = "阅读")
|
||||
private Long views;
|
||||
|
||||
/**
|
||||
* 状态(0暂存 1发布)
|
||||
*/
|
||||
@Excel(name = "状态", readConverterExp = "0=暂存,1=发布")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 首页图片类型(0地址 1上传)
|
||||
*/
|
||||
@Excel(name = "首页图片类型", readConverterExp = "0=地址,1=上传")
|
||||
private String blogPicType;
|
||||
|
||||
/** 首页图片( 1上传) */
|
||||
@Excel(name = "首页图片( 1上传)")
|
||||
private String blogPic;
|
||||
|
||||
/** 首页图片( 0地址) */
|
||||
@Excel(name = "首页图片( 0地址)")
|
||||
private String blogPicLink;
|
||||
|
||||
/** 简介 */
|
||||
@Excel(name = "简介")
|
||||
private String blogDesc;
|
||||
|
||||
/** 附件列表 */
|
||||
private String blogFiles;
|
||||
|
||||
/**
|
||||
* 分类
|
||||
*/
|
||||
private Long[] typeIds;
|
||||
|
||||
/**
|
||||
* 分类
|
||||
*/
|
||||
private Long[] tagIds;
|
||||
|
||||
/** 角色对象 */
|
||||
private List<CmsTag> tags;
|
||||
|
||||
/** 角色对象 */
|
||||
private List<CmsType> types;
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public void setTop(String top) {
|
||||
this.top = top;
|
||||
}
|
||||
|
||||
public String getTop() {
|
||||
return top;
|
||||
}
|
||||
|
||||
public void setViews(Long views) {
|
||||
this.views = views;
|
||||
}
|
||||
|
||||
public Long getViews() {
|
||||
return views;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public Long[] getTypeIds() {
|
||||
return typeIds;
|
||||
}
|
||||
|
||||
public void setTypeIds(Long[] typeIds) {
|
||||
this.typeIds = typeIds;
|
||||
}
|
||||
|
||||
public Long[] getTagIds() {
|
||||
return tagIds;
|
||||
}
|
||||
|
||||
public void setTagIds(Long[] tagIds) {
|
||||
this.tagIds = tagIds;
|
||||
}
|
||||
|
||||
public List<CmsTag> getTags() {
|
||||
return tags;
|
||||
}
|
||||
|
||||
public void setTags(List<CmsTag> tags) {
|
||||
this.tags = tags;
|
||||
}
|
||||
|
||||
public List<CmsType> getTypes() {
|
||||
return types;
|
||||
}
|
||||
|
||||
public void setTypes(List<CmsType> types) {
|
||||
this.types = types;
|
||||
}
|
||||
|
||||
public String getBlogPic() {
|
||||
return blogPic;
|
||||
}
|
||||
|
||||
public void setBlogPic(String blogPic) {
|
||||
this.blogPic = blogPic;
|
||||
}
|
||||
|
||||
public String getBlogDesc() {
|
||||
return blogDesc;
|
||||
}
|
||||
|
||||
public void setBlogDesc(String blogDesc) {
|
||||
this.blogDesc = blogDesc;
|
||||
}
|
||||
|
||||
public String getBlogFiles() {
|
||||
return blogFiles;
|
||||
}
|
||||
|
||||
public void setBlogFiles(String blogFiles) {
|
||||
this.blogFiles = blogFiles;
|
||||
}
|
||||
|
||||
public String getContentType() {
|
||||
return contentType;
|
||||
}
|
||||
|
||||
public void setContentType(String contentType) {
|
||||
this.contentType = contentType;
|
||||
}
|
||||
|
||||
public String getContentMarkdown() {
|
||||
return contentMarkdown;
|
||||
}
|
||||
|
||||
public void setContentMarkdown(String contentMarkdown) {
|
||||
this.contentMarkdown = contentMarkdown;
|
||||
}
|
||||
|
||||
public String getBlogPicType() {
|
||||
return blogPicType;
|
||||
}
|
||||
|
||||
public void setBlogPicType(String blogPicType) {
|
||||
this.blogPicType = blogPicType;
|
||||
}
|
||||
|
||||
public String getBlogPicLink() {
|
||||
return blogPicLink;
|
||||
}
|
||||
|
||||
public void setBlogPicLink(String blogPicLink) {
|
||||
this.blogPicLink = blogPicLink;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("id", getId())
|
||||
.append("createBy", getCreateBy())
|
||||
.append("createTime", getCreateTime())
|
||||
.append("updateBy", getUpdateBy())
|
||||
.append("updateTime", getUpdateTime())
|
||||
.append("title", getTitle())
|
||||
.append("type", getType())
|
||||
.append("content", getContent())
|
||||
.append("contentType", getContentType())
|
||||
.append("contentMarkdown", getContentMarkdown())
|
||||
.append("top", getTop())
|
||||
.append("views", getViews())
|
||||
.append("status", getStatus())
|
||||
.append("typeIds", getTypeIds())
|
||||
.append("tagIds", getTagIds())
|
||||
.append("tags", getTags())
|
||||
.append("types", getTypes())
|
||||
.append("blogPicType", getBlogPicType())
|
||||
.append("blogPic", getBlogPic())
|
||||
.append("blogPicLink", getBlogPicLink())
|
||||
.append("blogDesc", getBlogDesc())
|
||||
.append("blogFiles", getBlogFiles())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.cms.blog.domain;
|
||||
/**
|
||||
* @program: RuoYi-Vue
|
||||
* @Author: WangNing
|
||||
* @Description: 〈blog标签关联表 cms_blog_tag〉
|
||||
* @Date: 2022/1/2 22:54
|
||||
*/
|
||||
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
/**
|
||||
* @Author: WangNing
|
||||
* @Description:〈blog标签关联表 cms_blog_tag〉
|
||||
* @Date: 2022/1/2 22:54
|
||||
**/
|
||||
public class CmsBlogTag {
|
||||
private Long tagId;
|
||||
private Long blogId;
|
||||
private Long[] tagIds;
|
||||
|
||||
public Long getTagId() {
|
||||
return tagId;
|
||||
}
|
||||
|
||||
public void setTagId(Long tagId) {
|
||||
this.tagId = tagId;
|
||||
}
|
||||
|
||||
public Long getBlogId() {
|
||||
return blogId;
|
||||
}
|
||||
|
||||
public void setBlogId(Long blogId) {
|
||||
this.blogId = blogId;
|
||||
}
|
||||
|
||||
public Long[] getTagIds() {
|
||||
return tagIds;
|
||||
}
|
||||
|
||||
public void setTagIds(Long[] tagIds) {
|
||||
this.tagIds = tagIds;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("tagId", getTagId())
|
||||
.append("blogId", getBlogId())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.cms.blog.domain;
|
||||
/**
|
||||
* @program: RuoYi-Vue
|
||||
* @Author: WangNing
|
||||
* @Description: 〈blog类型关联表 cms_blog_type〉
|
||||
* @Date: 2022/1/2 23:34
|
||||
*/
|
||||
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
/**
|
||||
* @Author: WangNing
|
||||
* @Description:〈blog分类关联表 cms_blog_type〉
|
||||
* @Date: 2022/1/2 23:34
|
||||
**/
|
||||
public class CmsBlogType {
|
||||
private Long typeId;
|
||||
private Long blogId;
|
||||
private Long[] typeIds;
|
||||
|
||||
public Long getTypeId() {
|
||||
return typeId;
|
||||
}
|
||||
|
||||
public void setTypeId(Long typeId) {
|
||||
this.typeId = typeId;
|
||||
}
|
||||
|
||||
public Long getBlogId() {
|
||||
return blogId;
|
||||
}
|
||||
|
||||
public void setBlogId(Long blogId) {
|
||||
this.blogId = blogId;
|
||||
}
|
||||
|
||||
public Long[] getTypeIds() {
|
||||
return typeIds;
|
||||
}
|
||||
|
||||
public void setTypeIds(Long[] typeIds) {
|
||||
this.typeIds = typeIds;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("typeId", getTypeId())
|
||||
.append("blogId", getBlogId())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.ruoyi.cms.blog.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.cms.blog.domain.CmsBlog;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 文章管理Mapper接口
|
||||
*
|
||||
* @author ning
|
||||
* @date 2022-01-01
|
||||
*/
|
||||
public interface CmsBlogMapper
|
||||
{
|
||||
/**
|
||||
* 查询文章管理
|
||||
*
|
||||
* @param id 文章管理主键
|
||||
* @return 文章管理
|
||||
*/
|
||||
public CmsBlog selectCmsBlogById(Long id);
|
||||
|
||||
/**
|
||||
* 查询文章管理列表
|
||||
*
|
||||
* @param cmsBlog 文章管理
|
||||
* @return 文章管理集合
|
||||
*/
|
||||
public List<CmsBlog> selectCmsBlogList(CmsBlog cmsBlog);
|
||||
|
||||
public List<CmsBlog> selectCmsBlogListBetweenCreateTime(@Param("title") String title,@Param("type") String type,@Param("top") String top,@Param("status") String status,@Param("createTimeBegin") String createTimeBegin,@Param("createTimeEnd") String createTimeEnd,@Param("createBy") String createBy);
|
||||
|
||||
/**
|
||||
* 查询推荐文章列表
|
||||
*/
|
||||
public List<CmsBlog> selectCmsBlogListRecommend(CmsBlog cmsBlog);
|
||||
|
||||
/**
|
||||
* 按分类查询文章管理列表
|
||||
*/
|
||||
public List<CmsBlog> selectCmsBlogListByTypeId(Long id);
|
||||
|
||||
/**
|
||||
* 按标签查询文章管理列表
|
||||
*/
|
||||
public List<CmsBlog> selectCmsBlogListByTagId(Long id);
|
||||
|
||||
/**
|
||||
* 新增文章管理
|
||||
*
|
||||
* @param cmsBlog 文章管理
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertCmsBlog(CmsBlog cmsBlog);
|
||||
|
||||
/**
|
||||
* 修改文章管理
|
||||
*
|
||||
* @param cmsBlog 文章管理
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateCmsBlog(CmsBlog cmsBlog);
|
||||
|
||||
/**
|
||||
* 删除文章管理
|
||||
*
|
||||
* @param id 文章管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteCmsBlogById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除文章管理
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteCmsBlogByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 统计博客数量
|
||||
*
|
||||
* @param cmsBlog 查询条件
|
||||
* @return 博客数量
|
||||
*/
|
||||
public int countCmsBlog(CmsBlog cmsBlog);
|
||||
|
||||
/**
|
||||
* 统计总阅读量
|
||||
*
|
||||
* @param cmsBlog 查询条件
|
||||
* @return 总阅读量
|
||||
*/
|
||||
public Long sumViews(CmsBlog cmsBlog);
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.ruoyi.cms.blog.mapper;
|
||||
|
||||
import com.ruoyi.cms.blog.domain.CmsBlogTag;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @program: RuoYi-Vue
|
||||
* @Author: WangNing
|
||||
* @Description: 〈blog标签关联 数据层〉
|
||||
* @Date: 2022/1/2 23:12
|
||||
*/
|
||||
public interface CmsBlogTagMapper {
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
public int batchBlogTag(List<CmsBlogTag> blogTagList);
|
||||
/**
|
||||
* 通过blogID删除blog文件关联
|
||||
*/
|
||||
public int deleteBlogTagByBlogId(Long blogId);
|
||||
/**
|
||||
* 批量删除blog文件关联
|
||||
*/
|
||||
public int deleteBlogTag(Long[] ids);
|
||||
/**
|
||||
* 查询文件列表
|
||||
*/
|
||||
public List<CmsBlogTag> selectBlogTagList(Long blogId);
|
||||
/**
|
||||
* 通过tagId删除blog文件关联
|
||||
*/
|
||||
public int deleteBlogTagByTagId(Long tagId);
|
||||
/**
|
||||
* 通过tagId统计blog数量
|
||||
*/
|
||||
public int countBlogByTagId(Long tagId);
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.ruoyi.cms.blog.mapper;
|
||||
|
||||
import com.ruoyi.cms.blog.domain.CmsBlogType;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @program: RuoYi-Vue
|
||||
* @Author: WangNing
|
||||
* @Description: 〈blog分类关联 数据层〉
|
||||
* @Date: 2022/1/2 23:37
|
||||
*/
|
||||
public interface CmsBlogTypeMapper {
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
public int batchBlogType(List<CmsBlogType> blogTypeList);
|
||||
/**
|
||||
* 通过blogID删除blog文件关联
|
||||
*/
|
||||
public int deleteBlogTypeByBlogId(Long blogId);
|
||||
/**
|
||||
* 批量删除blog文件关联
|
||||
*/
|
||||
public int deleteBlogType(Long[] ids);
|
||||
/**
|
||||
* 查询博客列表
|
||||
*/
|
||||
public List<CmsBlogType> selectBlogTypeList(Long blogId);
|
||||
/**
|
||||
* 通过typeId删除blog文件关联
|
||||
*/
|
||||
public int deleteBlogTypeByTypeId(Long typeId);
|
||||
/**
|
||||
* 通过typeId统计blog数量
|
||||
*/
|
||||
public int countBlogByTypeId(Long typeId);
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.ruoyi.cms.blog.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.cms.blog.domain.CmsBlog;
|
||||
|
||||
/**
|
||||
* 文章管理Service接口
|
||||
*
|
||||
* @author ning
|
||||
* @date 2022-01-01
|
||||
*/
|
||||
public interface ICmsBlogService
|
||||
{
|
||||
/**
|
||||
* 查询文章管理
|
||||
*
|
||||
* @param id 文章管理主键
|
||||
* @return 文章管理
|
||||
*/
|
||||
public CmsBlog selectCmsBlogById(Long id);
|
||||
|
||||
/**
|
||||
* 查询文章管理列表
|
||||
*
|
||||
* @param cmsBlog 文章管理
|
||||
* @return 文章管理集合
|
||||
*/
|
||||
public List<CmsBlog> selectCmsBlogList(CmsBlog cmsBlog);
|
||||
|
||||
/**
|
||||
* 查询推荐文章列表
|
||||
*/
|
||||
public List<CmsBlog> selectCmsBlogListRecommend(CmsBlog cmsBlog);
|
||||
|
||||
/**
|
||||
* 按分类查询文章列表
|
||||
*/
|
||||
public List<CmsBlog> selectCmsBlogListByTypeId(Long id);
|
||||
|
||||
/**
|
||||
* 按标签查询文章列表
|
||||
*/
|
||||
public List<CmsBlog> selectCmsBlogListByTagId(Long id);
|
||||
|
||||
/**
|
||||
* 新增文章管理
|
||||
*
|
||||
* @param cmsBlog 文章管理
|
||||
* @return 结果
|
||||
*/
|
||||
public Long insertCmsBlog(CmsBlog cmsBlog);
|
||||
|
||||
/**
|
||||
* 修改文章管理
|
||||
*
|
||||
* @param cmsBlog 文章管理
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateCmsBlog(CmsBlog cmsBlog);
|
||||
|
||||
/**
|
||||
* 批量删除文章管理
|
||||
*
|
||||
* @param ids 需要删除的文章管理主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteCmsBlogByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除文章管理信息
|
||||
*
|
||||
* @param id 文章管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteCmsBlogById(Long id);
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.ruoyi.cms.blog.service;
|
||||
|
||||
import com.ruoyi.cms.blog.domain.CmsBlogTag;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @program: RuoYi-Vue
|
||||
* @Author: WangNing
|
||||
* @Description: 〈${DESCRIPTION}〉
|
||||
* @Date: 2022/1/2 23:22
|
||||
*/
|
||||
public interface ICmsBlogTagService {
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
public int batchBlogTag(List<CmsBlogTag> blogTagList);
|
||||
/**
|
||||
* 通过blogID删除blog标签关联
|
||||
*/
|
||||
public int deleteBlogTagByBlogId(Long blogId);
|
||||
/**
|
||||
* 批量删除blog标签关联
|
||||
*/
|
||||
public int deleteBlogTag(Long[] ids);
|
||||
/**
|
||||
* 查询标签列表
|
||||
*/
|
||||
public List<CmsBlogTag> selectBlogTagList(Long blogId);
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.ruoyi.cms.blog.service;
|
||||
|
||||
import com.ruoyi.cms.blog.domain.CmsBlogType;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @program: RuoYi-Vue
|
||||
* @Author: WangNing
|
||||
* @Description: 〈${DESCRIPTION}〉
|
||||
* @Date: 2022/1/2 23:42
|
||||
*/
|
||||
public interface ICmsBlogTypeService {
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
public int batchBlogType(List<CmsBlogType> blogTypeList);
|
||||
/**
|
||||
* 通过blogID删除blog分类关联
|
||||
*/
|
||||
public int deleteBlogTypeByBlogId(Long blogId);
|
||||
/**
|
||||
* 批量删除blog分类关联
|
||||
*/
|
||||
public int deleteBlogType(Long[] ids);
|
||||
/**
|
||||
* 查询分类列表
|
||||
*/
|
||||
public List<CmsBlogType> selectBlogTypeList(Long blogId);
|
||||
}
|
||||
@@ -0,0 +1,337 @@
|
||||
package com.ruoyi.cms.blog.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import com.ruoyi.cms.blog.domain.CmsBlogTag;
|
||||
import com.ruoyi.cms.blog.domain.CmsBlogType;
|
||||
import com.ruoyi.cms.blog.mapper.CmsBlogTagMapper;
|
||||
import com.ruoyi.cms.blog.mapper.CmsBlogTypeMapper;
|
||||
import com.ruoyi.cms.tag.domain.CmsTag;
|
||||
import com.ruoyi.cms.tag.mapper.CmsTagMapper;
|
||||
import com.ruoyi.cms.type.domain.CmsType;
|
||||
import com.ruoyi.cms.type.mapper.CmsTypeMapper;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.cms.blog.mapper.CmsBlogMapper;
|
||||
import com.ruoyi.cms.blog.domain.CmsBlog;
|
||||
import com.ruoyi.cms.blog.service.ICmsBlogService;
|
||||
|
||||
/**
|
||||
* 文章管理Service业务层处理
|
||||
*
|
||||
* @author ning
|
||||
* @date 2022-01-01
|
||||
*/
|
||||
@Service
|
||||
public class CmsBlogServiceImpl implements ICmsBlogService
|
||||
{
|
||||
@Autowired
|
||||
private CmsBlogMapper cmsBlogMapper;
|
||||
|
||||
@Autowired
|
||||
private CmsBlogTagMapper cmsBlogTagMapper;
|
||||
|
||||
@Autowired
|
||||
private CmsTagMapper cmsTagMapper;
|
||||
|
||||
@Autowired
|
||||
private CmsBlogTypeMapper cmsBlogTypeMapper;
|
||||
|
||||
@Autowired
|
||||
private CmsTypeMapper cmsTypeMapper;
|
||||
|
||||
/**
|
||||
* 查询文章管理
|
||||
*
|
||||
* @param id 文章管理主键
|
||||
* @return 文章管理
|
||||
*/
|
||||
@Override
|
||||
public CmsBlog selectCmsBlogById(Long id)
|
||||
{
|
||||
CmsBlog blog = cmsBlogMapper.selectCmsBlogById(id);
|
||||
//查询标签列表
|
||||
List<CmsBlogTag> blogTagList = cmsBlogTagMapper.selectBlogTagList(id);
|
||||
Long[] tagIds = new Long[blogTagList.size()];
|
||||
List<CmsTag> tags = new ArrayList<>();
|
||||
List<CmsType> types = new ArrayList<>();
|
||||
for (int i = 0; i<blogTagList.size();i++){
|
||||
CmsBlogTag cmsBlogTag = blogTagList.get(i);
|
||||
Long tagId = cmsBlogTag.getTagId();
|
||||
tagIds[i] = tagId;
|
||||
CmsTag cmsTag = cmsTagMapper.selectCmsTagByTagId(tagId);
|
||||
tags.add(cmsTag);
|
||||
}
|
||||
blog.setTagIds(tagIds);
|
||||
blog.setTags(tags);
|
||||
//查询分类列表
|
||||
List<CmsBlogType> blogTypeList = cmsBlogTypeMapper.selectBlogTypeList(id);
|
||||
Long[] typeIds = new Long[blogTypeList.size()];
|
||||
for (int i = 0; i<blogTypeList.size();i++){
|
||||
CmsBlogType cmsBlogType = blogTypeList.get(i);
|
||||
Long typeId = cmsBlogType.getTypeId();
|
||||
typeIds[i] = typeId;
|
||||
CmsType cmsType = cmsTypeMapper.selectCmsTypeByTypeId(typeId);
|
||||
types.add(cmsType);
|
||||
}
|
||||
blog.setTypeIds(typeIds);
|
||||
blog.setTypes(types);
|
||||
return blog;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询文章管理列表
|
||||
*
|
||||
* @param cmsBlog 文章管理
|
||||
* @return 文章管理
|
||||
*/
|
||||
@Override
|
||||
public List<CmsBlog> selectCmsBlogList(CmsBlog cmsBlog)
|
||||
{
|
||||
List<CmsBlog> cmsBlogList = cmsBlogMapper.selectCmsBlogList(cmsBlog);
|
||||
|
||||
// 为每个博客设置首页图片(如果为空,则从content中提取)
|
||||
for (CmsBlog blog : cmsBlogList) {
|
||||
setDefaultBlogPicFromContent(blog);
|
||||
}
|
||||
|
||||
List<CmsBlog> blogList = BlogListAddTypeAndTag(cmsBlogList);
|
||||
return blogList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询推荐文章列表
|
||||
*/
|
||||
@Override
|
||||
public List<CmsBlog> selectCmsBlogListRecommend(CmsBlog cmsBlog) {
|
||||
List<CmsBlog> cmsBlogList = cmsBlogMapper.selectCmsBlogListRecommend(cmsBlog);
|
||||
// 为每个博客设置首页图片(如果为空,则从content中提取)
|
||||
for (CmsBlog blog : cmsBlogList) {
|
||||
setDefaultBlogPicFromContent(blog);
|
||||
}
|
||||
List<CmsBlog> blogList = BlogListAddTypeAndTag(cmsBlogList);
|
||||
return blogList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 按分类查询文章列表
|
||||
*/
|
||||
@Override
|
||||
public List<CmsBlog> selectCmsBlogListByTypeId(Long id) {
|
||||
List<CmsBlog> cmsBlogList = cmsBlogMapper.selectCmsBlogListByTypeId(id);
|
||||
// 为每个博客设置首页图片(如果为空,则从content中提取)
|
||||
for (CmsBlog blog : cmsBlogList) {
|
||||
setDefaultBlogPicFromContent(blog);
|
||||
}
|
||||
List<CmsBlog> blogList = BlogListAddTypeAndTag(cmsBlogList);
|
||||
return blogList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 按标签查询文章列表
|
||||
*/
|
||||
@Override
|
||||
public List<CmsBlog> selectCmsBlogListByTagId(Long id) {
|
||||
List<CmsBlog> cmsBlogList = cmsBlogMapper.selectCmsBlogListByTagId(id);
|
||||
// 为每个博客设置首页图片(如果为空,则从content中提取)
|
||||
for (CmsBlog blog : cmsBlogList) {
|
||||
setDefaultBlogPicFromContent(blog);
|
||||
}
|
||||
List<CmsBlog> blogList = BlogListAddTypeAndTag(cmsBlogList);
|
||||
return blogList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增文章管理
|
||||
*
|
||||
* @param cmsBlog 文章管理
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public Long insertCmsBlog(CmsBlog cmsBlog)
|
||||
{
|
||||
cmsBlog.setCreateTime(DateUtils.getNowDate());
|
||||
cmsBlogMapper.insertCmsBlog(cmsBlog);
|
||||
Long blogId = cmsBlog.getId();
|
||||
//新增文章标签
|
||||
Long[] tagIds = cmsBlog.getTagIds();
|
||||
if (tagIds!=null&&tagIds.length>0){
|
||||
List<CmsBlogTag> blogTagList = new ArrayList<>();
|
||||
for (Long tagId : tagIds) {
|
||||
CmsBlogTag cmsBlogTag = new CmsBlogTag();
|
||||
cmsBlogTag.setBlogId(blogId);
|
||||
cmsBlogTag.setTagId(tagId);
|
||||
blogTagList.add(cmsBlogTag);
|
||||
}
|
||||
cmsBlogTagMapper.batchBlogTag(blogTagList);
|
||||
}
|
||||
//新增文章分类
|
||||
Long[] typeIds = cmsBlog.getTypeIds();
|
||||
if (typeIds!=null&&typeIds.length>0){
|
||||
List<CmsBlogType> blogTypeList = new ArrayList<>();
|
||||
for (Long typeId : typeIds) {
|
||||
CmsBlogType cmsBlogType = new CmsBlogType();
|
||||
cmsBlogType.setBlogId(blogId);
|
||||
cmsBlogType.setTypeId(typeId);
|
||||
blogTypeList.add(cmsBlogType);
|
||||
}
|
||||
cmsBlogTypeMapper.batchBlogType(blogTypeList);
|
||||
}
|
||||
return blogId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改文章管理
|
||||
*
|
||||
* @param cmsBlog 文章管理
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateCmsBlog(CmsBlog cmsBlog)
|
||||
{
|
||||
cmsBlog.setUpdateTime(DateUtils.getNowDate());
|
||||
Long blogId = cmsBlog.getId();
|
||||
//清空文章分类关联
|
||||
cmsBlogTypeMapper.deleteBlogTypeByBlogId(blogId);
|
||||
//清空文章标签关联
|
||||
cmsBlogTagMapper.deleteBlogTagByBlogId(blogId);
|
||||
//新增文章标签
|
||||
Long[] tagIds = cmsBlog.getTagIds();
|
||||
if (tagIds!=null&&tagIds.length>0){
|
||||
List<CmsBlogTag> blogTagList = new ArrayList<>();
|
||||
for (Long tagId : tagIds) {
|
||||
CmsBlogTag cmsBlogTag = new CmsBlogTag();
|
||||
cmsBlogTag.setBlogId(blogId);
|
||||
cmsBlogTag.setTagId(tagId);
|
||||
blogTagList.add(cmsBlogTag);
|
||||
}
|
||||
cmsBlogTagMapper.batchBlogTag(blogTagList);
|
||||
}
|
||||
//新增文章分类
|
||||
Long[] typeIds = cmsBlog.getTypeIds();
|
||||
if (typeIds!=null&&typeIds.length>0){
|
||||
List<CmsBlogType> blogTypeList = new ArrayList<>();
|
||||
for (Long typeId : typeIds) {
|
||||
CmsBlogType cmsBlogType = new CmsBlogType();
|
||||
cmsBlogType.setBlogId(blogId);
|
||||
cmsBlogType.setTypeId(typeId);
|
||||
blogTypeList.add(cmsBlogType);
|
||||
}
|
||||
cmsBlogTypeMapper.batchBlogType(blogTypeList);
|
||||
}
|
||||
return cmsBlogMapper.updateCmsBlog(cmsBlog);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除文章管理
|
||||
*
|
||||
* @param ids 需要删除的文章管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteCmsBlogByIds(Long[] ids)
|
||||
{
|
||||
for (Long id : ids) {
|
||||
//清空文章分类关联
|
||||
cmsBlogTypeMapper.deleteBlogTypeByBlogId(id);
|
||||
//清空文章标签关联
|
||||
cmsBlogTagMapper.deleteBlogTagByBlogId(id);
|
||||
}
|
||||
return cmsBlogMapper.deleteCmsBlogByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除文章管理信息
|
||||
*
|
||||
* @param id 文章管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteCmsBlogById(Long id)
|
||||
{
|
||||
//清空文章分类关联
|
||||
cmsBlogTypeMapper.deleteBlogTypeByBlogId(id);
|
||||
//清空文章标签关联
|
||||
cmsBlogTagMapper.deleteBlogTagByBlogId(id);
|
||||
return cmsBlogMapper.deleteCmsBlogById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 如果首页图片为空,从content中提取第一个图片作为首页图片
|
||||
*
|
||||
* @param blog 博客对象
|
||||
*/
|
||||
private void setDefaultBlogPicFromContent(CmsBlog blog) {
|
||||
// 检查首页图片是否为空
|
||||
boolean hasBlogPic = (blog.getBlogPic() != null && !blog.getBlogPic().trim().isEmpty()) ||
|
||||
(blog.getBlogPicLink() != null && !blog.getBlogPicLink().trim().isEmpty());
|
||||
|
||||
if (!hasBlogPic && blog.getContent() != null && !blog.getContent().trim().isEmpty()) {
|
||||
String firstImageUrl = extractFirstImageFromContent(blog.getContent());
|
||||
if (firstImageUrl != null && !firstImageUrl.trim().isEmpty()) {
|
||||
// 设置为地址类型的首页图片
|
||||
blog.setBlogPicType("0");
|
||||
blog.setBlogPicLink(firstImageUrl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 从内容中提取第一个图片的URL
|
||||
* 支持Markdown格式: 和 HTML格式:<img src="url">
|
||||
*
|
||||
* @param content 内容(支持Markdown和HTML)
|
||||
* @return 第一个图片的URL,如果没有找到则返回null
|
||||
*/
|
||||
private String extractFirstImageFromContent(String content) {
|
||||
// 首先尝试匹配Markdown格式的图片:
|
||||
Pattern markdownPattern = Pattern.compile("!\\[.*?\\]\\(([^)]+)\\)");
|
||||
Matcher markdownMatcher = markdownPattern.matcher(content);
|
||||
|
||||
if (markdownMatcher.find()) {
|
||||
return markdownMatcher.group(1);
|
||||
}
|
||||
|
||||
// 如果没有找到Markdown格式,再尝试匹配HTML格式的img标签
|
||||
Pattern htmlPattern = Pattern.compile("<img[^>]+src\\s*=\\s*[\"']([^\"']+)[\"'][^>]*>", Pattern.CASE_INSENSITIVE);
|
||||
Matcher htmlMatcher = htmlPattern.matcher(content);
|
||||
|
||||
if (htmlMatcher.find()) {
|
||||
return htmlMatcher.group(1);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private List<CmsBlog> BlogListAddTypeAndTag(List<CmsBlog> cmsBlogList){
|
||||
if (cmsBlogList==null||cmsBlogList.size()<0){
|
||||
return cmsBlogList;
|
||||
}
|
||||
for (CmsBlog blog : cmsBlogList) {
|
||||
Long blogId = blog.getId();
|
||||
//查询标签列表
|
||||
List<CmsBlogTag> blogTagList = cmsBlogTagMapper.selectBlogTagList(blogId);
|
||||
List<CmsTag> cmsTagList = new ArrayList<>();
|
||||
blogTagList.forEach((CmsBlogTag cmsBlogTag)->{
|
||||
Long tagId = cmsBlogTag.getTagId();
|
||||
CmsTag cmsTag = cmsTagMapper.selectCmsTagByTagId(tagId);
|
||||
cmsTagList.add(cmsTag);
|
||||
});
|
||||
blog.setTags(cmsTagList);
|
||||
//查询分类列表
|
||||
List<CmsBlogType> blogTypeList = cmsBlogTypeMapper.selectBlogTypeList(blogId);
|
||||
List<CmsType> cmsTypeList = new ArrayList<>();
|
||||
blogTypeList.forEach((CmsBlogType cmsBlogType)->{
|
||||
Long typeId = cmsBlogType.getTypeId();
|
||||
CmsType cmsType = cmsTypeMapper.selectCmsTypeByTypeId(typeId);
|
||||
cmsTypeList.add(cmsType);
|
||||
});
|
||||
blog.setTypes(cmsTypeList);
|
||||
}
|
||||
return cmsBlogList;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.ruoyi.cms.blog.service.impl;
|
||||
/**
|
||||
* @program: RuoYi-Vue
|
||||
* @Author: WangNing
|
||||
* @Description: 〈〉
|
||||
* @Date: 2022/1/2 23:24
|
||||
*/
|
||||
|
||||
import com.ruoyi.cms.blog.domain.CmsBlogTag;
|
||||
import com.ruoyi.cms.blog.mapper.CmsBlogTagMapper;
|
||||
import com.ruoyi.cms.blog.service.ICmsBlogTagService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author: WangNing
|
||||
* @Description:〈〉
|
||||
* @Date: 2022/1/2 23:24
|
||||
**/
|
||||
@Service
|
||||
public class CmsBlogTagServiceImpl implements ICmsBlogTagService {
|
||||
|
||||
@Autowired
|
||||
CmsBlogTagMapper cmsBlogTagMapper;
|
||||
|
||||
@Override
|
||||
public int batchBlogTag(List<CmsBlogTag> blogTagList) {
|
||||
return cmsBlogTagMapper.batchBlogTag(blogTagList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteBlogTagByBlogId(Long blogId) {
|
||||
return cmsBlogTagMapper.deleteBlogTagByBlogId(blogId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteBlogTag(Long[] ids) {
|
||||
return cmsBlogTagMapper.deleteBlogTag(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CmsBlogTag> selectBlogTagList(Long blogId) {
|
||||
return cmsBlogTagMapper.selectBlogTagList(blogId);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.ruoyi.cms.blog.service.impl;
|
||||
/**
|
||||
* @program: RuoYi-Vue
|
||||
* @Author: WangNing
|
||||
* @Description: 〈〉
|
||||
* @Date: 2022/1/2 23:44
|
||||
*/
|
||||
|
||||
import com.ruoyi.cms.blog.domain.CmsBlogType;
|
||||
import com.ruoyi.cms.blog.mapper.CmsBlogTypeMapper;
|
||||
import com.ruoyi.cms.blog.service.ICmsBlogTypeService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author: WangNing
|
||||
* @Description:〈〉
|
||||
* @Date: 2022/1/2 23:44
|
||||
**/
|
||||
@Service
|
||||
public class CmsBlogTypeServiceImpl implements ICmsBlogTypeService {
|
||||
|
||||
@Autowired
|
||||
CmsBlogTypeMapper cmsBlogTypeMapper;
|
||||
|
||||
@Override
|
||||
public int batchBlogType(List<CmsBlogType> blogTypeList) {
|
||||
return cmsBlogTypeMapper.batchBlogType(blogTypeList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteBlogTypeByBlogId(Long blogId) {
|
||||
return cmsBlogTypeMapper.deleteBlogTypeByBlogId(blogId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteBlogType(Long[] ids) {
|
||||
return cmsBlogTypeMapper.deleteBlogType(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CmsBlogType> selectBlogTypeList(Long blogId) {
|
||||
return cmsBlogTypeMapper.selectBlogTypeList(blogId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user