import { Inject, Provide } from '@midwayjs/decorator';
|
import { BaseService, ICoolCache } from '@cool-midway/core';
|
import { InjectEntityModel } from '@midwayjs/orm';
|
import { Repository } from 'typeorm';
|
import { BaseSysParamEntity } from '../../entity/sys/param';
|
|
/**
|
* 参数配置
|
*/
|
@Provide()
|
export class BaseSysParamService extends BaseService {
|
@InjectEntityModel(BaseSysParamEntity)
|
baseSysParamEntity: Repository<BaseSysParamEntity>;
|
|
@Inject('cool:cache')
|
coolCache: ICoolCache;
|
|
/**
|
* 根据key获得对应的参数
|
* @param key
|
*/
|
async dataByKey(key) {
|
let result = await this.coolCache.get(`param:${key}`);
|
if (result) {
|
result = JSON.parse(result);
|
if (result.dataType !== 0) {
|
return JSON.parse(result.data);
|
} else {
|
return result.data;
|
}
|
}
|
return;
|
}
|
|
/**
|
* 根据key获得对应的网页数据
|
* @param key
|
*/
|
async htmlByKey(key) {
|
let html = '<html><body>@content</body></html>';
|
let result = await this.coolCache.get(`param:${key}`);
|
if (result) {
|
result = JSON.parse(result);
|
html = html.replace('@content', result.data);
|
} else {
|
html = html.replace('@content', 'key notfound');
|
}
|
return html;
|
}
|
|
/**
|
* 重新初始化缓存
|
*/
|
async modifyAfter() {
|
const params = await this.baseSysParamEntity.find();
|
for (const param of params) {
|
await this.coolCache.set(`param:${param.keyName}`, JSON.stringify(param));
|
}
|
}
|
}
|