From 082d64655ed34b23d64436389051327ce3ad389e Mon Sep 17 00:00:00 2001 From: TinyAnts Date: Thu, 14 Jul 2022 16:05:00 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=96=87=E7=AB=A0=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../article/ArticleCateController.java | 113 ++++++ .../article/ArticleTextController.java | 102 ++++++ .../controller/common/ArticleController.java | 219 ------------ .../service/article/IArticleCateService.java | 66 ++++ .../service/article/IArticleTextService.java | 58 +++ .../article/impl/ArticleCateServiceImpl.java | 187 ++++++++++ .../article/impl/ArticleTextServiceImpl.java | 182 ++++++++++ .../admin/service/common/IArticleService.java | 111 ------ .../common/impl/ArticleServiceImpl.java | 337 ------------------ 9 files changed, 708 insertions(+), 667 deletions(-) create mode 100644 server/like-admin/src/main/java/com/hxkj/admin/controller/article/ArticleCateController.java create mode 100644 server/like-admin/src/main/java/com/hxkj/admin/controller/article/ArticleTextController.java delete mode 100644 server/like-admin/src/main/java/com/hxkj/admin/controller/common/ArticleController.java create mode 100644 server/like-admin/src/main/java/com/hxkj/admin/service/article/IArticleCateService.java create mode 100644 server/like-admin/src/main/java/com/hxkj/admin/service/article/IArticleTextService.java create mode 100644 server/like-admin/src/main/java/com/hxkj/admin/service/article/impl/ArticleCateServiceImpl.java create mode 100644 server/like-admin/src/main/java/com/hxkj/admin/service/article/impl/ArticleTextServiceImpl.java delete mode 100644 server/like-admin/src/main/java/com/hxkj/admin/service/common/IArticleService.java delete mode 100644 server/like-admin/src/main/java/com/hxkj/admin/service/common/impl/ArticleServiceImpl.java diff --git a/server/like-admin/src/main/java/com/hxkj/admin/controller/article/ArticleCateController.java b/server/like-admin/src/main/java/com/hxkj/admin/controller/article/ArticleCateController.java new file mode 100644 index 00000000..096cd4c1 --- /dev/null +++ b/server/like-admin/src/main/java/com/hxkj/admin/controller/article/ArticleCateController.java @@ -0,0 +1,113 @@ +package com.hxkj.admin.controller.article; + +import com.hxkj.admin.config.aop.Log; +import com.hxkj.admin.service.article.IArticleCateService; +import com.hxkj.admin.validate.article.CategoryParam; +import com.hxkj.admin.validate.common.PageParam; +import com.hxkj.admin.vo.common.article.CategoryVo; +import com.hxkj.common.core.AjaxResult; +import com.hxkj.common.core.PageResult; +import com.hxkj.common.validator.annotation.IDMust; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +/** + * 文章分类管理 + */ +@RestController +@RequestMapping("api/article/cate") +public class ArticleCateController { + + @Resource + IArticleCateService iArticleCateService; + + /** + * 分类所有 + * + * @author fzr + * @return Object + */ + @GetMapping("/all") + public Object all() { + List list = iArticleCateService.all(); + return AjaxResult.success(list); + } + + /** + * 分类列表 + * + * @author fzr + * @param pageParam 分页参数 + * @param params 搜索参数 + * @return Object + */ + @GetMapping("/cateList") + public Object list(@Validated PageParam pageParam, + @RequestParam Map params) { + PageResult list = iArticleCateService.list(pageParam, params); + return AjaxResult.success(list); + } + + /** + * 分类详情 + * + * @author fzr + * @param id 主键 + * @return Object + */ + @GetMapping("/detail") + public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) { + CategoryVo vo = iArticleCateService.detail(id); + return AjaxResult.success(vo); + } + + /** + * 分类新增 + * + * @author fzr + * @param articleCateParam 分类参数 + * @return Object + */ + @Log(title = "文章分类新增") + @PostMapping("/add") + public Object add(@Validated(value = CategoryParam.create.class) + @RequestBody CategoryParam articleCateParam) { + iArticleCateService.add(articleCateParam); + return AjaxResult.success(); + } + + /** + * 分类编辑 + * + * @author fzr + * @param articleCateParam 分类编辑 + * @return Object + */ + @Log(title = "文章分类编辑") + @PostMapping("/edit") + public Object edit(@Validated(value = CategoryParam.update.class) + @RequestBody CategoryParam articleCateParam) { + iArticleCateService.edit(articleCateParam); + return AjaxResult.success(); + } + + /** + * 分类删除 + * + * @author fzr + * @param articleCateParam 分类删除 + * @return Object + */ + @Log(title = "文章分类删除") + @PostMapping("/cateDel") + public Object del(@Validated(value = CategoryParam.delete.class) + @RequestBody CategoryParam articleCateParam) { + iArticleCateService.del(articleCateParam.getId()); + return AjaxResult.success(); + } + +} diff --git a/server/like-admin/src/main/java/com/hxkj/admin/controller/article/ArticleTextController.java b/server/like-admin/src/main/java/com/hxkj/admin/controller/article/ArticleTextController.java new file mode 100644 index 00000000..d05d3dea --- /dev/null +++ b/server/like-admin/src/main/java/com/hxkj/admin/controller/article/ArticleTextController.java @@ -0,0 +1,102 @@ +package com.hxkj.admin.controller.article; + +import com.hxkj.admin.config.aop.Log; +import com.hxkj.admin.service.article.IArticleTextService; +import com.hxkj.admin.validate.article.ArticleParam; +import com.hxkj.admin.validate.common.PageParam; +import com.hxkj.admin.vo.common.article.ArticleDetailVo; +import com.hxkj.admin.vo.common.article.ArticleListVo; +import com.hxkj.common.core.AjaxResult; +import com.hxkj.common.core.PageResult; +import com.hxkj.common.validator.annotation.IDMust; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * 文章管理 + */ +@RestController +@RequestMapping("api/article") +public class ArticleTextController { + + @Resource + IArticleTextService iArticleTextService; + + /** + * 文章列表 + * + * @author fzr + * @param pageParam 分页参数 + * @param params 搜索参数 + * @return Object + */ + @GetMapping("/list") + public Object articleList(@Validated PageParam pageParam, + @RequestParam Map params) { + PageResult vos = iArticleTextService.list(pageParam, params); + return AjaxResult.success(vos); + } + + /** + * 文章列表 + * + * @author fzr + * @param id 文章ID + * @return Object + */ + @GetMapping("/detail") + public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) { + ArticleDetailVo vo = iArticleTextService.detail(id); + return AjaxResult.success(vo); + } + + /** + * 文章新增 + * + * @author fzr + * @param articleParam 文章参数 + * @return Object + */ + @Log(title = "文章新增") + @PostMapping("/add") + public Object add( + @Validated(value = ArticleParam.create.class) + @RequestBody ArticleParam articleParam) { + iArticleTextService.add(articleParam); + return AjaxResult.success(); + } + + /** + * 文章编辑 + * + * @author fzr + * @param articleParam 文章参数 + * @return Object + */ + @Log(title = "文章编辑") + @PostMapping("/edit") + public Object edit(@Validated(value = ArticleParam.update.class) + @RequestBody ArticleParam articleParam) { + iArticleTextService.edit(articleParam); + return AjaxResult.success(); + } + + /** + * 文章删除 + * + * @author fzr + * @param articleParam 文章参数 + * @return Object + */ + @Log(title = "文章删除") + @PostMapping("/del") + public Object del(@Validated(value = ArticleParam.delete.class) + @RequestBody ArticleParam articleParam) { + iArticleTextService.del(articleParam.getId()); + return AjaxResult.success(); + } + +} diff --git a/server/like-admin/src/main/java/com/hxkj/admin/controller/common/ArticleController.java b/server/like-admin/src/main/java/com/hxkj/admin/controller/common/ArticleController.java deleted file mode 100644 index 13747b83..00000000 --- a/server/like-admin/src/main/java/com/hxkj/admin/controller/common/ArticleController.java +++ /dev/null @@ -1,219 +0,0 @@ -package com.hxkj.admin.controller.common; - -import com.hxkj.admin.config.aop.Log; -import com.hxkj.admin.service.common.IArticleService; -import com.hxkj.admin.validate.article.CategoryParam; -import com.hxkj.admin.validate.article.ArticleParam; -import com.hxkj.admin.validate.common.PageParam; -import com.hxkj.admin.vo.common.article.ArticleDetailVo; -import com.hxkj.admin.vo.common.article.ArticleListVo; -import com.hxkj.admin.vo.common.article.CategoryVo; -import com.hxkj.common.core.AjaxResult; -import com.hxkj.common.core.PageResult; -import com.hxkj.common.validator.annotation.IDMust; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; -import java.util.Map; - -@RestController -@RequestMapping("api/common/article") -public class ArticleController { - - @Resource - IArticleService iArticleService; - - /** - * 文章列表 - * - * @author fzr - * @param pageParam 分页参数 - * @param params 搜索参数 - * @return Object - */ - @GetMapping("/articleList") - public Object articleList(@Validated PageParam pageParam, - @RequestParam Map params) { - PageResult vos = iArticleService.articleList(pageParam, params); - return AjaxResult.success(vos); - } - - /** - * 文章列表 - * - * @author fzr - * @param id 文章ID - * @return Object - */ - @GetMapping("/articleDetail") - public Object articleDetail(@Validated @IDMust() @RequestParam("id") Integer id) { - try { - ArticleDetailVo vo = iArticleService.articleDetail(id); - return AjaxResult.success(vo); - } catch (Exception e) { - return AjaxResult.failed(e.getMessage()); - } - } - - /** - * 文章新增 - * - * @author fzr - * @param articleParam 文章参数 - * @return Object - */ - @Log(title = "文章新增") - @PostMapping("/articleAdd") - public Object articleAdd( - @Validated(value = ArticleParam.create.class) - @RequestBody ArticleParam articleParam) { - try { - iArticleService.articleAdd(articleParam); - return AjaxResult.success(); - } catch (Exception e) { - return AjaxResult.failed(e.getMessage()); - } - } - - /** - * 文章编辑 - * - * @author fzr - * @param articleParam 文章参数 - * @return Object - */ - @Log(title = "文章编辑") - @PostMapping("/articleEdit") - public Object articleEdit(@Validated(value = ArticleParam.update.class) - @RequestBody ArticleParam articleParam) { - try { - iArticleService.articleEdit(articleParam); - return AjaxResult.success(); - } catch (Exception e) { - return AjaxResult.failed(e.getMessage()); - } - } - - /** - * 文章删除 - * - * @author fzr - * @param articleParam 文章参数 - * @return Object - */ - @Log(title = "文章删除") - @PostMapping("/articleDel") - public Object articleDel(@Validated(value = ArticleParam.delete.class) - @RequestBody ArticleParam articleParam) { - try { - iArticleService.articleDel(articleParam.getId()); - return AjaxResult.success(); - } catch (Exception e) { - return AjaxResult.failed(e.getMessage()); - } - } - - /** - * 分类所有 - * - * @author fzr - * @return Object - */ - @GetMapping("/cateAll") - public Object cateAll() { - List voPageResult = iArticleService.cateAll(); - return AjaxResult.success(voPageResult); - } - - /** - * 分类列表 - * - * @author fzr - * @param pageParam 分页参数 - * @param params 搜索参数 - * @return Object - */ - @GetMapping("/cateList") - public Object cateList(@Validated PageParam pageParam, - @RequestParam Map params) { - try { - PageResult voPageResult = iArticleService.cateList(pageParam, params); - return AjaxResult.success(voPageResult); - } catch (Exception e) { - return AjaxResult.failed(e.getMessage()); - } - } - - /** - * 分类详情 - * - * @author fzr - * @param id 主键 - * @return Object - */ - @GetMapping("/cateDetail") - public Object cateDetail(@Validated @IDMust() @RequestParam("id") Integer id) { - CategoryVo vo = iArticleService.cateDetail(id); - return AjaxResult.success(vo); - } - - /** - * 分类新增 - * - * @author fzr - * @param articleCateParam 分类参数 - * @return Object - */ - @Log(title = "文章分类新增") - @PostMapping("/cateAdd") - public Object cateAdd(@Validated(value = CategoryParam.create.class) - @RequestBody CategoryParam articleCateParam) { - try { - iArticleService.cateAdd(articleCateParam); - return AjaxResult.success(); - } catch (Exception e) { - return AjaxResult.failed(e.getMessage()); - } - } - - /** - * 分类编辑 - * - * @author fzr - * @param articleCateParam 分类编辑 - * @return Object - */ - @Log(title = "文章分类编辑") - @PostMapping("/cateEdit") - public Object cateEdit(@Validated(value = CategoryParam.update.class) - @RequestBody CategoryParam articleCateParam) { - try { - iArticleService.cateEdit(articleCateParam); - return AjaxResult.success(); - } catch (Exception e) { - return AjaxResult.failed(e.getMessage()); - } - } - - /** - * 分类删除 - * - * @author fzr - * @param articleCateParam 分类删除 - * @return Object - */ - @Log(title = "文章分类删除") - @PostMapping("/cateDel") - public Object cateDel(@Validated(value = CategoryParam.delete.class) - @RequestBody CategoryParam articleCateParam) { - try { - iArticleService.cateDel(articleCateParam.getId()); - return AjaxResult.success(); - } catch (Exception e) { - return AjaxResult.failed(e.getMessage()); - } - } - -} diff --git a/server/like-admin/src/main/java/com/hxkj/admin/service/article/IArticleCateService.java b/server/like-admin/src/main/java/com/hxkj/admin/service/article/IArticleCateService.java new file mode 100644 index 00000000..74550711 --- /dev/null +++ b/server/like-admin/src/main/java/com/hxkj/admin/service/article/IArticleCateService.java @@ -0,0 +1,66 @@ +package com.hxkj.admin.service.article; + +import com.hxkj.admin.validate.article.CategoryParam; +import com.hxkj.admin.validate.common.PageParam; +import com.hxkj.admin.vo.common.article.CategoryVo; +import com.hxkj.common.core.PageResult; + +import java.util.List; +import java.util.Map; + +/** + * 文章分类服务类接口 + */ +public interface IArticleCateService { + + /** + * 分类所有 + * + * @author fzr + * @return List + */ + List all(); + + /** + * 分类列表 + * + * @author fzr + * @param pageParam 分页参数 + * @param params 搜索参数 + * @return PageResult + */ + PageResult list(PageParam pageParam, Map params); + + /** + * 分类详情 + * + * @author fzr + * @param id 分类ID + */ + CategoryVo detail(Integer id); + + /** + * 分类新增 + * + * @author fzr + * @param articleCateParam 分类参数 + */ + void add(CategoryParam articleCateParam); + + /** + * 分类编辑 + * + * @author fzr + * @param articleCateParam 分类参数 + */ + void edit(CategoryParam articleCateParam); + + /** + * 分类删除 + * + * @author fzr + * @param id 分类ID + */ + void del(Integer id); + +} diff --git a/server/like-admin/src/main/java/com/hxkj/admin/service/article/IArticleTextService.java b/server/like-admin/src/main/java/com/hxkj/admin/service/article/IArticleTextService.java new file mode 100644 index 00000000..908ab6b1 --- /dev/null +++ b/server/like-admin/src/main/java/com/hxkj/admin/service/article/IArticleTextService.java @@ -0,0 +1,58 @@ +package com.hxkj.admin.service.article; + +import com.hxkj.admin.validate.article.ArticleParam; +import com.hxkj.admin.validate.common.PageParam; +import com.hxkj.admin.vo.common.article.ArticleDetailVo; +import com.hxkj.admin.vo.common.article.ArticleListVo; +import com.hxkj.common.core.PageResult; + +import java.util.Map; + +/** + * 文章服务接口类 + */ +public interface IArticleTextService { + + /** + * 文章列表 + * + * @author fzr + * @param pageParam 分页参数 + * @param params 搜索参数 + * @return PageResult + */ + PageResult list(PageParam pageParam, Map params); + + /** + * 文章详情 + * + * @author fzr + * @param id 主键ID + */ + ArticleDetailVo detail(Integer id); + + /** + * 文章新增 + * + * @author fzr + * @param articleParam 文章参数 + */ + void add(ArticleParam articleParam); + + /** + * 文章编辑 + * + * @author fzr + * @param articleParam 文章参数 + */ + void edit(ArticleParam articleParam); + + /** + * 文章删除 + * + * @author fzr + * @param id 文章主键 + */ + void del(Integer id); + +} diff --git a/server/like-admin/src/main/java/com/hxkj/admin/service/article/impl/ArticleCateServiceImpl.java b/server/like-admin/src/main/java/com/hxkj/admin/service/article/impl/ArticleCateServiceImpl.java new file mode 100644 index 00000000..2f715616 --- /dev/null +++ b/server/like-admin/src/main/java/com/hxkj/admin/service/article/impl/ArticleCateServiceImpl.java @@ -0,0 +1,187 @@ +package com.hxkj.admin.service.article.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.hxkj.admin.service.article.IArticleCateService; +import com.hxkj.admin.validate.article.CategoryParam; +import com.hxkj.admin.validate.common.PageParam; +import com.hxkj.admin.vo.common.article.CategoryVo; +import com.hxkj.common.core.PageResult; +import com.hxkj.common.entity.article.ArticleCategory; +import com.hxkj.common.mapper.article.ArticleCategoryMapper; +import com.hxkj.common.utils.TimeUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 文章分类服务实现类 + */ +@Service +public class ArticleCateServiceImpl implements IArticleCateService { + + @Resource + ArticleCategoryMapper articleCategoryMapper; + + /** + * 分类所有 + * + * @author fzr + * @return List + */ + @Override + public List all() { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("id", "name", "sort", "is_show", "create_time", "update_time") + .eq("is_delete", 0); + + List lists = articleCategoryMapper.selectList(queryWrapper); + + List vos = new ArrayList<>(); + for (ArticleCategory category : lists) { + CategoryVo vo = new CategoryVo(); + BeanUtils.copyProperties(category, vo); + + vo.setCreateTime(TimeUtil.timestampToDate(vo.getCreateTime())); + vo.setUpdateTime(TimeUtil.timestampToDate(vo.getUpdateTime())); + vos.add(vo); + } + + return vos; + } + + /** + * 分类列表 + * + * @param pageParam 分页参数 + * @param params 搜索参数 + * @return PageResult + */ + @Override + public PageResult list(PageParam pageParam, Map params) { + Integer pageNo = pageParam.getPageNo(); + Integer pageSize = pageParam.getPageSize(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("id", "name", "sort", "is_show", "create_time", "update_time") + .eq("is_delete", 0); + + articleCategoryMapper.setSearch(queryWrapper, params, new String[]{ + "like:name:str", + "=:isShow@is_show:int" + }); + + IPage iPage = articleCategoryMapper.selectPage(new Page<>(pageNo, pageSize), queryWrapper); + + List list = new ArrayList<>(); + for (ArticleCategory category : iPage.getRecords()) { + CategoryVo vo = new CategoryVo(); + BeanUtils.copyProperties(category, vo); + + vo.setCreateTime(TimeUtil.timestampToDate(vo.getCreateTime())); + vo.setUpdateTime(TimeUtil.timestampToDate(vo.getUpdateTime())); + list.add(vo); + } + + return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list); + } + + /** + * 分类详情 + * + * @author fzr + * @param id 分类ID + * @return CategoryVo + */ + @Override + public CategoryVo detail(Integer id) { + ArticleCategory model = articleCategoryMapper.selectOne( + new QueryWrapper() + .select(ArticleCategory.class, info-> + !info.getColumn().equals("is_delete") && + !info.getColumn().equals("delete_time")) + .eq("id", id) + .eq("is_delete", 0)); + + Assert.notNull(model, "分类不存在"); + + CategoryVo vo = new CategoryVo(); + BeanUtils.copyProperties(model, vo); + vo.setCreateTime(TimeUtil.timestampToDate(model.getCreateTime())); + vo.setUpdateTime(TimeUtil.timestampToDate(model.getUpdateTime())); + + return vo; + } + + /** + * 分类新增 + * + * @author fzr + * @param categoryParam 分类参数 + */ + @Override + public void add(CategoryParam categoryParam) { + ArticleCategory model = new ArticleCategory(); + model.setId(categoryParam.getId()); + model.setName(categoryParam.getName()); + model.setSort(categoryParam.getSort()); + model.setCreateTime(TimeUtil.timestamp()); + model.setUpdateTime(TimeUtil.timestamp()); + articleCategoryMapper.insert(model); + } + + /** + * 文章编辑 + * + * @author fzr + * @param categoryParam 分类参数 + */ + @Override + public void edit(CategoryParam categoryParam) { + ArticleCategory model = articleCategoryMapper.selectOne( + new QueryWrapper() + .select(ArticleCategory.class, info-> + !info.getColumn().equals("is_delete") && + !info.getColumn().equals("delete_time")) + .eq("id", categoryParam.getId()) + .eq("is_delete", 0)); + + Assert.notNull(model, "分类不存在"); + + model.setName(categoryParam.getName()); + model.setSort(categoryParam.getSort()); + model.setUpdateTime(TimeUtil.timestamp()); + articleCategoryMapper.updateById(model); + } + + /** + * 分类参数 + * + * @author fzr + * @param id 分类ID + */ + @Override + public void del(Integer id) { + ArticleCategory model = articleCategoryMapper.selectOne( + new QueryWrapper() + .select(ArticleCategory.class, info-> + !info.getColumn().equals("is_delete") && + !info.getColumn().equals("delete_time")) + .eq("id", id) + .eq("is_delete", 0)); + + Assert.notNull(model, "分类不存在"); + + model.setIsDelete(1); + model.setDeleteTime(TimeUtil.timestamp()); + articleCategoryMapper.updateById(model); + } + + +} diff --git a/server/like-admin/src/main/java/com/hxkj/admin/service/article/impl/ArticleTextServiceImpl.java b/server/like-admin/src/main/java/com/hxkj/admin/service/article/impl/ArticleTextServiceImpl.java new file mode 100644 index 00000000..a71dfbc6 --- /dev/null +++ b/server/like-admin/src/main/java/com/hxkj/admin/service/article/impl/ArticleTextServiceImpl.java @@ -0,0 +1,182 @@ +package com.hxkj.admin.service.article.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.query.MPJQueryWrapper; +import com.hxkj.admin.service.article.IArticleTextService; +import com.hxkj.admin.validate.article.ArticleParam; +import com.hxkj.admin.validate.common.PageParam; +import com.hxkj.admin.vo.common.article.ArticleDetailVo; +import com.hxkj.admin.vo.common.article.ArticleListVo; +import com.hxkj.common.core.PageResult; +import com.hxkj.common.entity.article.Article; +import com.hxkj.common.entity.article.ArticleCategory; +import com.hxkj.common.mapper.article.ArticleCategoryMapper; +import com.hxkj.common.mapper.article.ArticleMapper; +import com.hxkj.common.utils.StringUtil; +import com.hxkj.common.utils.TimeUtil; +import com.hxkj.common.utils.UrlUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.Map; + +/** + * 文章服务实现类 + */ +@Service +public class ArticleTextServiceImpl implements IArticleTextService { + + @Resource + ArticleMapper articleMapper; + + @Resource + ArticleCategoryMapper articleCategoryMapper; + + /** + * 文章列表 + * + * @author fzr + * @param pageParam 分页参数 + * @param params 搜索参数 + * @return PageResult + */ + @Override + public PageResult list(PageParam pageParam, Map params) { + Integer pageNo = pageParam.getPageNo(); + Integer pageSize = pageParam.getPageSize(); + + MPJQueryWrapper
mpjQueryWrapper = new MPJQueryWrapper
() + .selectAll(Article.class) + .select("ac.name as category") + .innerJoin("ls_article_category ac ON ac.id=t.cid") + .eq("t.is_delete", 0) + .orderByDesc(Arrays.asList("t.sort", "t.id")); + + articleMapper.setSearch(mpjQueryWrapper, params, new String[]{ + "like:title@t.title:str", + "=:cid@t.cid:int", + "=:isShow@t.is_show:int", + "datetime:startTime-endTime@t.create_time:str" + }); + + IPage iPage = articleMapper.selectJoinPage( + new Page<>(pageNo, pageSize), + ArticleListVo.class, + mpjQueryWrapper); + + for (ArticleListVo vo : iPage.getRecords()) { + vo.setImage(UrlUtil.toAbsoluteUrl(vo.getImage())); + vo.setCreateTime(TimeUtil.timestampToDate(vo.getCreateTime())); + vo.setUpdateTime(TimeUtil.timestampToDate(vo.getUpdateTime())); + } + + return PageResult.iPageHandle(iPage); + } + + /** + * 文章详情 + * + * @author fzr + * @param id 主键ID + */ + @Override + public ArticleDetailVo detail(Integer id) { + Article model = articleMapper.selectOne( + new QueryWrapper
() + .select(Article.class, info-> + !info.getColumn().equals("is_delete") && + !info.getColumn().equals("delete_time")) + .eq("id", id) + .eq("is_delete", 0)); + + Assert.notNull(model, "文章不存在"); + + ArticleDetailVo vo = new ArticleDetailVo(); + BeanUtils.copyProperties(model, vo); + vo.setContent(StringUtil.isNull(model.getContent()) ? "" : model.getContent()); + vo.setImage(UrlUtil.toAbsoluteUrl(model.getImage())); + vo.setCreateTime(TimeUtil.timestampToDate(model.getCreateTime())); + vo.setUpdateTime(TimeUtil.timestampToDate(model.getUpdateTime())); + + return vo; + } + + /** + * 文章新增 + * + * @author fzr + * @param articleParam 文章参数 + */ + @Override + public void add(ArticleParam articleParam) { + Article model = new Article(); + model.setCid(articleParam.getCid()); + model.setTitle(articleParam.getTitle()); + model.setImage(UrlUtil.toRelativeUrl(articleParam.getImage())); + model.setIntro(articleParam.getIntro()); + model.setContent(articleParam.getContent()); + model.setSort(articleParam.getSort()); + model.setIsShow(articleParam.getIsShow()); + model.setVisit(0); + model.setCreateTime(TimeUtil.timestamp()); + model.setUpdateTime(TimeUtil.timestamp()); + articleMapper.insert(model); + } + + /** + * 文章编辑 + * + * @author fzr + * @param articleParam 文章参数 + */ + @Override + public void edit(ArticleParam articleParam) { + Article model = articleMapper.selectOne( + new QueryWrapper
() + .eq("id", articleParam.getId()) + .eq("is_delete", 0)); + + Assert.notNull(model, "文章不存在!"); + + Assert.notNull(articleCategoryMapper.selectOne( + new QueryWrapper() + .eq("id", articleParam.getCid()) + .eq("is_delete", 0)), "分类不存在"); + + model.setCid(articleParam.getCid()); + model.setTitle(articleParam.getTitle()); + model.setImage(UrlUtil.toRelativeUrl(articleParam.getImage())); + model.setIntro(articleParam.getIntro()); + model.setContent(articleParam.getContent()); + model.setIsShow(articleParam.getIsShow()); + model.setSort(articleParam.getSort()); + model.setUpdateTime(TimeUtil.timestamp()); + articleMapper.updateById(model); + } + + /** + * 文章删除 + * + * @author fzr + * @param id 文章ID + */ + @Override + public void del(Integer id) { + Article article = articleMapper.selectOne( + new QueryWrapper
() + .eq("id", id) + .eq("is_delete", 0)); + + Assert.notNull(article, "文章不存在!"); + + article.setIsDelete(1); + article.setDeleteTime(TimeUtil.timestamp()); + articleMapper.updateById(article); + } + +} diff --git a/server/like-admin/src/main/java/com/hxkj/admin/service/common/IArticleService.java b/server/like-admin/src/main/java/com/hxkj/admin/service/common/IArticleService.java deleted file mode 100644 index 35b9061e..00000000 --- a/server/like-admin/src/main/java/com/hxkj/admin/service/common/IArticleService.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.hxkj.admin.service.common; - -import com.hxkj.admin.validate.common.PageParam; -import com.hxkj.admin.validate.article.CategoryParam; -import com.hxkj.admin.validate.article.ArticleParam; -import com.hxkj.admin.vo.common.article.ArticleDetailVo; -import com.hxkj.admin.vo.common.article.ArticleListVo; -import com.hxkj.admin.vo.common.article.CategoryVo; -import com.hxkj.common.core.PageResult; - -import java.util.List; -import java.util.Map; - -/** - * 文章服务接口类 - */ -public interface IArticleService { - - /** - * 文章列表 - * - * @author fzr - * @param pageParam 分页参数 - * @param params 搜索参数 - * @return PageResult - */ - PageResult articleList(PageParam pageParam, Map params); - - /** - * 文章详情 - * - * @author fzr - * @param id 主键ID - */ - ArticleDetailVo articleDetail(Integer id); - - /** - * 文章新增 - * - * @author fzr - * @param articleParam 文章参数 - */ - void articleAdd(ArticleParam articleParam); - - /** - * 文章编辑 - * - * @author fzr - * @param articleParam 文章参数 - */ - void articleEdit(ArticleParam articleParam); - - /** - * 文章删除 - * - * @author fzr - * @param id 文章主键 - */ - void articleDel(Integer id); - - /** - * 分类所有 - * - * @author fzr - * @return List - */ - List cateAll(); - - /** - * 分类列表 - * - * @author fzr - * @param pageParam 分页参数 - * @param params 搜索参数 - * @return PageResult - */ - PageResult cateList(PageParam pageParam, Map params); - - /** - * 分类详情 - * - * @author fzr - * @param id 分类ID - */ - CategoryVo cateDetail(Integer id); - - /** - * 分类新增 - * - * @author fzr - * @param articleCateParam 分类参数 - */ - void cateAdd(CategoryParam articleCateParam); - - /** - * 分类编辑 - * - * @author fzr - * @param articleCateParam 分类参数 - */ - void cateEdit(CategoryParam articleCateParam); - - /** - * 分类删除 - * - * @author fzr - * @param id 分类ID - */ - void cateDel(Integer id); - -} diff --git a/server/like-admin/src/main/java/com/hxkj/admin/service/common/impl/ArticleServiceImpl.java b/server/like-admin/src/main/java/com/hxkj/admin/service/common/impl/ArticleServiceImpl.java deleted file mode 100644 index 846d0323..00000000 --- a/server/like-admin/src/main/java/com/hxkj/admin/service/common/impl/ArticleServiceImpl.java +++ /dev/null @@ -1,337 +0,0 @@ -package com.hxkj.admin.service.common.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.github.yulichang.query.MPJQueryWrapper; -import com.hxkj.admin.service.common.IArticleService; -import com.hxkj.admin.validate.common.PageParam; -import com.hxkj.admin.validate.article.CategoryParam; -import com.hxkj.admin.validate.article.ArticleParam; -import com.hxkj.admin.vo.common.article.ArticleDetailVo; -import com.hxkj.admin.vo.common.article.ArticleListVo; -import com.hxkj.admin.vo.common.article.CategoryVo; -import com.hxkj.common.core.PageResult; -import com.hxkj.common.entity.article.Article; -import com.hxkj.common.entity.article.ArticleCategory; -import com.hxkj.common.mapper.article.ArticleCategoryMapper; -import com.hxkj.common.mapper.article.ArticleMapper; -import com.hxkj.common.utils.StringUtil; -import com.hxkj.common.utils.TimeUtil; -import com.hxkj.common.utils.UrlUtil; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; -import org.springframework.util.Assert; - -import javax.annotation.Resource; -import java.util.*; - -/** - * 文章服务实现类 - */ -@Service -public class ArticleServiceImpl implements IArticleService { - - @Resource - ArticleMapper articleMapper; - - @Resource - ArticleCategoryMapper articleCategoryMapper; - - /** - * 文章列表 - * - * @author fzr - * @param pageParam 分页参数 - * @param params 搜索参数 - * @return PageResult - */ - @Override - public PageResult articleList(PageParam pageParam, Map params) { - Integer pageNo = pageParam.getPageNo(); - Integer pageSize = pageParam.getPageSize(); - - MPJQueryWrapper
mpjQueryWrapper = new MPJQueryWrapper
() - .selectAll(Article.class) - .select("ac.name as category") - .innerJoin("ls_article_category ac ON ac.id=t.cid") - .eq("t.is_delete", 0) - .orderByDesc(Arrays.asList("t.sort", "t.id")); - - articleMapper.setSearch(mpjQueryWrapper, params, new String[]{ - "like:title@t.title:str", - "=:cid@t.cid:int", - "=:isShow@t.is_show:int", - "datetime:startTime-endTime@t.create_time:str" - }); - - IPage iPage = articleMapper.selectJoinPage( - new Page<>(pageNo, pageSize), - ArticleListVo.class, - mpjQueryWrapper); - - for (ArticleListVo vo : iPage.getRecords()) { - vo.setImage(UrlUtil.toAbsoluteUrl(vo.getImage())); - vo.setCreateTime(TimeUtil.timestampToDate(vo.getCreateTime())); - vo.setUpdateTime(TimeUtil.timestampToDate(vo.getUpdateTime())); - } - - return PageResult.iPageHandle(iPage); - } - - /** - * 文章详情 - * - * @author fzr - * @param id 主键ID - */ - @Override - public ArticleDetailVo articleDetail(Integer id) { - Article model = articleMapper.selectOne( - new QueryWrapper
() - .select(Article.class, info-> - !info.getColumn().equals("is_delete") && - !info.getColumn().equals("delete_time")) - .eq("id", id) - .eq("is_delete", 0)); - - Assert.notNull(model, "文章不存在"); - - ArticleDetailVo vo = new ArticleDetailVo(); - BeanUtils.copyProperties(model, vo); - vo.setContent(StringUtil.isNull(model.getContent()) ? "" : model.getContent()); - vo.setImage(UrlUtil.toAbsoluteUrl(model.getImage())); - vo.setCreateTime(TimeUtil.timestampToDate(model.getCreateTime())); - vo.setUpdateTime(TimeUtil.timestampToDate(model.getUpdateTime())); - - return vo; - } - - /** - * 文章新增 - * - * @author fzr - * @param articleParam 文章参数 - */ - @Override - public void articleAdd(ArticleParam articleParam) { - Article model = new Article(); - model.setCid(articleParam.getCid()); - model.setTitle(articleParam.getTitle()); - model.setImage(UrlUtil.toRelativeUrl(articleParam.getImage())); - model.setIntro(articleParam.getIntro()); - model.setContent(articleParam.getContent()); - model.setSort(articleParam.getSort()); - model.setIsShow(articleParam.getIsShow()); - model.setVisit(0); - model.setCreateTime(TimeUtil.timestamp()); - model.setUpdateTime(TimeUtil.timestamp()); - articleMapper.insert(model); - } - - /** - * 文章编辑 - * - * @author fzr - * @param articleParam 文章参数 - */ - @Override - public void articleEdit(ArticleParam articleParam) { - Article model = articleMapper.selectOne( - new QueryWrapper
() - .eq("id", articleParam.getId()) - .eq("is_delete", 0)); - - Assert.notNull(model, "文章不存在!"); - - Assert.notNull(articleCategoryMapper.selectOne( - new QueryWrapper() - .eq("id", articleParam.getCid()) - .eq("is_delete", 0)), "分类不存在"); - - model.setCid(articleParam.getCid()); - model.setTitle(articleParam.getTitle()); - model.setImage(UrlUtil.toRelativeUrl(articleParam.getImage())); - model.setIntro(articleParam.getIntro()); - model.setContent(articleParam.getContent()); - model.setIsShow(articleParam.getIsShow()); - model.setSort(articleParam.getSort()); - model.setUpdateTime(TimeUtil.timestamp()); - articleMapper.updateById(model); - } - - /** - * 文章删除 - * - * @author fzr - * @param id 文章ID - */ - @Override - public void articleDel(Integer id) { - Article article = articleMapper.selectOne( - new QueryWrapper
() - .eq("id", id) - .eq("is_delete", 0)); - - Assert.notNull(article, "文章不存在!"); - - article.setIsDelete(1); - article.setDeleteTime(TimeUtil.timestamp()); - articleMapper.updateById(article); - } - - /** - * 分类所有 - * - * @author fzr - * @return List - */ - @Override - public List cateAll() { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("id", "name", "sort", "is_show", "create_time", "update_time") - .eq("is_delete", 0); - - List lists = articleCategoryMapper.selectList(queryWrapper); - - List vos = new ArrayList<>(); - for (ArticleCategory category : lists) { - CategoryVo vo = new CategoryVo(); - BeanUtils.copyProperties(category, vo); - - vo.setCreateTime(TimeUtil.timestampToDate(vo.getCreateTime())); - vo.setUpdateTime(TimeUtil.timestampToDate(vo.getUpdateTime())); - vos.add(vo); - } - - return vos; - } - - /** - * 分类列表 - * - * @param pageParam 分页参数 - * @param params 搜索参数 - * @return PageResult - */ - @Override - public PageResult cateList(PageParam pageParam, Map params) { - Integer pageNo = pageParam.getPageNo(); - Integer pageSize = pageParam.getPageSize(); - - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("id", "name", "sort", "is_show", "create_time", "update_time") - .eq("is_delete", 0); - - articleCategoryMapper.setSearch(queryWrapper, params, new String[]{ - "like:name:str", - "=:isShow@is_show:int" - }); - - IPage iPage = articleCategoryMapper.selectPage(new Page<>(pageNo, pageSize), queryWrapper); - - List list = new ArrayList<>(); - for (ArticleCategory category : iPage.getRecords()) { - CategoryVo vo = new CategoryVo(); - BeanUtils.copyProperties(category, vo); - - vo.setCreateTime(TimeUtil.timestampToDate(vo.getCreateTime())); - vo.setUpdateTime(TimeUtil.timestampToDate(vo.getUpdateTime())); - list.add(vo); - } - - return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list); - } - - /** - * 分类详情 - * - * @author fzr - * @param id 分类ID - * @return CategoryVo - */ - @Override - public CategoryVo cateDetail(Integer id) { - ArticleCategory model = articleCategoryMapper.selectOne( - new QueryWrapper() - .select(ArticleCategory.class, info-> - !info.getColumn().equals("is_delete") && - !info.getColumn().equals("delete_time")) - .eq("id", id) - .eq("is_delete", 0)); - - Assert.notNull(model, "分类不存在"); - - CategoryVo vo = new CategoryVo(); - BeanUtils.copyProperties(model, vo); - vo.setCreateTime(TimeUtil.timestampToDate(model.getCreateTime())); - vo.setUpdateTime(TimeUtil.timestampToDate(model.getUpdateTime())); - - return vo; - } - - /** - * 分类新增 - * - * @author fzr - * @param categoryParam 分类参数 - */ - @Override - public void cateAdd(CategoryParam categoryParam) { - ArticleCategory model = new ArticleCategory(); - model.setId(categoryParam.getId()); - model.setName(categoryParam.getName()); - model.setSort(categoryParam.getSort()); - model.setCreateTime(TimeUtil.timestamp()); - model.setUpdateTime(TimeUtil.timestamp()); - articleCategoryMapper.insert(model); - } - - /** - * 文章编辑 - * - * @author fzr - * @param categoryParam 分类参数 - */ - @Override - public void cateEdit(CategoryParam categoryParam) { - ArticleCategory model = articleCategoryMapper.selectOne( - new QueryWrapper() - .select(ArticleCategory.class, info-> - !info.getColumn().equals("is_delete") && - !info.getColumn().equals("delete_time")) - .eq("id", categoryParam.getId()) - .eq("is_delete", 0)); - - Assert.notNull(model, "分类不存在"); - - model.setName(categoryParam.getName()); - model.setSort(categoryParam.getSort()); - model.setUpdateTime(TimeUtil.timestamp()); - articleCategoryMapper.updateById(model); - } - - /** - * 分类参数 - * - * @author fzr - * @param id 分类ID - */ - @Override - public void cateDel(Integer id) { - ArticleCategory model = articleCategoryMapper.selectOne( - new QueryWrapper() - .select(ArticleCategory.class, info-> - !info.getColumn().equals("is_delete") && - !info.getColumn().equals("delete_time")) - .eq("id", id) - .eq("is_delete", 0)); - - Assert.notNull(model, "分类不存在"); - - model.setIsDelete(1); - model.setDeleteTime(TimeUtil.timestamp()); - articleCategoryMapper.updateById(model); - } - -}