package model import ( model2 "gas-cylinder-api/common/model" "golang.org/x/crypto/bcrypt" "gorm.io/gorm" ) type ProvCustomer struct { Id string `json:"id" gorm:"size:48"` // 主键ID PrincipalName string `json:"principalName" gorm:"size:128;"` // 负责人名字 PrincipalPhone string `json:"principalPhone" gorm:"size:32;"` // 负责人电话 ShopName string `json:"shopName" gorm:"size:128;"` // 商店名字 Address string `json:"address" gorm:"size:255;"` // 地址 AddressImg string `json:"addressImg" gorm:"size:255;"` // 现场图片 Lng float64 `json:"lng" gorm:"size:9;"` // 经度 Lat float64 `json:"lat" gorm:"size:9;"` // 纬度 Type int `json:"type" gorm:"size:4;"` // 类型 0-商户 1-私人 City string `json:"city" gorm:"size:6;"` // 所在地市 Area string `json:"area" gorm:"size:6;"` // 所属区/县 Remark string `json:"remark" gorm:"size:255;"` // 备注描述 StoreCode string `json:"storeCode" gorm:"size:48;"` // 门店登记编号 } type Customer struct { ProvCustomer IsSyncProv bool `json:"isSyncProv"` // 是否同步到省平台 Openid string `json:"openid"` // 微信id State int `json:"state" gorm:"size:6;default:-1"` // 0-待整改 1-整改中 2-已整改 合格 Name string `json:"name" gorm:"size:128;"` Password string `json:"-" gorm:"size:128;comment:密码"` model2.ControlBy model2.ModelTime model2.DeptBy } func (Customer) TableName() string { return "customer" } type CustomerOmit struct { Id string `json:"id,omitempty"` // 主键ID Name string `json:"name,omitempty"` // 负责人名字 Openid string `json:"openid,omitempty"` // 微信id IsSyncProv bool `json:"isSyncProv,omitempty"` // 是否同步到省平台 } func (CustomerOmit) TableName() string { return "customer" } func (e *Customer) BeforeCreate(_ *gorm.DB) error { return e.Encrypt() } func (e *Customer) BeforeUpdate(_ *gorm.DB) error { var err error if e.Password != "" { err = e.Encrypt() } return err } // 加密 func (e *Customer) Encrypt() (err error) { if e.Password == "" { return } var hash []byte if hash, err = bcrypt.GenerateFromPassword([]byte(e.Password), bcrypt.DefaultCost); err != nil { return } else { e.Password = string(hash) return } }