pref: 启动输出版本和站点id

pull/213/head
xiaojunnuo 2024-10-14 10:57:12 +08:00
parent 4caa2fad9d
commit 50c56d134e
7 changed files with 64 additions and 23 deletions

View File

@ -1,7 +1,7 @@
<template>
<div class="access-selector">
<span v-if="target.name" class="mr-5 cd-flex-inline">
<span class="mr-5">{{ target.name }}</span>
<a-tag class="mr-5" color="green">{{ target.name }}</a-tag>
<fs-icon class="cd-icon-button" icon="ion:close-circle-outline" @click="clear"></fs-icon>
</span>
<span v-else class="mlr-5 text-gray">{{ placeholder }}</span>

View File

@ -78,7 +78,9 @@ export type CertApplyPluginSysInput = {
googleCommonEabAccessId: number;
};
export type PluginSysSetting<T> = {
input?: T;
sysSetting: {
input?: T;
};
};
export type CommPluginConfig = {
CertApply?: PluginSysSetting<CertApplyPluginSysInput>;

View File

@ -6,9 +6,16 @@
<div class="sys-plugin-config settings-form">
<a-form :model="formState" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }" autocomplete="off" @finish="onFinish" @finish-failed="onFinishFailed">
<a-form-item label="公共Google EAB授权" :name="['CertApply', 'input', 'googleCommonEabAccessId']">
<access-selector v-model:model-value="formState.CertApply.input.googleCommonEabAccessId" type="eab" from="sys"></access-selector>
<div class="helper">设置公共Google EAB授权给用户使用避免用户自己去翻墙获取Google EAB授权</div>
<a-form-item label="公共Google EAB授权" :name="['CertApply', 'sysSetting', 'input', 'googleCommonEabAccessId']">
<access-selector v-model:model-value="formState.CertApply.sysSetting.input.googleCommonEabAccessId" type="eab" from="sys"></access-selector>
<div class="helper">
<div>设置公共Google EAB授权给用户使用避免用户自己去翻墙获取Google EAB授权</div>
<div>
<a href="https://gitee.com/certd/certd/blob/v2/doc/google/google.md#21-%E7%9B%B4%E6%8E%A5%E8%8E%B7%E5%8F%96eab-%E6%8E%A8%E8%8D%90">
获取Google EAB授权方法
</a>
</div>
</div>
</a-form-item>
<a-form-item :wrapper-col="{ offset: 8, span: 16 }">
@ -31,7 +38,11 @@ defineOptions({
});
const formState = reactive<Partial<CommPluginConfig>>({
CertApply: {
input: {}
sysSetting: {
input: {
googleCommonEabAccessId: null
}
}
}
});

View File

@ -1,16 +1,10 @@
import { Autoload, Config, Init, Inject, Scope, ScopeEnum } from '@midwayjs/core';
import { logger } from '@certd/pipeline';
import { UserService } from '../sys/authority/service/user-service.js';
import { PlusService, SysSettingsService } from '@certd/lib-server';
import { PlusService, SysInstallInfo, SysPrivateSettings, SysSettingsService } from '@certd/lib-server';
import { nanoid } from 'nanoid';
import { SysInstallInfo, SysPrivateSettings } from '@certd/lib-server';
import crypto from 'crypto';
export type InstallInfo = {
installTime: number;
instanceId?: string;
};
@Autoload()
@Scope(ScopeEnum.Singleton)
export class AutoInitSite {
@ -59,8 +53,6 @@ export class AutoInitSite {
}
logger.info('初始化站点完成');
// const pkg = require('../../../package.json');
// logger.info(`当前版本为:${pkg.version}`);
}
async startOptimizeDb() {

View File

@ -0,0 +1,22 @@
import { Autoload, Init, Inject, Scope, ScopeEnum } from '@midwayjs/core';
import { logger } from '@certd/pipeline';
import { SysInstallInfo, SysSettingsService } from '@certd/lib-server';
import { getVersion } from '../../utils/version.js';
@Autoload()
@Scope(ScopeEnum.Singleton)
export class AutoZPrint {
@Inject()
sysSettingsService: SysSettingsService;
@Init()
async init() {
const installInfo: SysInstallInfo = await this.sysSettingsService.getSetting(SysInstallInfo);
logger.info('=========================================');
logger.info('当前站点ID:', installInfo.siteId);
const version = await getVersion();
logger.info(`当前版本:${version}`);
logger.info('服务启动完成');
logger.info('=========================================');
}
}

View File

@ -34,20 +34,27 @@ export class PluginConfigService {
return configs;
}
async saveCommPluginConfig(body: CommPluginConfig) {
const certApplyConfig = body.CertApply;
const CertApply = await this.pluginService.getRepository().findOne({
where: { name: 'CertApply' },
async saveCommPluginConfig(config: CommPluginConfig) {
await this.savePluginConfig('CertApply', config.CertApply);
}
async savePluginConfig(name: string, config: PluginConfig) {
const sysSetting = config?.sysSetting;
if (!sysSetting) {
throw new Error(`${name}.sysSetting is required`);
}
const pluginEntity = await this.pluginService.getRepository().findOne({
where: { name },
});
if (!CertApply) {
if (!pluginEntity) {
await this.pluginService.add({
name: 'CertApply',
sysSetting: JSON.stringify(certApplyConfig),
name,
sysSetting: JSON.stringify(sysSetting),
type: 'builtIn',
disabled: false,
});
} else {
await this.pluginService.getRepository().update({ name: 'CertApply' }, { sysSetting: JSON.stringify(certApplyConfig) });
await this.pluginService.getRepository().update({ name }, { sysSetting: JSON.stringify(sysSetting) });
}
}

View File

@ -0,0 +1,7 @@
import fs from 'fs';
export async function getVersion() {
const pkg = await fs.promises.readFile('../../../package.json');
const pkgJson = JSON.parse(pkg.toString());
return pkgJson.version;
}