diff --git a/src/articles/articles.service.ts b/src/articles/articles.service.ts index baac5c2..0991247 100644 --- a/src/articles/articles.service.ts +++ b/src/articles/articles.service.ts @@ -18,6 +18,7 @@ export class ArticlesService { title: dto.title, publishedDate: dto.publishedDate as any, htmlContent: dto.htmlContent, + coverImage: dto.coverImage, }); return { code: ResponseCode.SUCCESS, message: 'success', data: article.toJSON() as ArticleVo }; } diff --git a/src/articles/dto/article.dto.ts b/src/articles/dto/article.dto.ts index 888ab5e..07013bb 100644 --- a/src/articles/dto/article.dto.ts +++ b/src/articles/dto/article.dto.ts @@ -10,6 +10,9 @@ export class CreateArticleDto { @ApiProperty({ description: 'HTML 富文本内容' }) htmlContent!: string; + + @ApiProperty({ description: '封面图片' }) + coverImage!: string; } export class QueryArticlesDto { @@ -35,6 +38,7 @@ export interface ArticleVo { publishedDate: string; readCount: number; htmlContent: string; + coverImage: string; } export type CreateArticleResponseDto = BaseResponseDto; diff --git a/src/articles/models/article.model.ts b/src/articles/models/article.model.ts index 57295c8..aca4b8c 100644 --- a/src/articles/models/article.model.ts +++ b/src/articles/models/article.model.ts @@ -19,6 +19,13 @@ export class Article extends Model { }) declare title: string; + @Column({ + type: DataType.TEXT, + allowNull: false, + comment: '封面图片', + }) + declare coverImage: string; + @Column({ type: DataType.DATEONLY, allowNull: false, diff --git a/src/recommendations/recommendations.service.ts b/src/recommendations/recommendations.service.ts index a3a4a46..a36ea56 100644 --- a/src/recommendations/recommendations.service.ts +++ b/src/recommendations/recommendations.service.ts @@ -14,11 +14,13 @@ export class RecommendationsService { const limit = 10 // 取最新文章若干 - const articlesRes = await this.articlesService.query({ page: 1, pageSize: limit } as any); + const articlesRes = await this.articlesService.query({ page: 1, pageSize: limit }); const articleCards: RecommendationCard[] = (articlesRes.data.list || []).map(a => ({ id: `article-${a.id}`, type: RecommendationType.Article, title: a.title, + coverUrl: a.coverImage, + html: a.htmlContent, articleId: a.id, extra: { publishedDate: a.publishedDate, readCount: a.readCount }, }));