You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
4.0 KiB

8 months ago
package model
import (
"database/sql"
"github.com/shopspring/decimal"
"time"
)
const (
CarTypeSecond = 1 // 二手车
CarTypeNew = 2 // 新车
CarTheUpperFalse = 1 // 未上架
CarTheUpperTrue = 2 // 已上架
CarTheDownAdoptWait = 3 // 下架审核中
CarStatusNormal = 1 // 正常
CarStatusSigning = 4 // 合同签署中
CarStatusSigned = 5 // 合同已签署
CarStatusDeposit = 2 // 已预定
CarStatusFinal = 3 // 完成
CarStatusCancel = 10 // 取消
CustomerTypeCustomer = 1 // 普通客户
CustomerTypeDealer = 2 // 车商
)
func (*Car) GetCarTypeName(carType uint) (result string) {
switch carType {
case CarTypeSecond:
return "二手车"
case CarTypeNew:
return "新车"
default:
return "未知"
}
}
func (*Car) GetTheUpperName(up uint) (result string) {
switch up {
case CarTheUpperFalse:
return "未上架"
case CarTheUpperTrue:
return "已上架"
case CarTheDownAdoptWait:
return "下架审核中"
default:
return "未知"
}
}
func (*Car) GetStatusName(status uint) (result string) {
switch status {
case CarStatusCancel:
return "取消"
case CarStatusNormal:
return "正常"
case CarStatusSigning:
return "签订中"
case CarStatusSigned:
return "已签订"
case CarStatusDeposit:
return "预定"
case CarStatusFinal:
return "完成"
default:
return "未知"
}
}
func (*Car) GetCustomerTypeName(tp uint) (result string) {
switch tp {
case CustomerTypeCustomer:
return "普通客户"
case CustomerTypeDealer:
return "车商"
default:
return "未知"
}
}
type Car struct {
Id uint `gorm:"primaryKey"`
CarSn string // 车辆编号
Vin string // vin码
ModelId uint // 车型id
Model CarModel `gorm:"foreignKey:ModelId;references:ModelId"`
Data CarData `gorm:"foreignKey:CarId"`
Type uint // 车辆类型 1=二手车 2=新车
OrderId uint // 车辆订单id
OrderCarId uint // 订单 车辆id
CarBase *CarBase `gorm:"foreignKey:OrderCarId"`
StoreId uint // 车商门店id
Store BrokerBusinessStore `gorm:"foreignKey:StoreId"`
Sale *OrderSale `gorm:"foreignKey:CarId"`
CustomerId uint // 客户id
CustomerType uint // 客户类型 1=普通客户 2=车商
BrokerId uint // 车辆经纪人id
Broker Broker `gorm:"foreignKey:BrokerId"`
MainPhoto string // 车辆主图
Status uint // 状态 1=正常 2=预定 3=完成 10=取消
LicensingDate sql.NullTime // 上牌日期
ReckonPrice decimal.Decimal // 估算价格
Price decimal.Decimal // 价格
InteriorPrice decimal.Decimal // 内部价格
ExteriorPrice decimal.Decimal // 外部价格
LastPrice decimal.Decimal // 上次价格
DownPayment decimal.Decimal // 首付
Mileage decimal.Decimal // 里程
Transfer uint // 过户次数
Color string // 车身颜色
InteriorColor string // 内饰颜色
TheUpper uint // 上架 1=未上架 2=已上架 3=下架审核中
PriceAdjustAmount decimal.Decimal // 最近一次调价幅度
AdjustPriceHistories []CarAdjustPriceHistory `gorm:"foreignKey:CarId"`
CreatedAt time.Time
UpdatedAt time.Time
//ConsignmentCar *OrderConsignmentCar `gorm:"foreignKey:OrderCarId"`
//DealerConsignmentCar *OrderDealerConsignmentCar `gorm:"foreignKey:OrderCarId"`
}