feat(xiaobao): 后台刷新风险摘要

This commit is contained in:
2026-07-08 17:14:40 +08:00
parent ba999c9322
commit c131a0a133
22 changed files with 825 additions and 40 deletions

View File

@@ -1,12 +1,16 @@
import { Module } from '@nestjs/common';
import { PrismaService } from '../../prisma/prisma.service';
import { WorkActivityModule } from '../work-activity/work-activity.module';
import { DevTaskController } from './dev-task.controller';
import { DevTaskService } from './dev-task.service';
import { DEV_TASK_PRISMA, DevTaskService } from './dev-task.service';
@Module({
imports: [WorkActivityModule],
controllers: [DevTaskController],
providers: [DevTaskService],
providers: [
{ provide: DEV_TASK_PRISMA, useExisting: PrismaService },
DevTaskService,
],
exports: [DevTaskService],
})
export class DevTaskModule {}

View File

@@ -1,14 +1,14 @@
import { BadRequestException, Injectable, NotFoundException } from '@nestjs/common';
import type { Prisma } from '@prisma/client';
import { PrismaService } from '../../prisma/prisma.service';
import { BadRequestException, Inject, Injectable, NotFoundException } from '@nestjs/common';
import { WorkActivityService } from '../work-activity/work-activity.service';
import { CreateDevTaskDto } from './dto/create-dev-task.dto';
import { UpdateDevTaskDto } from './dto/update-dev-task.dto';
export const DEV_TASK_PRISMA = 'DEV_TASK_PRISMA';
@Injectable()
export class DevTaskService {
constructor(
private readonly prisma: PrismaService,
@Inject(DEV_TASK_PRISMA) private readonly prisma: any,
private readonly workActivity: WorkActivityService,
) {}
@@ -46,6 +46,7 @@ export class DevTaskService {
where: { id_versionId: { id, versionId } },
data: this.toTaskData(dto),
});
await this.workActivity.markXiaobaoSummaryDirty(versionId);
return { item, activities: [] };
}
@@ -99,7 +100,9 @@ export class DevTaskService {
async remove(versionId: string, id: string) {
await this.ensureTaskInVersion(versionId, id);
return this.prisma.devTask.delete({ where: { id_versionId: { id, versionId } } });
const item = await this.prisma.devTask.delete({ where: { id_versionId: { id, versionId } } });
await this.workActivity.markXiaobaoSummaryDirty(versionId);
return item;
}
private toTaskData(dto: Partial<CreateDevTaskDto>) {
@@ -200,6 +203,6 @@ function parsePriority(value: string | number | null | undefined): number | unde
return Number.isFinite(parsed) ? Math.max(0, Math.min(4, Math.floor(parsed))) : undefined;
}
function toJsonInput(value: unknown): Prisma.InputJsonValue {
return value as Prisma.InputJsonValue;
function toJsonInput(value: unknown): any {
return value as any;
}