2
0

order.mt.entity.ts 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, ManyToOne, JoinColumn, Index } from 'typeorm';
  2. import { UserEntityMt } from '@d8d/user-module-mt';
  3. import { MerchantMt } from '@d8d/merchant-module-mt';
  4. import { SupplierMt } from '@d8d/supplier-module-mt';
  5. import { DeliveryAddressMt } from '@d8d/delivery-address-module-mt';
  6. @Entity('orders_mt')
  7. @Index(['tenantId'])
  8. @Index(['tenantId', 'id'])
  9. @Index(['tenantId', 'userId'])
  10. @Index(['tenantId', 'merchantId'])
  11. @Index(['tenantId', 'supplierId'])
  12. @Index(['tenantId', 'addressId'])
  13. export class OrderMt {
  14. @PrimaryGeneratedColumn({ unsigned: true })
  15. id!: number;
  16. @Column({ name: 'tenant_id', type: 'int', unsigned: true, comment: '租户ID' })
  17. tenantId!: number;
  18. @Column({ name: 'order_no', type: 'varchar', length: 50, unique: true, comment: '订单号' })
  19. orderNo!: string;
  20. @Column({ name: 'user_id', type: 'int', unsigned: true, comment: '用户ID' })
  21. userId!: number;
  22. @Column({ name: 'auth_code', type: 'varchar', length: 32, nullable: true, comment: '付款码' })
  23. authCode!: string | null;
  24. @Column({ name: 'card_no', type: 'varchar', length: 32, nullable: true, comment: '卡号' })
  25. cardNo!: string | null;
  26. @Column({ name: 'sjt_card_no', type: 'varchar', length: 32, nullable: true, comment: '盛京通卡号' })
  27. sjtCardNo!: string | null;
  28. @Column({ name: 'amount', type: 'decimal', precision: 10, scale: 2, default: 0.00, comment: '订单金额' })
  29. amount!: number;
  30. @Column({ name: 'cost_amount', type: 'decimal', precision: 10, scale: 2, default: 0.00, comment: '成本金额' })
  31. costAmount!: number;
  32. @Column({ name: 'freight_amount', type: 'decimal', precision: 10, scale: 2, default: 0.00, comment: '运费' })
  33. freightAmount!: number;
  34. @Column({ name: 'discount_amount', type: 'decimal', precision: 10, scale: 2, default: 0.00, comment: '优惠金额' })
  35. discountAmount!: number;
  36. @Column({ name: 'pay_amount', type: 'decimal', precision: 10, scale: 2, default: 0.00, comment: '实际支付金额' })
  37. payAmount!: number;
  38. @Column({ name: 'device_no', type: 'varchar', length: 255, nullable: true, comment: '设备编号' })
  39. deviceNo!: string | null;
  40. @Column({ name: 'description', type: 'varchar', length: 255, nullable: true, comment: '订单描述' })
  41. description!: string | null;
  42. @Column({ name: 'goods_detail', type: 'varchar', length: 2000, nullable: true, comment: '订单详情 json' })
  43. goodsDetail!: string | null;
  44. @Column({ name: 'goods_tag', type: 'varchar', length: 255, nullable: true, comment: '订单优惠标记' })
  45. goodsTag!: string | null;
  46. @Column({ name: 'address', type: 'varchar', length: 255, nullable: true, comment: '地址' })
  47. address!: string | null;
  48. @Column({ name: 'order_type', type: 'int', default: 1, comment: '订单类型 1实物订单 2虚拟订单' })
  49. orderType!: number;
  50. @Column({ name: 'pay_type', type: 'int', default: 0, comment: '支付类型1积分2礼券' })
  51. payType!: number;
  52. @Column({ name: 'pay_state', type: 'int', default: 0, comment: '0未支付1支付中2支付成功3已退款4支付失败5订单关闭' })
  53. payState!: number;
  54. @Column({ name: 'state', type: 'int', default: 0, comment: '订单状态0未发货1已发货2收货成功3已退货' })
  55. state!: number;
  56. @Column({ name: 'user_phone', type: 'varchar', length: 50, nullable: true, comment: '用户手机号' })
  57. userPhone!: string | null;
  58. @Column({ name: 'merchant_id', type: 'int', unsigned: true, default: 0, comment: '商户id' })
  59. merchantId!: number;
  60. @Column({ name: 'merchant_no', type: 'int', unsigned: true, nullable: true, comment: '商户号' })
  61. merchantNo!: number | null;
  62. @Column({ name: 'supplier_id', type: 'int', unsigned: true, default: 0, comment: '供货商id' })
  63. supplierId!: number;
  64. @Column({ name: 'address_id', type: 'int', unsigned: true, default: 0, comment: '地址id' })
  65. addressId!: number;
  66. @Column({ name: 'receiver_mobile', type: 'varchar', length: 255, nullable: true, comment: '收货人手机号' })
  67. receiverMobile!: string | null;
  68. @Column({ name: 'recevier_name', type: 'varchar', length: 255, nullable: true, comment: '收货人姓名' })
  69. recevierName!: string | null;
  70. @Column({ name: 'recevier_province', type: 'bigint', default: 0, comment: '收货人所在省' })
  71. recevierProvince!: number;
  72. @Column({ name: 'recevier_city', type: 'bigint', default: 0, comment: '收货人所在市' })
  73. recevierCity!: number;
  74. @Column({ name: 'recevier_district', type: 'bigint', default: 0, comment: '收货人所在区' })
  75. recevierDistrict!: number;
  76. @Column({ name: 'recevier_town', type: 'bigint', default: 0, comment: '收货人所在街道' })
  77. recevierTown!: number;
  78. @Column({ name: 'refund_time', type: 'timestamp', nullable: true, comment: '退款时间' })
  79. refundTime!: Date | null;
  80. @Column({ name: 'close_time', type: 'timestamp', nullable: true, comment: '订单关闭时间' })
  81. closeTime!: Date | null;
  82. @Column({ name: 'remark', type: 'varchar', length: 255, nullable: true, comment: '管理员备注信息' })
  83. remark!: string | null;
  84. @Column({ name: 'created_by', type: 'int', unsigned: true, nullable: true, comment: '创建人ID' })
  85. createdBy!: number | null;
  86. @Column({ name: 'updated_by', type: 'int', unsigned: true, nullable: true, comment: '更新人ID' })
  87. updatedBy!: number | null;
  88. @CreateDateColumn({ name: 'created_at', type: 'timestamp' })
  89. createdAt!: Date;
  90. @UpdateDateColumn({ name: 'updated_at', type: 'timestamp' })
  91. updatedAt!: Date;
  92. // 关联关系
  93. @ManyToOne(() => UserEntityMt)
  94. @JoinColumn({ name: 'user_id', referencedColumnName: 'id' })
  95. user!: UserEntityMt;
  96. @ManyToOne(() => MerchantMt)
  97. @JoinColumn({ name: 'merchant_id', referencedColumnName: 'id' })
  98. merchant!: MerchantMt;
  99. @ManyToOne(() => SupplierMt)
  100. @JoinColumn({ name: 'supplier_id', referencedColumnName: 'id' })
  101. supplier!: SupplierMt;
  102. @ManyToOne(() => DeliveryAddressMt)
  103. @JoinColumn({ name: 'address_id', referencedColumnName: 'id' })
  104. deliveryAddress!: DeliveryAddressMt;
  105. }