customer.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package model
  2. import (
  3. model2 "gas-cylinder-api/common/model"
  4. "golang.org/x/crypto/bcrypt"
  5. "gorm.io/gorm"
  6. )
  7. type ProvCustomer struct {
  8. Id string `json:"id" gorm:"size:48"` // 主键ID
  9. PrincipalName string `json:"principalName" gorm:"size:128;"` // 负责人名字
  10. PrincipalPhone string `json:"principalPhone" gorm:"size:32;"` // 负责人电话
  11. ShopName string `json:"shopName" gorm:"size:128;"` // 商店名字
  12. Address string `json:"address" gorm:"size:255;"` // 地址
  13. AddressImg string `json:"addressImg" gorm:"size:255;"` // 现场图片
  14. Lng float64 `json:"lng" gorm:"size:9;"` // 经度
  15. Lat float64 `json:"lat" gorm:"size:9;"` // 纬度
  16. Type int `json:"type" gorm:"size:4;"` // 类型 0-商户 1-私人
  17. City string `json:"city" gorm:"size:6;"` // 所在地市
  18. Area string `json:"area" gorm:"size:6;"` // 所属区/县
  19. Remark string `json:"remark" gorm:"size:255;"` // 备注描述
  20. StoreCode string `json:"storeCode" gorm:"size:48;"` // 门店登记编号
  21. }
  22. type Customer struct {
  23. ProvCustomer
  24. IsSyncProv bool `json:"isSyncProv"` // 是否同步到省平台
  25. Openid string `json:"openid"` // 微信id
  26. State int `json:"state" gorm:"size:6;default:-1"` // 0-待整改 1-整改中 2-已整改 合格
  27. Name string `json:"name" gorm:"size:128;"`
  28. Password string `json:"-" gorm:"size:128;comment:密码"`
  29. model2.ControlBy
  30. model2.ModelTime
  31. model2.DeptBy
  32. }
  33. func (Customer) TableName() string {
  34. return "customer"
  35. }
  36. type CustomerOmit struct {
  37. Id string `json:"id,omitempty"` // 主键ID
  38. Name string `json:"name,omitempty"` // 负责人名字
  39. Openid string `json:"openid,omitempty"` // 微信id
  40. IsSyncProv bool `json:"isSyncProv,omitempty"` // 是否同步到省平台
  41. }
  42. func (CustomerOmit) TableName() string {
  43. return "customer"
  44. }
  45. func (e *Customer) BeforeCreate(_ *gorm.DB) error {
  46. return e.Encrypt()
  47. }
  48. func (e *Customer) BeforeUpdate(_ *gorm.DB) error {
  49. var err error
  50. if e.Password != "" {
  51. err = e.Encrypt()
  52. }
  53. return err
  54. }
  55. // 加密
  56. func (e *Customer) Encrypt() (err error) {
  57. if e.Password == "" {
  58. return
  59. }
  60. var hash []byte
  61. if hash, err = bcrypt.GenerateFromPassword([]byte(e.Password), bcrypt.DefaultCost); err != nil {
  62. return
  63. } else {
  64. e.Password = string(hash)
  65. return
  66. }
  67. }