|
@@ -0,0 +1,139 @@
|
|
|
|
|
+import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, ManyToOne, JoinColumn } from 'typeorm';
|
|
|
|
|
+import { User } from '@/server/modules/users/user.entity';
|
|
|
|
|
+import { Merchant } from '@/server/modules/merchant/merchant.entity';
|
|
|
|
|
+import { Supplier } from '@/server/modules/supplier/supplier.entity';
|
|
|
|
|
+import { DeliveryAddress } from '@/server/modules/delivery-address/delivery-address.entity';
|
|
|
|
|
+
|
|
|
|
|
+@Entity('orders')
|
|
|
|
|
+export class Order {
|
|
|
|
|
+ @PrimaryGeneratedColumn({ unsigned: true })
|
|
|
|
|
+ id!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'order_no', type: 'varchar', length: 50, unique: true, comment: '订单号' })
|
|
|
|
|
+ orderNo!: string;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'user_id', type: 'int', unsigned: true, comment: '用户ID' })
|
|
|
|
|
+ userId!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'auth_code', type: 'varchar', length: 32, nullable: true, comment: '付款码' })
|
|
|
|
|
+ authCode!: string | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'card_no', type: 'varchar', length: 32, nullable: true, comment: '卡号' })
|
|
|
|
|
+ cardNo!: string | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'sjt_card_no', type: 'varchar', length: 32, nullable: true, comment: '盛京通卡号' })
|
|
|
|
|
+ sjtCardNo!: string | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'amount', type: 'decimal', precision: 10, scale: 2, default: 0.00, comment: '订单金额' })
|
|
|
|
|
+ amount!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'cost_amount', type: 'decimal', precision: 10, scale: 2, default: 0.00, comment: '成本金额' })
|
|
|
|
|
+ costAmount!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'freight_amount', type: 'decimal', precision: 10, scale: 2, default: 0.00, comment: '运费' })
|
|
|
|
|
+ freightAmount!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'discount_amount', type: 'decimal', precision: 10, scale: 2, default: 0.00, comment: '优惠金额' })
|
|
|
|
|
+ discountAmount!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'pay_amount', type: 'decimal', precision: 10, scale: 2, default: 0.00, comment: '实际支付金额' })
|
|
|
|
|
+ payAmount!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'device_no', type: 'varchar', length: 255, nullable: true, comment: '设备编号' })
|
|
|
|
|
+ deviceNo!: string | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'description', type: 'varchar', length: 255, nullable: true, comment: '订单描述' })
|
|
|
|
|
+ description!: string | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'goods_detail', type: 'varchar', length: 2000, nullable: true, comment: '订单详情 json' })
|
|
|
|
|
+ goodsDetail!: string | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'goods_tag', type: 'varchar', length: 255, nullable: true, comment: '订单优惠标记' })
|
|
|
|
|
+ goodsTag!: string | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'address', type: 'varchar', length: 255, nullable: true, comment: '地址' })
|
|
|
|
|
+ address!: string | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'order_type', type: 'int', default: 1, comment: '订单类型 1实物订单 2虚拟订单' })
|
|
|
|
|
+ orderType!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'pay_type', type: 'int', default: 0, comment: '支付类型1积分2礼券' })
|
|
|
|
|
+ payType!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'pay_state', type: 'int', default: 0, comment: '0未支付1支付中2支付成功3已退款4支付失败5订单关闭' })
|
|
|
|
|
+ payState!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'state', type: 'int', default: 0, comment: '订单状态0未发货1已发货2收货成功3已退货' })
|
|
|
|
|
+ state!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'user_phone', type: 'varchar', length: 50, nullable: true, comment: '用户手机号' })
|
|
|
|
|
+ userPhone!: string | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'merchant_id', type: 'int', unsigned: true, default: 0, comment: '商户id' })
|
|
|
|
|
+ merchantId!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'merchant_no', type: 'int', unsigned: true, nullable: true, comment: '商户号' })
|
|
|
|
|
+ merchantNo!: number | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'supplier_id', type: 'int', unsigned: true, default: 0, comment: '供货商id' })
|
|
|
|
|
+ supplierId!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'address_id', type: 'int', unsigned: true, default: 0, comment: '地址id' })
|
|
|
|
|
+ addressId!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'receiver_mobile', type: 'varchar', length: 255, nullable: true, comment: '收货人手机号' })
|
|
|
|
|
+ receiverMobile!: string | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'recevier_name', type: 'varchar', length: 255, nullable: true, comment: '收货人姓名' })
|
|
|
|
|
+ recevierName!: string | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'recevier_province', type: 'bigint', default: 0, comment: '收货人所在省' })
|
|
|
|
|
+ recevierProvince!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'recevier_city', type: 'bigint', default: 0, comment: '收货人所在市' })
|
|
|
|
|
+ recevierCity!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'recevier_district', type: 'bigint', default: 0, comment: '收货人所在区' })
|
|
|
|
|
+ recevierDistrict!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'recevier_town', type: 'bigint', default: 0, comment: '收货人所在街道' })
|
|
|
|
|
+ recevierTown!: number;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'refund_time', type: 'timestamp', nullable: true, comment: '退款时间' })
|
|
|
|
|
+ refundTime!: Date | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'close_time', type: 'timestamp', nullable: true, comment: '订单关闭时间' })
|
|
|
|
|
+ closeTime!: Date | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'remark', type: 'varchar', length: 255, nullable: true, comment: '管理员备注信息' })
|
|
|
|
|
+ remark!: string | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'created_by', type: 'int', unsigned: true, nullable: true, comment: '创建人ID' })
|
|
|
|
|
+ createdBy!: number | null;
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ name: 'updated_by', type: 'int', unsigned: true, nullable: true, comment: '更新人ID' })
|
|
|
|
|
+ updatedBy!: number | null;
|
|
|
|
|
+
|
|
|
|
|
+ @CreateDateColumn({ name: 'created_at', type: 'timestamp' })
|
|
|
|
|
+ createdAt!: Date;
|
|
|
|
|
+
|
|
|
|
|
+ @UpdateDateColumn({ name: 'updated_at', type: 'timestamp' })
|
|
|
|
|
+ updatedAt!: Date;
|
|
|
|
|
+
|
|
|
|
|
+ // 关联关系
|
|
|
|
|
+ @ManyToOne(() => User)
|
|
|
|
|
+ @JoinColumn({ name: 'user_id', referencedColumnName: 'id' })
|
|
|
|
|
+ user!: User;
|
|
|
|
|
+
|
|
|
|
|
+ @ManyToOne(() => Merchant)
|
|
|
|
|
+ @JoinColumn({ name: 'merchant_id', referencedColumnName: 'id' })
|
|
|
|
|
+ merchant!: Merchant;
|
|
|
|
|
+
|
|
|
|
|
+ @ManyToOne(() => Supplier)
|
|
|
|
|
+ @JoinColumn({ name: 'supplier_id', referencedColumnName: 'id' })
|
|
|
|
|
+ supplier!: Supplier;
|
|
|
|
|
+
|
|
|
|
|
+ @ManyToOne(() => DeliveryAddress)
|
|
|
|
|
+ @JoinColumn({ name: 'address_id', referencedColumnName: 'id' })
|
|
|
|
|
+ deliveryAddress!: DeliveryAddress;
|
|
|
|
|
+}
|