mirror of https://github.com/certd/certd
64 lines
2.0 KiB
TypeScript
64 lines
2.0 KiB
TypeScript
import { ALL, Body, Controller, Inject, Post, Provide } from '@midwayjs/core';
|
|
import { BaseController } from '../../basic/base-controller.js';
|
|
import { PlusService } from '../basic/service/plus-service.js';
|
|
import { AppKey } from '@certd/pipeline';
|
|
import { SysSettingsService } from '../system/service/sys-settings-service.js';
|
|
import { SysInstallInfo } from '../system/service/models.js';
|
|
|
|
export type PreBindUserReq = {
|
|
userId: number;
|
|
};
|
|
export type BindUserReq = {
|
|
userId: number;
|
|
};
|
|
/**
|
|
*/
|
|
@Provide()
|
|
@Controller('/api/sys/account')
|
|
export class BasicController extends BaseController {
|
|
@Inject()
|
|
plusService: PlusService;
|
|
|
|
@Inject()
|
|
sysSettingsService: SysSettingsService;
|
|
|
|
@Post('/preBindUser', { summary: 'sys:settings:edit' })
|
|
public async preBindUser(@Body(ALL) body: PreBindUserReq) {
|
|
const installInfo: SysInstallInfo = await this.sysSettingsService.getSetting(SysInstallInfo);
|
|
// 设置缓存内容
|
|
await this.plusService.requestWithoutSign({
|
|
url: '/activation/subject/preBind',
|
|
method: 'POST',
|
|
data: {
|
|
userId: body.userId,
|
|
appKey: AppKey,
|
|
subjectId: installInfo.siteId,
|
|
},
|
|
});
|
|
|
|
return this.ok({});
|
|
}
|
|
|
|
@Post('/bindUser', { summary: 'sys:settings:edit' })
|
|
public async bindUser(@Body(ALL) body: BindUserReq) {
|
|
const installInfo: SysInstallInfo = await this.sysSettingsService.getSetting(SysInstallInfo);
|
|
installInfo.bindUserId = body.userId;
|
|
await this.sysSettingsService.saveSetting(installInfo);
|
|
return this.ok({});
|
|
}
|
|
|
|
@Post('/unbindUser', { summary: 'sys:settings:edit' })
|
|
public async unbindUser() {
|
|
const installInfo: SysInstallInfo = await this.sysSettingsService.getSetting(SysInstallInfo);
|
|
installInfo.bindUserId = null;
|
|
await this.sysSettingsService.saveSetting(installInfo);
|
|
return this.ok({});
|
|
}
|
|
|
|
@Post('/updateLicense', { summary: 'sys:settings:edit' })
|
|
public async updateLicense(@Body(ALL) body: { license: string }) {
|
|
await this.plusService.updateLicense(body.license);
|
|
return this.ok(true);
|
|
}
|
|
}
|