2025-08-27 11:24:22 +08:00
|
|
|
import {
|
|
|
|
|
Entity,
|
|
|
|
|
PrimaryGeneratedColumn,
|
|
|
|
|
Column,
|
|
|
|
|
OneToMany,
|
|
|
|
|
ManyToOne,
|
|
|
|
|
JoinColumn,
|
|
|
|
|
} from 'typeorm';
|
2025-09-10 08:04:28 +08:00
|
|
|
import { BaseEntity } from '../../../core/base/BaseEntity';
|
2025-08-24 02:31:42 +08:00
|
|
|
import { MemberAccount } from './MemberAccount';
|
|
|
|
|
import { MemberCashOut } from './MemberCashOut';
|
|
|
|
|
import { MemberLabel } from './MemberLabel';
|
|
|
|
|
import { MemberSign } from './MemberSign';
|
|
|
|
|
import { MemberLevel } from './MemberLevel';
|
|
|
|
|
import { MemberAddress } from './MemberAddress';
|
|
|
|
|
import { MemberAccountLog } from './MemberAccountLog';
|
|
|
|
|
|
|
|
|
|
@Entity('member')
|
2025-08-27 11:24:22 +08:00
|
|
|
export class Member extends BaseEntity {
|
2025-08-24 02:31:42 +08:00
|
|
|
@PrimaryGeneratedColumn({ name: 'member_id' })
|
|
|
|
|
member_id: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'member_no', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
member_no: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'pid', type: 'int', default: 0 })
|
|
|
|
|
pid: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'username', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
username: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'mobile', type: 'varchar', length: 20, default: '' })
|
|
|
|
|
mobile: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'password', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
password: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'nickname', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
nickname: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'headimg', type: 'varchar', length: 1000, default: '' })
|
|
|
|
|
headimg: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'member_level', type: 'int', default: 0 })
|
|
|
|
|
member_level: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'member_label', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
member_label: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'wx_openid', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
wx_openid: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'weapp_openid', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
weapp_openid: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'wx_unionid', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
wx_unionid: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'ali_openid', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
ali_openid: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'douyin_openid', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
douyin_openid: string;
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@Column({
|
|
|
|
|
name: 'register_channel',
|
|
|
|
|
type: 'varchar',
|
|
|
|
|
length: 255,
|
|
|
|
|
default: 'H5',
|
|
|
|
|
})
|
2025-08-24 02:31:42 +08:00
|
|
|
register_channel: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'register_type', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
register_type: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'login_ip', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
login_ip: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'login_type', type: 'varchar', length: 255, default: 'h5' })
|
|
|
|
|
login_type: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'login_channel', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
login_channel: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'login_count', type: 'int', default: 0 })
|
|
|
|
|
login_count: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'login_time', type: 'int', default: 0 })
|
|
|
|
|
login_time: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'last_visit_time', type: 'int', default: 0 })
|
|
|
|
|
last_visit_time: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'last_consum_time', type: 'int', default: 0 })
|
|
|
|
|
last_consum_time: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'sex', type: 'tinyint', default: 0 })
|
|
|
|
|
sex: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'status', type: 'tinyint', default: 1 })
|
|
|
|
|
status: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'birthday', type: 'varchar', length: 20, default: '' })
|
|
|
|
|
birthday: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'id_card', type: 'varchar', length: 30, default: '' })
|
|
|
|
|
id_card: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'point', type: 'int', default: 0 })
|
|
|
|
|
point: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'point_get', type: 'int', default: 0 })
|
|
|
|
|
point_get: number;
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@Column({
|
|
|
|
|
name: 'balance',
|
|
|
|
|
type: 'decimal',
|
|
|
|
|
precision: 10,
|
|
|
|
|
scale: 2,
|
|
|
|
|
default: 0,
|
|
|
|
|
})
|
2025-08-24 02:31:42 +08:00
|
|
|
balance: number;
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@Column({
|
|
|
|
|
name: 'balance_get',
|
|
|
|
|
type: 'decimal',
|
|
|
|
|
precision: 10,
|
|
|
|
|
scale: 2,
|
|
|
|
|
default: 0,
|
|
|
|
|
})
|
2025-08-24 02:31:42 +08:00
|
|
|
balance_get: number;
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@Column({
|
|
|
|
|
name: 'money',
|
|
|
|
|
type: 'decimal',
|
|
|
|
|
precision: 10,
|
|
|
|
|
scale: 2,
|
|
|
|
|
default: 0,
|
|
|
|
|
})
|
2025-08-24 02:31:42 +08:00
|
|
|
money: number;
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@Column({
|
|
|
|
|
name: 'money_get',
|
|
|
|
|
type: 'decimal',
|
|
|
|
|
precision: 10,
|
|
|
|
|
scale: 2,
|
|
|
|
|
default: 0,
|
|
|
|
|
})
|
2025-08-24 02:31:42 +08:00
|
|
|
money_get: number;
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@Column({
|
|
|
|
|
name: 'money_cash_outing',
|
|
|
|
|
type: 'decimal',
|
|
|
|
|
precision: 10,
|
|
|
|
|
scale: 2,
|
|
|
|
|
default: 0,
|
|
|
|
|
})
|
2025-08-24 02:31:42 +08:00
|
|
|
money_cash_outing: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'growth', type: 'int', default: 0 })
|
|
|
|
|
growth: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'growth_get', type: 'int', default: 0 })
|
|
|
|
|
growth_get: number;
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@Column({
|
|
|
|
|
name: 'commission',
|
|
|
|
|
type: 'decimal',
|
|
|
|
|
precision: 10,
|
|
|
|
|
scale: 2,
|
|
|
|
|
default: 0,
|
|
|
|
|
})
|
2025-08-24 02:31:42 +08:00
|
|
|
commission: number;
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@Column({
|
|
|
|
|
name: 'commission_get',
|
|
|
|
|
type: 'decimal',
|
|
|
|
|
precision: 10,
|
|
|
|
|
scale: 2,
|
|
|
|
|
default: 0,
|
|
|
|
|
})
|
2025-08-24 02:31:42 +08:00
|
|
|
commission_get: number;
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@Column({
|
|
|
|
|
name: 'commission_cash_outing',
|
|
|
|
|
type: 'decimal',
|
|
|
|
|
precision: 10,
|
|
|
|
|
scale: 2,
|
|
|
|
|
default: 0,
|
|
|
|
|
})
|
2025-08-24 02:31:42 +08:00
|
|
|
commission_cash_outing: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'is_member', type: 'tinyint', default: 0 })
|
|
|
|
|
is_member: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'member_time', type: 'int', default: 0 })
|
|
|
|
|
member_time: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'province_id', type: 'int', default: 0 })
|
|
|
|
|
province_id: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'city_id', type: 'int', default: 0 })
|
|
|
|
|
city_id: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'district_id', type: 'int', default: 0 })
|
|
|
|
|
district_id: number;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'address', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
address: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'location', type: 'varchar', length: 255, default: '' })
|
|
|
|
|
location: string;
|
|
|
|
|
|
|
|
|
|
@Column({ name: 'remark', type: 'varchar', length: 300, default: '' })
|
|
|
|
|
remark: string;
|
|
|
|
|
|
|
|
|
|
// 关联关系
|
2025-08-27 11:24:22 +08:00
|
|
|
@OneToMany(() => MemberAccount, (account) => account.member)
|
2025-08-24 02:31:42 +08:00
|
|
|
accounts: MemberAccount[];
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@OneToMany(() => MemberCashOut, (cashOut) => cashOut.member)
|
2025-08-24 02:31:42 +08:00
|
|
|
cashOuts: MemberCashOut[];
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@OneToMany(() => MemberLabel, (label) => label.member)
|
2025-08-24 02:31:42 +08:00
|
|
|
labels: MemberLabel[];
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@OneToMany(() => MemberSign, (sign) => sign.member)
|
2025-08-24 02:31:42 +08:00
|
|
|
signs: MemberSign[];
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@ManyToOne(() => MemberLevel, (level) => level.members)
|
2025-08-24 02:31:42 +08:00
|
|
|
@JoinColumn({ name: 'member_level' })
|
|
|
|
|
level: MemberLevel;
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@OneToMany(() => MemberAddress, (address) => address.member)
|
2025-08-24 02:31:42 +08:00
|
|
|
addresses: MemberAddress[];
|
|
|
|
|
|
2025-08-27 11:24:22 +08:00
|
|
|
@OneToMany(() => MemberAccountLog, (accountLog) => accountLog.member)
|
2025-08-24 02:31:42 +08:00
|
|
|
accountLogs: MemberAccountLog[];
|
2025-08-27 11:24:22 +08:00
|
|
|
}
|