"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NewsService = void 0; const common_1 = require("@nestjs/common"); const typeorm_1 = require("@nestjs/typeorm"); const typeorm_2 = require("typeorm"); const news_model_1 = require("../../../model/news.model"); const api_1 = require("../../common/api"); const repository_help_1 = require("../../common/util/repository_help"); let NewsService = class NewsService { newsModel; constructor(newsModel) { this.newsModel = newsModel; } async getNewsList(dto) { const where = {}; if (dto.isRecommended !== undefined) { where.isRecommended = dto.isRecommended; } if (dto.categoryId !== undefined) { where.categoryId = dto.categoryId; } if (dto.type !== undefined) { where.type = dto.type; } if (dto.isHeadline !== undefined) { where.isHeadline = dto.isHeadline; } const total = await this.newsModel.count({ where }); const newsList = await repository_help_1.RepositoryHelp.finePaginatedData(this.newsModel, dto, { where, order: { publishTime: 'DESC' }, }); const imageTextList = newsList.filter((n) => n.type === news_model_1.NewsType.ImageText); const videoList = newsList.filter((n) => n.type === news_model_1.NewsType.Video); const mixedList = []; const maxLen = Math.max(imageTextList.length, videoList.length); for (let i = 0; i < maxLen; i++) { if (imageTextList[i]) mixedList.push(imageTextList[i]); if (videoList[i]) mixedList.push(videoList[i]); } return api_1.Api.pagination(mixedList, total); } async readNews(id) { await this.newsModel.increment({ id }, 'readCount', 1); return api_1.Api.success(); } }; exports.NewsService = NewsService; exports.NewsService = NewsService = __decorate([ (0, common_1.Injectable)(), __param(0, (0, typeorm_1.InjectRepository)(news_model_1.NewsModel)), __metadata("design:paramtypes", [typeorm_2.Repository]) ], NewsService); //# sourceMappingURL=news.service.js.map