ソースを参照

动态页评论数+定时发动态

wuyi 2 年 前
コミット
c7dac602c9

+ 40 - 1
src/chat/chat.service.ts

@@ -128,6 +128,45 @@ export class ChatService {
         }
     }
 
+    async sendMessage() {
+        const message = '请你发一条此时此刻的动态文案';
+        try {
+          const result = await chatReplyProcess({
+            message: message,
+            process: (chat: ChatMessage) => {},
+          });
+          const chatMessage = result.data as ChatMessage;
+          this.chatHistoryRepository.save(
+            new ChatHistory({
+              messageId: chatMessage.parentMessageId,
+              parentMessageId: null,
+              userId: 0,
+              message: message,
+              role: 'system',
+              token: chatMessage.detail.usage.prompt_tokens,
+              time: new Date(),
+            }),
+          );
+          this.chatHistoryRepository.save(
+            new ChatHistory({
+              messageId: chatMessage.id,
+              parentMessageId: chatMessage.parentMessageId,
+              userId: 0,
+              message: chatMessage.text,
+              role: 'assistant',
+              token: chatMessage.detail.usage.completion_tokens,
+              time: new Date(),
+            }),
+          );
+          Logger.log(`机器人回答:${chatMessage.text}`, 'SendMessage');
+        } catch (error) {
+          Logger.error(error, 'SendMessage');
+        } 
+      }
+    
+      
+
+
     public async chatProxy(req) {
         const url = `${process.env.AZURE_OPENAI_ENDPOINT}/openai/deployments/${process.env.AZURE_OPENAI_DEPLOYMENT}/chat/completions?api-version=${process.env.AZURE_OPENAI_VERSION}`
         req.body.stream = false
@@ -220,4 +259,4 @@ export class ChatService {
             date: And(MoreThanOrEqual(start || '2023-04-01'), LessThanOrEqual(end || date))
         })
     }
-}
+}

+ 3 - 1
src/comment/comment.module.ts

@@ -5,9 +5,11 @@ import { CommentService } from './comment.service'
 import { CommentController } from './comment.controller'
 import { LikesModule } from 'src/likes/likes.module'
 import { Likes } from 'src/likes/entities/likes.entity'
+import { Moments } from 'src/moments/entities/moments.entity'
+import { MomentsModule } from 'src/moments/moments.module'
 
 @Module({
-    imports: [TypeOrmModule.forFeature([Comment, Likes]), LikesModule],
+    imports: [TypeOrmModule.forFeature([Comment, Likes, Moments]), LikesModule, MomentsModule],
     controllers: [CommentController],
     providers: [CommentService],
     exports: [CommentService]

+ 10 - 2
src/comment/comment.service.ts

@@ -9,7 +9,7 @@ import { Comment } from './entities/comment.entity'
 import { CommentDto } from './dto/comment.dto'
 import { LikesService } from 'src/likes/likes.service'
 import { Likes } from 'src/likes/entities/likes.entity'
-import { id, tr } from 'date-fns/locale'
+import { Moments } from 'src/moments/entities/moments.entity'
 
 @Injectable()
 export class CommentService {
@@ -19,6 +19,8 @@ export class CommentService {
         private readonly commentRepository: Repository<Comment>,
         @InjectRepository(Likes)
         private readonly likesRepository: Repository<Likes>,
+        @InjectRepository(Moments)
+        private readonly momentsRepository: Repository<Moments>,
         private readonly likesService: LikesService
     ) { }
 
@@ -134,7 +136,10 @@ export class CommentService {
             }
             await this.commentRepository.save(list)
         }
-        return await this.commentRepository.save(commentDto);
+        const moments = await this.momentsRepository.findOneBy({ id: +commentDto.momentsId })
+        moments.commentNum += 1
+        await this.momentsRepository.save(moments)
+        return await this.commentRepository.save(commentDto)
     }
 
     public async findChildList(req: PageRequest<Comment>): Promise<Pagination<Comment>> {
@@ -169,6 +174,9 @@ export class CommentService {
             comment.isDel = true
             await this.commentRepository.save(comment)
         }
+        const moments = await this.momentsRepository.findOneBy({ id: +comment.momentsId })
+        moments.commentNum -= 1
+        await this.momentsRepository.save(moments)
     }
 
     public async like(id: number, userId: number): Promise<void> {

+ 4 - 1
src/moments/entities/moments.entity.ts

@@ -16,7 +16,10 @@ export class Moments {
     @Column()
     content: string
 
-    @Column({default: 0})
+    @Column({ default: 0 })
+    commentNum: number
+
+    @Column({ default: 0 })
     momentsLikeCount: number
 
     @CreateDateColumn()