Commit 0d45acaf20bdb1019c5a57914737ef7fd8aafa1e
1 parent
b009f0b0
营销活动:完善文章相关 app 端接口
Showing
18 changed files
with
124 additions
and
121 deletions
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/ArticleController.java
| @@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; | @@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; | 5 | import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; |
| 6 | import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; | 6 | import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; |
| 7 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.*; | 7 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.*; |
| 8 | import cn.iocoder.yudao.module.promotion.convert.article.ArticleConvert; | 8 | import cn.iocoder.yudao.module.promotion.convert.article.ArticleConvert; |
| 9 | import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO; | 9 | import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO; |
| 10 | import cn.iocoder.yudao.module.promotion.service.article.ArticleService; | 10 | import cn.iocoder.yudao.module.promotion.service.article.ArticleService; |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/vo/ArticleBaseVO.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/vo/article/ArticleBaseVO.java
| 1 | -package cn.iocoder.yudao.module.promotion.controller.admin.article.vo; | 1 | +package cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article; |
| 2 | 2 | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | import lombok.Data; | 4 | import lombok.Data; |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/vo/ArticleCreateReqVO.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/vo/article/ArticleCreateReqVO.java
| 1 | -package cn.iocoder.yudao.module.promotion.controller.admin.article.vo; | 1 | +package cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article; |
| 2 | 2 | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | import lombok.Data; | 4 | import lombok.Data; |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/vo/ArticleExcelVO.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/vo/article/ArticleExcelVO.java
| 1 | -package cn.iocoder.yudao.module.promotion.controller.admin.article.vo; | 1 | +package cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; | 3 | import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; |
| 4 | import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; | 4 | import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/vo/ArticleExportReqVO.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/vo/article/ArticleExportReqVO.java
| 1 | -package cn.iocoder.yudao.module.promotion.controller.admin.article.vo; | 1 | +package cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article; |
| 2 | 2 | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | import lombok.Data; | 4 | import lombok.Data; |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/vo/ArticlePageReqVO.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/vo/article/ArticlePageReqVO.java
| 1 | -package cn.iocoder.yudao.module.promotion.controller.admin.article.vo; | 1 | +package cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 4 | import io.swagger.v3.oas.annotations.media.Schema; | 4 | import io.swagger.v3.oas.annotations.media.Schema; |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/vo/ArticleRespVO.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/vo/article/ArticleRespVO.java
| 1 | -package cn.iocoder.yudao.module.promotion.controller.admin.article.vo; | 1 | +package cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article; |
| 2 | 2 | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | import lombok.Data; | 4 | import lombok.Data; |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/vo/ArticleUpdateReqVO.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/article/vo/article/ArticleUpdateReqVO.java
| 1 | -package cn.iocoder.yudao.module.promotion.controller.admin.article.vo; | 1 | +package cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article; |
| 2 | 2 | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | import lombok.Data; | 4 | import lombok.Data; |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/article/AppArticleCategoryController.java
| 1 | package cn.iocoder.yudao.module.promotion.controller.app.article; | 1 | package cn.iocoder.yudao.module.promotion.controller.app.article; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | import cn.iocoder.yudao.module.promotion.controller.app.article.vo.category.AppArticleCategoryRespVO; | 5 | import cn.iocoder.yudao.module.promotion.controller.app.article.vo.category.AppArticleCategoryRespVO; |
| 6 | +import cn.iocoder.yudao.module.promotion.convert.article.ArticleCategoryConvert; | ||
| 7 | +import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleCategoryDO; | ||
| 8 | +import cn.iocoder.yudao.module.promotion.service.article.ArticleCategoryService; | ||
| 5 | import io.swagger.v3.oas.annotations.Operation; | 9 | import io.swagger.v3.oas.annotations.Operation; |
| 6 | import io.swagger.v3.oas.annotations.tags.Tag; | 10 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 7 | import org.springframework.validation.annotation.Validated; | 11 | import org.springframework.validation.annotation.Validated; |
| 8 | import org.springframework.web.bind.annotation.RequestMapping; | 12 | import org.springframework.web.bind.annotation.RequestMapping; |
| 9 | import org.springframework.web.bind.annotation.RestController; | 13 | import org.springframework.web.bind.annotation.RestController; |
| 10 | 14 | ||
| 11 | -import java.util.ArrayList; | 15 | +import javax.annotation.Resource; |
| 12 | import java.util.List; | 16 | import java.util.List; |
| 13 | -import java.util.Random; | ||
| 14 | 17 | ||
| 15 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 18 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 16 | 19 | ||
| @@ -20,20 +23,15 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | @@ -20,20 +23,15 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 20 | @Validated | 23 | @Validated |
| 21 | public class AppArticleCategoryController { | 24 | public class AppArticleCategoryController { |
| 22 | 25 | ||
| 26 | + @Resource | ||
| 27 | + private ArticleCategoryService articleCategoryService; | ||
| 28 | + | ||
| 23 | @RequestMapping("/list") | 29 | @RequestMapping("/list") |
| 24 | @Operation(summary = "获得文章分类列表") | 30 | @Operation(summary = "获得文章分类列表") |
| 25 | - // TODO @芋艿:swagger 注解 | ||
| 26 | public CommonResult<List<AppArticleCategoryRespVO>> getArticleCategoryList() { | 31 | public CommonResult<List<AppArticleCategoryRespVO>> getArticleCategoryList() { |
| 27 | - List<AppArticleCategoryRespVO> appArticleRespVOList = new ArrayList<>(); | ||
| 28 | - Random random = new Random(); | ||
| 29 | - for (int i = 0; i < 10; i++) { | ||
| 30 | - AppArticleCategoryRespVO appArticleRespVO = new AppArticleCategoryRespVO(); | ||
| 31 | - appArticleRespVO.setId((long) (i + 1)); | ||
| 32 | - appArticleRespVO.setName("分类 - " + i); | ||
| 33 | - appArticleRespVO.setPicUrl("https://www.iocoder.cn/" + (i + 1) + ".png"); | ||
| 34 | - appArticleRespVOList.add(appArticleRespVO); | ||
| 35 | - } | ||
| 36 | - return success(appArticleRespVOList); | 32 | + List<ArticleCategoryDO> categoryList = articleCategoryService.getArticleCategoryListByStatus( |
| 33 | + CommonStatusEnum.ENABLE.getStatus()); | ||
| 34 | + return success(ArticleCategoryConvert.INSTANCE.convertList04(categoryList)); | ||
| 37 | } | 35 | } |
| 38 | 36 | ||
| 39 | } | 37 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/article/AppArticleController.java
| @@ -4,16 +4,19 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; | @@ -4,16 +4,19 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | import cn.iocoder.yudao.module.promotion.controller.app.article.vo.article.AppArticlePageReqVO; | 5 | import cn.iocoder.yudao.module.promotion.controller.app.article.vo.article.AppArticlePageReqVO; |
| 6 | import cn.iocoder.yudao.module.promotion.controller.app.article.vo.article.AppArticleRespVO; | 6 | import cn.iocoder.yudao.module.promotion.controller.app.article.vo.article.AppArticleRespVO; |
| 7 | +import cn.iocoder.yudao.module.promotion.convert.article.ArticleConvert; | ||
| 8 | +import cn.iocoder.yudao.module.promotion.service.article.ArticleService; | ||
| 9 | +import io.swagger.v3.oas.annotations.Operation; | ||
| 10 | +import io.swagger.v3.oas.annotations.Parameter; | ||
| 11 | +import io.swagger.v3.oas.annotations.Parameters; | ||
| 7 | import io.swagger.v3.oas.annotations.tags.Tag; | 12 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 8 | import org.springframework.validation.annotation.Validated; | 13 | import org.springframework.validation.annotation.Validated; |
| 9 | import org.springframework.web.bind.annotation.RequestMapping; | 14 | import org.springframework.web.bind.annotation.RequestMapping; |
| 10 | import org.springframework.web.bind.annotation.RequestParam; | 15 | import org.springframework.web.bind.annotation.RequestParam; |
| 11 | import org.springframework.web.bind.annotation.RestController; | 16 | import org.springframework.web.bind.annotation.RestController; |
| 12 | 17 | ||
| 13 | -import java.time.LocalDateTime; | ||
| 14 | -import java.util.ArrayList; | 18 | +import javax.annotation.Resource; |
| 15 | import java.util.List; | 19 | import java.util.List; |
| 16 | -import java.util.Random; | ||
| 17 | 20 | ||
| 18 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 21 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 19 | 22 | ||
| @@ -23,68 +26,33 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | @@ -23,68 +26,33 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 23 | @Validated | 26 | @Validated |
| 24 | public class AppArticleController { | 27 | public class AppArticleController { |
| 25 | 28 | ||
| 29 | + @Resource | ||
| 30 | + private ArticleService articleService; | ||
| 31 | + | ||
| 26 | @RequestMapping("/list") | 32 | @RequestMapping("/list") |
| 27 | - // TODO @芋艿:swagger 注解 | ||
| 28 | - public CommonResult<List<AppArticleRespVO>> getArticleList(@RequestParam(value = "recommendHot", required = false) Boolean recommendHot, | ||
| 29 | - @RequestParam(value = "recommendBanner", required = false) Boolean recommendBanner) { | ||
| 30 | - List<AppArticleRespVO> appArticleRespVOList = new ArrayList<>(); | ||
| 31 | - Random random = new Random(); | ||
| 32 | - for (int i = 0; i < 10; i++) { | ||
| 33 | - AppArticleRespVO appArticleRespVO = new AppArticleRespVO(); | ||
| 34 | - appArticleRespVO.setId((long) (i + 1)); | ||
| 35 | - appArticleRespVO.setTitle("芋道源码 - " + i + "模块"); | ||
| 36 | - appArticleRespVO.setAuthor("芋道源码"); | ||
| 37 | - appArticleRespVO.setCategoryId((long) random.nextInt(10000)); | ||
| 38 | - appArticleRespVO.setPicUrl("https://www.iocoder.cn/" + (i + 1) + ".png"); | ||
| 39 | - appArticleRespVO.setIntroduction("我是简介"); | ||
| 40 | - appArticleRespVO.setDescription("我是详细"); | ||
| 41 | - appArticleRespVO.setCreateTime(LocalDateTime.now()); | ||
| 42 | - appArticleRespVO.setBrowseCount(random.nextInt(10000)); | ||
| 43 | - appArticleRespVO.setSpuId((long) random.nextInt(10000)); | ||
| 44 | - appArticleRespVOList.add(appArticleRespVO); | ||
| 45 | - } | ||
| 46 | - return success(appArticleRespVOList); | 33 | + @Operation(summary = "获得文章详情列表") |
| 34 | + @Parameters({ | ||
| 35 | + @Parameter(name = "recommendHot", description = "是否热门", example = "false"), // 场景一:查看指定的文章 | ||
| 36 | + @Parameter(name = "recommendBanner", description = "是否轮播图", example = "false") // 场景二:查看指定的文章 | ||
| 37 | + }) | ||
| 38 | + public CommonResult<List<AppArticleRespVO>> getArticleList( | ||
| 39 | + @RequestParam(value = "recommendHot", required = false) Boolean recommendHot, | ||
| 40 | + @RequestParam(value = "recommendBanner", required = false) Boolean recommendBanner) { | ||
| 41 | + return success(ArticleConvert.INSTANCE.convertList03( | ||
| 42 | + articleService.getArticleCategoryListByRecommendHotAndRecommendBanner(recommendHot, recommendBanner))); | ||
| 47 | } | 43 | } |
| 48 | 44 | ||
| 49 | @RequestMapping("/page") | 45 | @RequestMapping("/page") |
| 50 | - // TODO @芋艿:swagger 注解 | 46 | + @Operation(summary = "获得文章详情分页") |
| 51 | public CommonResult<PageResult<AppArticleRespVO>> getArticlePage(AppArticlePageReqVO pageReqVO) { | 47 | public CommonResult<PageResult<AppArticleRespVO>> getArticlePage(AppArticlePageReqVO pageReqVO) { |
| 52 | - List<AppArticleRespVO> appArticleRespVOList = new ArrayList<>(); | ||
| 53 | - Random random = new Random(); | ||
| 54 | - for (int i = 0; i < 10; i++) { | ||
| 55 | - AppArticleRespVO appArticleRespVO = new AppArticleRespVO(); | ||
| 56 | - appArticleRespVO.setId((long) (i + 1)); | ||
| 57 | - appArticleRespVO.setTitle("芋道源码 - " + i + "模块"); | ||
| 58 | - appArticleRespVO.setAuthor("芋道源码"); | ||
| 59 | - appArticleRespVO.setCategoryId((long) random.nextInt(10000)); | ||
| 60 | - appArticleRespVO.setPicUrl("https://www.iocoder.cn/" + (i + 1) + ".png"); | ||
| 61 | - appArticleRespVO.setIntroduction("我是简介"); | ||
| 62 | - appArticleRespVO.setDescription("我是详细"); | ||
| 63 | - appArticleRespVO.setCreateTime(LocalDateTime.now()); | ||
| 64 | - appArticleRespVO.setBrowseCount(random.nextInt(10000)); | ||
| 65 | - appArticleRespVO.setSpuId((long) random.nextInt(10000)); | ||
| 66 | - appArticleRespVOList.add(appArticleRespVO); | ||
| 67 | - } | ||
| 68 | - return success(new PageResult<>(appArticleRespVOList, 10L)); | 48 | + return success(ArticleConvert.INSTANCE.convertPage02(articleService.getArticlePage(pageReqVO))); |
| 69 | } | 49 | } |
| 70 | 50 | ||
| 71 | @RequestMapping("/get") | 51 | @RequestMapping("/get") |
| 72 | - // TODO @芋艿:swagger 注解 | 52 | + @Operation(summary = "获得文章详情") |
| 53 | + @Parameter(name = "id", description = "文章编号", example = "1024") | ||
| 73 | public CommonResult<AppArticleRespVO> getArticlePage(@RequestParam("id") Long id) { | 54 | public CommonResult<AppArticleRespVO> getArticlePage(@RequestParam("id") Long id) { |
| 74 | - Random random = new Random(); | ||
| 75 | - AppArticleRespVO appArticleRespVO = new AppArticleRespVO(); | ||
| 76 | - appArticleRespVO.setId((long) (1)); | ||
| 77 | - appArticleRespVO.setTitle("芋道源码 - " + 0 + "模块"); | ||
| 78 | - appArticleRespVO.setAuthor("芋道源码"); | ||
| 79 | - appArticleRespVO.setCategoryId((long) random.nextInt(10000)); | ||
| 80 | - appArticleRespVO.setPicUrl("https://www.iocoder.cn/" + (0 + 1) + ".png"); | ||
| 81 | - appArticleRespVO.setIntroduction("我是简介"); | ||
| 82 | - appArticleRespVO.setDescription("我是详细"); | ||
| 83 | - appArticleRespVO.setCreateTime(LocalDateTime.now()); | ||
| 84 | - appArticleRespVO.setBrowseCount(random.nextInt(10000)); | ||
| 85 | - appArticleRespVO.setSpuId((long) random.nextInt(10000)); | ||
| 86 | - appArticleRespVO.setSpuId(633L); | ||
| 87 | - return success(appArticleRespVO); | 55 | + return success(ArticleConvert.INSTANCE.convert01(articleService.getArticle(id))); |
| 88 | } | 56 | } |
| 89 | 57 | ||
| 90 | } | 58 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/article/vo/article/AppArticleRespVO.java
| @@ -39,11 +39,4 @@ public class AppArticleRespVO { | @@ -39,11 +39,4 @@ public class AppArticleRespVO { | ||
| 39 | @Schema(description = "关联的商品 SPU 编号", example = "1024") | 39 | @Schema(description = "关联的商品 SPU 编号", example = "1024") |
| 40 | private Long spuId; | 40 | private Long spuId; |
| 41 | 41 | ||
| 42 | -// TODO 芋艿:下面 2 个字段,后端要存储,前端不用返回; | ||
| 43 | -// @Schema(description = "是否热卖推荐", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") | ||
| 44 | -// private Boolean recommendHot; | ||
| 45 | -// | ||
| 46 | -// @Schema(description = "是否 Banner 推荐", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") | ||
| 47 | -// private Boolean recommendBanner; | ||
| 48 | - | ||
| 49 | } | 42 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/article/vo/category/AppArticleCategoryRespVO.java
| @@ -16,11 +16,4 @@ public class AppArticleCategoryRespVO { | @@ -16,11 +16,4 @@ public class AppArticleCategoryRespVO { | ||
| 16 | @Schema(description = "分类图标", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/1.png") | 16 | @Schema(description = "分类图标", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/1.png") |
| 17 | private String picUrl; | 17 | private String picUrl; |
| 18 | 18 | ||
| 19 | - // TODO 芋艿:下面 2 个字段,后端要存储,前端不用返回; | ||
| 20 | -// @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 21 | -// private Integer status; | ||
| 22 | -// | ||
| 23 | -// @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 24 | -// private Integer sort; | ||
| 25 | - | ||
| 26 | } | 19 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/article/ArticleCategoryConvert.java
| @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.promotion.convert.article; | @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.promotion.convert.article; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.category.*; | 4 | import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.category.*; |
| 5 | +import cn.iocoder.yudao.module.promotion.controller.app.article.vo.category.AppArticleCategoryRespVO; | ||
| 5 | import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleCategoryDO; | 6 | import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleCategoryDO; |
| 6 | import org.mapstruct.Mapper; | 7 | import org.mapstruct.Mapper; |
| 7 | import org.mapstruct.factory.Mappers; | 8 | import org.mapstruct.factory.Mappers; |
| @@ -32,4 +33,6 @@ public interface ArticleCategoryConvert { | @@ -32,4 +33,6 @@ public interface ArticleCategoryConvert { | ||
| 32 | 33 | ||
| 33 | List<ArticleCategorySimpleRespVO> convertList03(List<ArticleCategoryDO> list); | 34 | List<ArticleCategorySimpleRespVO> convertList03(List<ArticleCategoryDO> list); |
| 34 | 35 | ||
| 36 | + List<AppArticleCategoryRespVO> convertList04(List<ArticleCategoryDO> categoryList); | ||
| 37 | + | ||
| 35 | } | 38 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/article/ArticleConvert.java
| 1 | package cn.iocoder.yudao.module.promotion.convert.article; | 1 | package cn.iocoder.yudao.module.promotion.convert.article; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticleCreateReqVO; | ||
| 5 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticleExcelVO; | ||
| 6 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticleRespVO; | ||
| 7 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticleUpdateReqVO; | 4 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleCreateReqVO; |
| 5 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleExcelVO; | ||
| 6 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleRespVO; | ||
| 7 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleUpdateReqVO; | ||
| 8 | +import cn.iocoder.yudao.module.promotion.controller.app.article.vo.article.AppArticleRespVO; | ||
| 8 | import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO; | 9 | import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO; |
| 9 | import org.mapstruct.Mapper; | 10 | import org.mapstruct.Mapper; |
| 10 | import org.mapstruct.factory.Mappers; | 11 | import org.mapstruct.factory.Mappers; |
| @@ -33,4 +34,10 @@ public interface ArticleConvert { | @@ -33,4 +34,10 @@ public interface ArticleConvert { | ||
| 33 | 34 | ||
| 34 | List<ArticleExcelVO> convertList02(List<ArticleDO> list); | 35 | List<ArticleExcelVO> convertList02(List<ArticleDO> list); |
| 35 | 36 | ||
| 37 | + List<AppArticleRespVO> convertList03(List<ArticleDO> list); | ||
| 38 | + | ||
| 39 | + AppArticleRespVO convert01(ArticleDO article); | ||
| 40 | + | ||
| 41 | + PageResult<AppArticleRespVO> convertPage02(PageResult<ArticleDO> articlePage); | ||
| 42 | + | ||
| 36 | } | 43 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/article/ArticleMapper.java
| @@ -3,8 +3,9 @@ package cn.iocoder.yudao.module.promotion.dal.mysql.article; | @@ -3,8 +3,9 @@ package cn.iocoder.yudao.module.promotion.dal.mysql.article; | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | 4 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 5 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | 5 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| 6 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticleExportReqVO; | ||
| 7 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticlePageReqVO; | 6 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleExportReqVO; |
| 7 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticlePageReqVO; | ||
| 8 | +import cn.iocoder.yudao.module.promotion.controller.app.article.vo.article.AppArticlePageReqVO; | ||
| 8 | import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO; | 9 | import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO; |
| 9 | import org.apache.ibatis.annotations.Mapper; | 10 | import org.apache.ibatis.annotations.Mapper; |
| 10 | 11 | ||
| @@ -44,4 +45,15 @@ public interface ArticleMapper extends BaseMapperX<ArticleDO> { | @@ -44,4 +45,15 @@ public interface ArticleMapper extends BaseMapperX<ArticleDO> { | ||
| 44 | .orderByDesc(ArticleDO::getId)); | 45 | .orderByDesc(ArticleDO::getId)); |
| 45 | } | 46 | } |
| 46 | 47 | ||
| 48 | + default List<ArticleDO> selectList(Boolean recommendHot, Boolean recommendBanner) { | ||
| 49 | + return selectList(new LambdaQueryWrapperX<ArticleDO>() | ||
| 50 | + .eqIfPresent(ArticleDO::getRecommendHot, recommendHot) | ||
| 51 | + .eqIfPresent(ArticleDO::getRecommendBanner, recommendBanner)); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + default PageResult<ArticleDO> selectPage(AppArticlePageReqVO pageReqVO) { | ||
| 55 | + return selectPage(pageReqVO, new LambdaQueryWrapperX<ArticleDO>() | ||
| 56 | + .eqIfPresent(ArticleDO::getCategoryId, pageReqVO.getCategoryId())); | ||
| 57 | + } | ||
| 58 | + | ||
| 47 | } | 59 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/article/ArticleService.java
| 1 | package cn.iocoder.yudao.module.promotion.service.article; | 1 | package cn.iocoder.yudao.module.promotion.service.article; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticleCreateReqVO; | ||
| 5 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticleExportReqVO; | ||
| 6 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticlePageReqVO; | ||
| 7 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticleUpdateReqVO; | 4 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleCreateReqVO; |
| 5 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleExportReqVO; | ||
| 6 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticlePageReqVO; | ||
| 7 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleUpdateReqVO; | ||
| 8 | +import cn.iocoder.yudao.module.promotion.controller.app.article.vo.article.AppArticlePageReqVO; | ||
| 8 | import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO; | 9 | import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO; |
| 9 | 10 | ||
| 10 | import javax.validation.Valid; | 11 | import javax.validation.Valid; |
| @@ -12,14 +13,14 @@ import java.util.Collection; | @@ -12,14 +13,14 @@ import java.util.Collection; | ||
| 12 | import java.util.List; | 13 | import java.util.List; |
| 13 | 14 | ||
| 14 | /** | 15 | /** |
| 15 | - * 文章管理 Service 接口 | 16 | + * 文章详情 Service 接口 |
| 16 | * | 17 | * |
| 17 | * @author HUIHUI | 18 | * @author HUIHUI |
| 18 | */ | 19 | */ |
| 19 | public interface ArticleService { | 20 | public interface ArticleService { |
| 20 | 21 | ||
| 21 | /** | 22 | /** |
| 22 | - * 创建文章管理 | 23 | + * 创建文章详情 |
| 23 | * | 24 | * |
| 24 | * @param createReqVO 创建信息 | 25 | * @param createReqVO 创建信息 |
| 25 | * @return 编号 | 26 | * @return 编号 |
| @@ -27,49 +28,66 @@ public interface ArticleService { | @@ -27,49 +28,66 @@ public interface ArticleService { | ||
| 27 | Long createArticle(@Valid ArticleCreateReqVO createReqVO); | 28 | Long createArticle(@Valid ArticleCreateReqVO createReqVO); |
| 28 | 29 | ||
| 29 | /** | 30 | /** |
| 30 | - * 更新文章管理 | 31 | + * 更新文章详情 |
| 31 | * | 32 | * |
| 32 | * @param updateReqVO 更新信息 | 33 | * @param updateReqVO 更新信息 |
| 33 | */ | 34 | */ |
| 34 | void updateArticle(@Valid ArticleUpdateReqVO updateReqVO); | 35 | void updateArticle(@Valid ArticleUpdateReqVO updateReqVO); |
| 35 | 36 | ||
| 36 | /** | 37 | /** |
| 37 | - * 删除文章管理 | 38 | + * 删除文章详情 |
| 38 | * | 39 | * |
| 39 | * @param id 编号 | 40 | * @param id 编号 |
| 40 | */ | 41 | */ |
| 41 | void deleteArticle(Long id); | 42 | void deleteArticle(Long id); |
| 42 | 43 | ||
| 43 | /** | 44 | /** |
| 44 | - * 获得文章管理 | 45 | + * 获得文章详情 |
| 45 | * | 46 | * |
| 46 | * @param id 编号 | 47 | * @param id 编号 |
| 47 | - * @return 文章管理 | 48 | + * @return 文章详情 |
| 48 | */ | 49 | */ |
| 49 | ArticleDO getArticle(Long id); | 50 | ArticleDO getArticle(Long id); |
| 50 | 51 | ||
| 51 | /** | 52 | /** |
| 52 | - * 获得文章管理列表 | 53 | + * 获得文章详情列表 |
| 53 | * | 54 | * |
| 54 | * @param ids 编号 | 55 | * @param ids 编号 |
| 55 | - * @return 文章管理列表 | 56 | + * @return 文章详情列表 |
| 56 | */ | 57 | */ |
| 57 | List<ArticleDO> getArticleList(Collection<Long> ids); | 58 | List<ArticleDO> getArticleList(Collection<Long> ids); |
| 58 | 59 | ||
| 59 | /** | 60 | /** |
| 60 | - * 获得文章管理分页 | 61 | + * 获得文章详情分页 |
| 61 | * | 62 | * |
| 62 | * @param pageReqVO 分页查询 | 63 | * @param pageReqVO 分页查询 |
| 63 | - * @return 文章管理分页 | 64 | + * @return 文章详情分页 |
| 64 | */ | 65 | */ |
| 65 | PageResult<ArticleDO> getArticlePage(ArticlePageReqVO pageReqVO); | 66 | PageResult<ArticleDO> getArticlePage(ArticlePageReqVO pageReqVO); |
| 66 | 67 | ||
| 67 | /** | 68 | /** |
| 68 | - * 获得文章管理列表, 用于 Excel 导出 | 69 | + * 获得文章详情列表, 用于 Excel 导出 |
| 69 | * | 70 | * |
| 70 | * @param exportReqVO 查询条件 | 71 | * @param exportReqVO 查询条件 |
| 71 | - * @return 文章管理列表 | 72 | + * @return 文章详情列表 |
| 72 | */ | 73 | */ |
| 73 | List<ArticleDO> getArticleList(ArticleExportReqVO exportReqVO); | 74 | List<ArticleDO> getArticleList(ArticleExportReqVO exportReqVO); |
| 74 | 75 | ||
| 76 | + /** | ||
| 77 | + * 获得文章详情列表 | ||
| 78 | + * | ||
| 79 | + * @param recommendHot 是否热门 | ||
| 80 | + * @param recommendBanner 是否轮播图 | ||
| 81 | + * @return 文章详情列表 | ||
| 82 | + */ | ||
| 83 | + List<ArticleDO> getArticleCategoryListByRecommendHotAndRecommendBanner(Boolean recommendHot, Boolean recommendBanner); | ||
| 84 | + | ||
| 85 | + /** | ||
| 86 | + * 获得文章详情分页 | ||
| 87 | + * | ||
| 88 | + * @param pageReqVO 分页查询 | ||
| 89 | + * @return 文章详情分页 | ||
| 90 | + */ | ||
| 91 | + PageResult<ArticleDO> getArticlePage(AppArticlePageReqVO pageReqVO); | ||
| 92 | + | ||
| 75 | } | 93 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/article/ArticleServiceImpl.java
| @@ -3,10 +3,11 @@ package cn.iocoder.yudao.module.promotion.service.article; | @@ -3,10 +3,11 @@ package cn.iocoder.yudao.module.promotion.service.article; | ||
| 3 | import cn.hutool.core.collection.CollUtil; | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | import cn.hutool.core.collection.ListUtil; | 4 | import cn.hutool.core.collection.ListUtil; |
| 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticleCreateReqVO; | ||
| 7 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticleExportReqVO; | ||
| 8 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticlePageReqVO; | ||
| 9 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticleUpdateReqVO; | 6 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleCreateReqVO; |
| 7 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleExportReqVO; | ||
| 8 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticlePageReqVO; | ||
| 9 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleUpdateReqVO; | ||
| 10 | +import cn.iocoder.yudao.module.promotion.controller.app.article.vo.article.AppArticlePageReqVO; | ||
| 10 | import cn.iocoder.yudao.module.promotion.convert.article.ArticleConvert; | 11 | import cn.iocoder.yudao.module.promotion.convert.article.ArticleConvert; |
| 11 | import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO; | 12 | import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO; |
| 12 | import cn.iocoder.yudao.module.promotion.dal.mysql.article.ArticleMapper; | 13 | import cn.iocoder.yudao.module.promotion.dal.mysql.article.ArticleMapper; |
| @@ -87,4 +88,14 @@ public class ArticleServiceImpl implements ArticleService { | @@ -87,4 +88,14 @@ public class ArticleServiceImpl implements ArticleService { | ||
| 87 | return articleMapper.selectList(exportReqVO); | 88 | return articleMapper.selectList(exportReqVO); |
| 88 | } | 89 | } |
| 89 | 90 | ||
| 91 | + @Override | ||
| 92 | + public List<ArticleDO> getArticleCategoryListByRecommendHotAndRecommendBanner(Boolean recommendHot, Boolean recommendBanner) { | ||
| 93 | + return articleMapper.selectList(recommendHot, recommendBanner); | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + @Override | ||
| 97 | + public PageResult<ArticleDO> getArticlePage(AppArticlePageReqVO pageReqVO) { | ||
| 98 | + return articleMapper.selectPage(pageReqVO); | ||
| 99 | + } | ||
| 100 | + | ||
| 90 | } | 101 | } |
yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/article/ArticleServiceImplTest.java
| @@ -2,10 +2,10 @@ package cn.iocoder.yudao.module.promotion.service.article; | @@ -2,10 +2,10 @@ package cn.iocoder.yudao.module.promotion.service.article; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; | 4 | import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; |
| 5 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticleCreateReqVO; | ||
| 6 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticleExportReqVO; | ||
| 7 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticlePageReqVO; | ||
| 8 | -import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.ArticleUpdateReqVO; | 5 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleCreateReqVO; |
| 6 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleExportReqVO; | ||
| 7 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticlePageReqVO; | ||
| 8 | +import cn.iocoder.yudao.module.promotion.controller.admin.article.vo.article.ArticleUpdateReqVO; | ||
| 9 | import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO; | 9 | import cn.iocoder.yudao.module.promotion.dal.dataobject.article.ArticleDO; |
| 10 | import cn.iocoder.yudao.module.promotion.dal.mysql.article.ArticleMapper; | 10 | import cn.iocoder.yudao.module.promotion.dal.mysql.article.ArticleMapper; |
| 11 | import org.junit.jupiter.api.Disabled; | 11 | import org.junit.jupiter.api.Disabled; |