import { Index, PrimaryGeneratedColumn, Column, DeleteDateColumn } 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({ name: 'create_time', comment: '创建时间', type: 'varchar', transformer: transformerTime, }) createTime: Date; @Index() @Column({ name: 'update_time', comment: '更新时间', type: 'varchar', transformer: transformerTime, }) updateTime: Date; @Index() @Column({ name: 'tenant_id', comment: '租户ID', nullable: true, }) tenantId: number; @Index() @DeleteDateColumn({ name: 'deleted_at', comment: '软删除时间', nullable: true, }) deletedAt?: Date | null; }