From f1c672be1f73ddc3d6322fc5a6e7a439afe1bc10 Mon Sep 17 00:00:00 2001 From: snowgitea Date: Wed, 1 Jul 2026 17:55:56 +0800 Subject: [PATCH] chore: src/modules/base/entity/base.ts --- src/modules/base/entity/base.ts | 65 +++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/modules/base/entity/base.ts diff --git a/src/modules/base/entity/base.ts b/src/modules/base/entity/base.ts new file mode 100644 index 0000000..1d60f85 --- /dev/null +++ b/src/modules/base/entity/base.ts @@ -0,0 +1,65 @@ +import { Index, PrimaryGeneratedColumn, Column } from 'typeorm'; +import * as moment from 'moment'; +import { CoolBaseEntity } from '@cool-midway/core'; + +/** + * 时间转换器 + */ +export const transformerTime = { + to(value) { + return value + ? moment(value).format('YYYY-MM-DD HH:mm:ss') + : moment().format('YYYY-MM-DD HH:mm:ss'); + }, + from(value) { + return value; + }, +}; + +/** + * Json转换器 + */ +export const transformerJson = { + to: value => value, + from: value => { + // 确保从数据库返回的是对象 + if (typeof value === 'string') { + try { + return JSON.parse(value); + } catch (e) { + return value; + } + } + return value; + }, +}; +/** + * 实体基类 + */ +export abstract class BaseEntity extends CoolBaseEntity { + // 默认自增 + @PrimaryGeneratedColumn('increment', { + comment: 'ID', + }) + id: number; + + @Index() + @Column({ + comment: '创建时间', + type: 'varchar', + transformer: transformerTime, + }) + createTime: Date; + + @Index() + @Column({ + comment: '更新时间', + type: 'varchar', + transformer: transformerTime, + }) + updateTime: Date; + + @Index() + @Column({ comment: '租户ID', nullable: true }) + tenantId: number; +}