import { Repository } from "typeorm"; import { BaseService } from "@certd/lib-server"; import { ProductActivationCodeEntity, UserSuiteEntity } from "../entity/index.js"; import { UserSuiteService } from "./user-suite-service.js"; import { ProductService } from "./product-service.js"; export type GenerateActivationCodeReq = { productId: number; duration: number; count: number; expireTime?: number; exported?: boolean; remark?: string; }; /** * 产品激活码服务 */ export declare class ProductActivationCodeService extends BaseService { repository: Repository; userSuiteRepository: Repository; productService: ProductService; userSuiteService: UserSuiteService; getRepository(): Repository; /** * 批量生成激活码 */ generate(req: GenerateActivationCodeReq): Promise<{ batchNo: string; count: number; codes: { code: string; productId: number; duration: number; batchNo: string; status: string; expireTime: number; remark: string; }[]; }>; /** * 生成单个CDK激活码,格式:CDK + 4位产品ID + 日期(YYYYMMDD) + 10位nanoId */ private generateCode; /** * 用户兑换激活码 */ use(userId: number, code: string): Promise<{ title: string; duration: number; }>; /** * 禁用激活码 */ disable(id: number): Promise; /** * 启用激活码 */ enable(id: number): Promise; /** * 导出未使用的激活码,并标记为已导出 */ exportCodes(req: { ids?: number[]; }): Promise<{ id: number; code: string; productId: number; duration: number; batchNo: string; status: import("../entity/product-activation-code.js").ActivationCodeStatus; expireTime: number; remark: string; }[]>; /** * 删除激活码 */ deleteById(id: number): Promise; private checkId; }