order.go 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package model
  2. import (
  3. "database/sql/driver"
  4. "encoding/json"
  5. model2 "gas-cylinder-api/common/model"
  6. )
  7. var (
  8. OrderStateOrder = 1 // 已下单
  9. OrderStateDelivery = 2 // 已派单
  10. OrderStateArrive = 3 // 已送达
  11. OrderStateCancel = 4 // 已取消
  12. OrderStateInDelivery = 5 // 配送中
  13. OrderStateInDeliveryInspected = 6 // 配送中-已检查
  14. OrderStateMap = map[int]string{
  15. OrderStateOrder: "已下单",
  16. OrderStateDelivery: "已派单",
  17. OrderStateArrive: "已送达",
  18. OrderStateCancel: "已取消",
  19. OrderStateInDelivery: "配送中",
  20. OrderStateInDeliveryInspected: "配送中(已检查)",
  21. }
  22. )
  23. // 省平台运输企业
  24. type OrderInnerCode struct {
  25. InnerCode string `json:"innerCode" gorm:"size:48;"` // 单位内编码
  26. State int `json:"state" gorm:"size:10;" ` // 状态 1-正常 2-已取消
  27. }
  28. type OrderInnerCodeList []OrderInnerCode
  29. // 商品管理
  30. type Order struct {
  31. model2.Model
  32. OrderId string `json:"orderId" gorm:"size:48"` // 订单id
  33. CustomerId string `json:"customerId" gorm:"size:48"`
  34. Address string `json:"address" gorm:"size:128"` // 客户地址
  35. Phone string `json:"phone" gorm:"size:128"` // 客户电话
  36. StoreId int `json:"storeId"` // 配送门店ID
  37. UserId int `json:"userId"` // 配送人员ID
  38. GoodsId int `json:"goodsId"` // 商品ID
  39. SpecId int `json:"specId"` // 规格ID
  40. Quantity int `json:"quantity" gorm:"size:12"` // 数量
  41. Source int `json:"source" gorm:"size:12"` // 来源 1-坐席下单 2-小程序
  42. State int `json:"state" gorm:"size:12"` // 状态 1-已下单 2-已派单-未配送 3-已送达 4-已取消 5-配送中 6-配送中-已检查
  43. Remark string `json:"remark" gorm:"size:1024"` // 备注
  44. OrderTime model2.Time `json:"orderTime" gorm:"size:128"` // 下单时间
  45. DeliveryTime model2.Time `json:"deliveryTime" gorm:"size:128"` // 配送时间
  46. ArriveTime model2.Time `json:"arriveTime" gorm:"size:128"` // 送达时间
  47. CancelTime model2.Time `json:"cancelTime" gorm:"size:128"` // 取消时间
  48. OrderInnerCodeList OrderInnerCodeList `json:"orderInnerCodeList" gorm:"type:json"`
  49. Customer Customer `json:"customer" gorm:"->"`
  50. Store SysDeptOmit `json:"store" gorm:"->"`
  51. User SysUserOmit `json:"user" gorm:"->"`
  52. Goods Goods `json:"goods" gorm:"->"`
  53. Spec GasCylinderSpec `json:"spec" gorm:"->"`
  54. Dept SysDeptOmit `json:"dept" gorm:"->"`
  55. model2.ControlBy
  56. model2.ModelTime
  57. model2.DeptBy
  58. }
  59. func (Order) TableName() string {
  60. return "order"
  61. }
  62. func (e OrderInnerCodeList) Value() (driver.Value, error) {
  63. d, err := json.Marshal(e)
  64. return string(d), err
  65. }
  66. func (e *OrderInnerCodeList) Scan(src interface{}) error {
  67. return json.Unmarshal(src.([]byte), e)
  68. }