feat: 完成 NestJS 后端核心底座开发 (M1-M6) 和 Ant Design Vue 前端迁移
主要更新: 1. 后端核心底座完成 (M1-M6): - 健康检查、指标监控、分布式锁 - 事件总线、队列系统、事务管理 - 安全守卫、多租户隔离、存储适配器 - 审计日志、配置管理、多语言支持 2. 前端迁移到 Ant Design Vue: - 从 Element Plus 迁移到 Ant Design Vue - 完善 system 模块 (role/menu/dept) - 修复依赖和配置问题 3. 文档完善: - AI 开发工作流文档 - 架构约束和开发规范 - 项目进度跟踪 4. 其他改进: - 修复编译错误和类型问题 - 完善测试用例 - 优化项目结构
This commit is contained in:
@@ -1,4 +1,12 @@
|
||||
import { Entity, PrimaryGeneratedColumn, Column, OneToMany, ManyToOne, JoinColumn } from 'typeorm';
|
||||
import {
|
||||
Entity,
|
||||
PrimaryGeneratedColumn,
|
||||
Column,
|
||||
OneToMany,
|
||||
ManyToOne,
|
||||
JoinColumn,
|
||||
} from 'typeorm';
|
||||
import { BaseEntity } from '@wwjCore/base/BaseEntity';
|
||||
import { MemberAccount } from './MemberAccount';
|
||||
import { MemberCashOut } from './MemberCashOut';
|
||||
import { MemberLabel } from './MemberLabel';
|
||||
@@ -8,7 +16,7 @@ import { MemberAddress } from './MemberAddress';
|
||||
import { MemberAccountLog } from './MemberAccountLog';
|
||||
|
||||
@Entity('member')
|
||||
export class Member {
|
||||
export class Member extends BaseEntity {
|
||||
@PrimaryGeneratedColumn({ name: 'member_id' })
|
||||
member_id: number;
|
||||
|
||||
@@ -18,9 +26,6 @@ export class Member {
|
||||
@Column({ name: 'pid', type: 'int', default: 0 })
|
||||
pid: number;
|
||||
|
||||
@Column({ name: 'site_id', type: 'int', default: 0 })
|
||||
site_id: number;
|
||||
|
||||
@Column({ name: 'username', type: 'varchar', length: 255, default: '' })
|
||||
username: string;
|
||||
|
||||
@@ -57,7 +62,12 @@ export class Member {
|
||||
@Column({ name: 'douyin_openid', type: 'varchar', length: 255, default: '' })
|
||||
douyin_openid: string;
|
||||
|
||||
@Column({ name: 'register_channel', type: 'varchar', length: 255, default: 'H5' })
|
||||
@Column({
|
||||
name: 'register_channel',
|
||||
type: 'varchar',
|
||||
length: 255,
|
||||
default: 'H5',
|
||||
})
|
||||
register_channel: string;
|
||||
|
||||
@Column({ name: 'register_type', type: 'varchar', length: 255, default: '' })
|
||||
@@ -78,9 +88,6 @@ export class Member {
|
||||
@Column({ name: 'login_time', type: 'int', default: 0 })
|
||||
login_time: number;
|
||||
|
||||
@Column({ name: 'create_time', type: 'int', default: 0 })
|
||||
create_time: number;
|
||||
|
||||
@Column({ name: 'last_visit_time', type: 'int', default: 0 })
|
||||
last_visit_time: number;
|
||||
|
||||
@@ -105,19 +112,49 @@ export class Member {
|
||||
@Column({ name: 'point_get', type: 'int', default: 0 })
|
||||
point_get: number;
|
||||
|
||||
@Column({ name: 'balance', type: 'decimal', precision: 10, scale: 2, default: 0 })
|
||||
@Column({
|
||||
name: 'balance',
|
||||
type: 'decimal',
|
||||
precision: 10,
|
||||
scale: 2,
|
||||
default: 0,
|
||||
})
|
||||
balance: number;
|
||||
|
||||
@Column({ name: 'balance_get', type: 'decimal', precision: 10, scale: 2, default: 0 })
|
||||
@Column({
|
||||
name: 'balance_get',
|
||||
type: 'decimal',
|
||||
precision: 10,
|
||||
scale: 2,
|
||||
default: 0,
|
||||
})
|
||||
balance_get: number;
|
||||
|
||||
@Column({ name: 'money', type: 'decimal', precision: 10, scale: 2, default: 0 })
|
||||
@Column({
|
||||
name: 'money',
|
||||
type: 'decimal',
|
||||
precision: 10,
|
||||
scale: 2,
|
||||
default: 0,
|
||||
})
|
||||
money: number;
|
||||
|
||||
@Column({ name: 'money_get', type: 'decimal', precision: 10, scale: 2, default: 0 })
|
||||
@Column({
|
||||
name: 'money_get',
|
||||
type: 'decimal',
|
||||
precision: 10,
|
||||
scale: 2,
|
||||
default: 0,
|
||||
})
|
||||
money_get: number;
|
||||
|
||||
@Column({ name: 'money_cash_outing', type: 'decimal', precision: 10, scale: 2, default: 0 })
|
||||
@Column({
|
||||
name: 'money_cash_outing',
|
||||
type: 'decimal',
|
||||
precision: 10,
|
||||
scale: 2,
|
||||
default: 0,
|
||||
})
|
||||
money_cash_outing: number;
|
||||
|
||||
@Column({ name: 'growth', type: 'int', default: 0 })
|
||||
@@ -126,13 +163,31 @@ export class Member {
|
||||
@Column({ name: 'growth_get', type: 'int', default: 0 })
|
||||
growth_get: number;
|
||||
|
||||
@Column({ name: 'commission', type: 'decimal', precision: 10, scale: 2, default: 0 })
|
||||
@Column({
|
||||
name: 'commission',
|
||||
type: 'decimal',
|
||||
precision: 10,
|
||||
scale: 2,
|
||||
default: 0,
|
||||
})
|
||||
commission: number;
|
||||
|
||||
@Column({ name: 'commission_get', type: 'decimal', precision: 10, scale: 2, default: 0 })
|
||||
@Column({
|
||||
name: 'commission_get',
|
||||
type: 'decimal',
|
||||
precision: 10,
|
||||
scale: 2,
|
||||
default: 0,
|
||||
})
|
||||
commission_get: number;
|
||||
|
||||
@Column({ name: 'commission_cash_outing', type: 'decimal', precision: 10, scale: 2, default: 0 })
|
||||
@Column({
|
||||
name: 'commission_cash_outing',
|
||||
type: 'decimal',
|
||||
precision: 10,
|
||||
scale: 2,
|
||||
default: 0,
|
||||
})
|
||||
commission_cash_outing: number;
|
||||
|
||||
@Column({ name: 'is_member', type: 'tinyint', default: 0 })
|
||||
@@ -141,9 +196,6 @@ export class Member {
|
||||
@Column({ name: 'member_time', type: 'int', default: 0 })
|
||||
member_time: number;
|
||||
|
||||
@Column({ name: 'is_del', type: 'tinyint', default: 0 })
|
||||
is_del: number;
|
||||
|
||||
@Column({ name: 'province_id', type: 'int', default: 0 })
|
||||
province_id: number;
|
||||
|
||||
@@ -162,32 +214,26 @@ export class Member {
|
||||
@Column({ name: 'remark', type: 'varchar', length: 300, default: '' })
|
||||
remark: string;
|
||||
|
||||
@Column({ name: 'delete_time', type: 'int', default: 0 })
|
||||
delete_time: number;
|
||||
|
||||
@Column({ name: 'update_time', type: 'int', default: 0 })
|
||||
update_time: number;
|
||||
|
||||
// 关联关系
|
||||
@OneToMany(() => MemberAccount, account => account.member)
|
||||
@OneToMany(() => MemberAccount, (account) => account.member)
|
||||
accounts: MemberAccount[];
|
||||
|
||||
@OneToMany(() => MemberCashOut, cashOut => cashOut.member)
|
||||
@OneToMany(() => MemberCashOut, (cashOut) => cashOut.member)
|
||||
cashOuts: MemberCashOut[];
|
||||
|
||||
@OneToMany(() => MemberLabel, label => label.member)
|
||||
@OneToMany(() => MemberLabel, (label) => label.member)
|
||||
labels: MemberLabel[];
|
||||
|
||||
@OneToMany(() => MemberSign, sign => sign.member)
|
||||
@OneToMany(() => MemberSign, (sign) => sign.member)
|
||||
signs: MemberSign[];
|
||||
|
||||
@ManyToOne(() => MemberLevel, level => level.members)
|
||||
@ManyToOne(() => MemberLevel, (level) => level.members)
|
||||
@JoinColumn({ name: 'member_level' })
|
||||
level: MemberLevel;
|
||||
|
||||
@OneToMany(() => MemberAddress, address => address.member)
|
||||
@OneToMany(() => MemberAddress, (address) => address.member)
|
||||
addresses: MemberAddress[];
|
||||
|
||||
@OneToMany(() => MemberAccountLog, accountLog => accountLog.member)
|
||||
@OneToMany(() => MemberAccountLog, (accountLog) => accountLog.member)
|
||||
accountLogs: MemberAccountLog[];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user