返回 AiToEarn
feedback.service.ts
根目录 / project / aitoearn-electron / server / src / modules / other / feedback.service.ts
1 /*
2 * @Author: nevin
3 * @Date: 2024-06-17 19:19:15
4 * @LastEditTime: 2024-09-05 15:19:25
5 * @LastEditors: nevin
6 * @Description:
7 */
8 import { Injectable } from '@nestjs/common';
9 import { InjectModel } from '@nestjs/mongoose';
10 import { Model, RootFilterQuery } from 'mongoose';
11 import { Feedback } from 'src/db/schema/feedback.schema';
12 import { ResponseUtil } from 'src/global/class/correctResponse.class';
13 import { TableUtil } from 'src/global/class/tableUtli.class';
14 import { TableDto } from 'src/global/dto/table.dto';
15 import { GetFeedbackListDto } from './dto/feedback.dto';
16
17 @Injectable()
18 export class FeedbackService {
19 constructor(
20 @InjectModel(Feedback.name)
21 private readonly feedbackModel: Model<Feedback>,
22 ) {}
23
24 async createFeedback(newData: Feedback) {
25 return await this.feedbackModel.create(newData);
26 }
27
28 /**
29 * 获取列表
30 * @param pageInfo
31 * @param query
32 * @returns
33 */
34 async getFeedbackList(pageInfo: TableDto, query: GetFeedbackListDto) {
35 const { skip, take } = TableUtil.GetSqlPaging(pageInfo);
36 const filter: RootFilterQuery<Feedback> = {
37 ...(query.time && {
38 createTime: {
39 $gte: query.time[0],
40 $lte: query.time[1],
41 },
42 }),
43 ...(query.userId && { userId: query.userId }),
44 ...(query.type && { type: query.type }),
45 };
46 const tatal = await this.feedbackModel.countDocuments(filter);
47 const data = await this.feedbackModel
48 .find(filter)
49 .sort({ createTime: -1 })
50 .skip(skip)
51 .limit(take);
52
53 return ResponseUtil.GetCorrectResponse(
54 pageInfo.pageNo,
55 pageInfo.pageSize,
56 tatal,
57 data,
58 );
59 }
60
61 // 根据ID获取信息
62 async getFeedbackInfo(id: string) {
63 const data = await this.feedbackModel.findOne({ _id: id });
64 return data;
65 }
66
67 // 根据ID删除
68 async delFeedback(id: string) {
69 const data = await this.feedbackModel.deleteOne({ _id: id });
70 return data;
71 }
72 }
73
73 lines TYPESCRIPT