From e65f5b9f7880e6d02f9b517e6f6fae5ac7b10d69 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Mon, 7 Jul 2025 00:37:44 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E4=BC=98=E5=8C=96=20notification=20ch?= =?UTF-8?q?eck=20plus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/pipeline/src/notification/api.ts | 4 --- .../pipeline/service/notification-service.ts | 28 +++++++++++++++++-- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/packages/core/pipeline/src/notification/api.ts b/packages/core/pipeline/src/notification/api.ts index 9db050f3..0d4b62db 100644 --- a/packages/core/pipeline/src/notification/api.ts +++ b/packages/core/pipeline/src/notification/api.ts @@ -4,7 +4,6 @@ import { FormItemProps, HistoryResult, Pipeline } from "../dt/index.js"; import { HttpClient, ILogger, utils } from "@certd/basic"; import * as _ from "lodash-es"; import { IEmailService } from "../service/index.js"; -import { isPlus } from "@certd/plus-core"; export type NotificationBody = { userId?: number; @@ -81,9 +80,6 @@ export abstract class BaseNotification implements INotification { logger!: ILogger; async doSend(body: NotificationBody) { - if (this.define.needPlus && !isPlus()) { - body.content = `${body.content}\n\n注意:此通知渠道已调整为专业版功能,后续版本将不再支持发送,请尽快修改或升级为专业版`; - } return await this.send(body); } abstract send(body: NotificationBody): Promise; diff --git a/packages/ui/certd-server/src/modules/pipeline/service/notification-service.ts b/packages/ui/certd-server/src/modules/pipeline/service/notification-service.ts index 72ccaf1b..b0a162f6 100644 --- a/packages/ui/certd-server/src/modules/pipeline/service/notification-service.ts +++ b/packages/ui/certd-server/src/modules/pipeline/service/notification-service.ts @@ -1,12 +1,19 @@ import { Inject, Provide, Scope, ScopeEnum } from '@midwayjs/core'; -import { BaseService, SysInstallInfo, SysSettingsService, SysSiteInfo, ValidateException } from '@certd/lib-server'; +import { + BaseService, + NeedVIPException, + SysInstallInfo, + SysSettingsService, + SysSiteInfo, + ValidateException +} from "@certd/lib-server"; import { InjectEntityModel } from '@midwayjs/typeorm'; import { Repository } from 'typeorm'; import { NotificationEntity } from '../entity/notification.js'; import { NotificationInstanceConfig, notificationRegistry, NotificationSendReq, sendNotification } from '@certd/pipeline'; import { http, utils } from '@certd/basic'; import { EmailService } from '../../basic/service/email-service.js'; -import { isComm } from '@certd/plus-core'; +import { isComm, isPlus } from '@certd/plus-core'; @Provide() @Scope(ScopeEnum.Request, { allowDowngrade: true }) @@ -46,6 +53,7 @@ export class NotificationService extends BaseService { } async add(bean: NotificationEntity) { + this.checkNeedPlus(bean.type); const res = await super.add(bean); if(bean.isDefault){ await this.setDefault(res.id, bean.userId); @@ -54,14 +62,28 @@ export class NotificationService extends BaseService { } async update(bean: NotificationEntity) { + + const old = await this.info(bean.id); + this.checkNeedPlus(old.type); + + delete bean.userId; + delete bean.type const res = await super.update(bean); if(bean.isDefault){ - const old = await this.info(bean.id); await this.setDefault(bean.id, old.userId); } + return res } + checkNeedPlus(type: string){ + const define = this.getDefineByType(type) + //@ts-ignore + if (define.needPlus && !isPlus()) { + throw new NeedVIPException("此通知类型为专业版功能,请升级到专业版或以上级别"); + } + } + async getById(id: number, userId: number): Promise { if (!id) { throw new ValidateException('id不能为空');