From e7e54bc19e3a734913a93a94e25db3bb06d2ab0f Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Wed, 11 Feb 2026 16:27:54 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=96=B0=E7=BD=91=E4=BA=92=E8=81=94?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=9F=A5=E8=AF=A2=E5=9F=9F=E5=90=8D=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/plugins/plugin-xinnetconnet/access.ts | 33 +++++++++++++++---- .../plugin-xinnetconnet/dns-provider.ts | 18 +++++++++- 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/access.ts b/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/access.ts index 286526d2d..ceed8326c 100644 --- a/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/access.ts +++ b/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/access.ts @@ -1,8 +1,8 @@ -import { IsAccess, AccessInput, BaseAccess } from '@certd/pipeline'; +import { AccessInput, BaseAccess, IsAccess, PageSearch } from '@certd/pipeline'; /** - * 这个注解将注册一个授权配置 - * 在certd的后台管理系统中,用户可以选择添加此类型的授权 + 管理页面地址:https://www.dns.com.cn/login/toLogin.do +是否有API接口,接口地址:https://api.bizcn.com/rrpservices */ @IsAccess({ name: 'xinnetconnect', @@ -38,6 +38,23 @@ export class XinnetConnectAccess extends BaseAccess { password = ''; + async getDomainList(req: PageSearch): Promise { + let bodyXml =` + ${req.pageSize} + ${req.pageNo} + ` + if(req.searchKey){ + bodyXml += `${req.searchKey}` + } + + const res = await this.doRequest({ + url: "/domainService", + bodyXml: bodyXml, + service: "getDomainList", + }) + return res + } + async addDnsRecord(req: {domain:string,hostRecord:string, value:string, type:string}): Promise { const { domain,hostRecord, value, type } = req; @@ -125,15 +142,19 @@ export class XinnetConnectAccess extends BaseAccess { // 提取返回结果 const soapBody = result['soap:Envelope']['soap:Body']; - const addDnsRecordResponse = soapBody["ns1:addDnsRecordResponse"]; - console.log(addDnsRecordResponse) + const keys = Object.keys(soapBody); + if (keys.length === 0) { + throw new Error('SOAP响应体为空'); + } + const addDnsRecordResponse = soapBody[keys[0]]; + this.ctx.logger.info(addDnsRecordResponse) const resultData = addDnsRecordResponse.response.result; const res = { code: resultData.$.code, msg: resultData.msg } - console.log('操作结果:', res); + this.ctx.logger.info('操作结果:', res); if (res.code != "200") { throw new Error(res.msg + " code:" + res.code); diff --git a/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/dns-provider.ts index 0556acd48..7af0cc9a4 100644 --- a/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-xinnetconnet/dns-provider.ts @@ -1,4 +1,5 @@ -import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert"; +import { PageRes, PageSearch } from "@certd/pipeline"; +import { AbstractDnsProvider, CreateRecordOptions, DomainRecord, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert"; import { XinnetConnectAccess } from "./access.js"; @@ -62,6 +63,21 @@ export class XinnetConnectDnsProvider extends AbstractDnsProvider> { + const res = await this.access.getDomainList(req) + let list = res.domainlist || [] + list = list.map(item => ({ + domain: item.domain, + id: item.domain, + })) + return { + pageNo: req.pageNo, + pageSize: req.pageSize, + total: res.total || 0, + list, + } + } } //实例化这个provider,将其自动注册到系统中