package dao import ( "database/sql/driver" "encoding/json" "fmt" "lone-services/pkg/utils" ) const ( SaleTypeStaff uint8 = 1 // 销售人员 SaleTypeAgentCorp uint8 = 2 // 销售商(法人) SaleTypeAgentPerson uint8 = 3 // 销售商(个人) SaleStatusEnabled uint8 = 1 // 开启 SaleStatusDisabled uint8 = 2 // 禁用 ) type RegionNames struct { Province string `json:"province"` City string `json:"city"` District string `json:"district"` } func (r RegionNames) Value() (driver.Value, error) { buf, err := json.Marshal(r) if err != nil { return nil, err } return string(buf), nil } func (r *RegionNames) Scan(value interface{}) error { if value == nil { *r = RegionNames{} return nil } var raw []byte switch v := value.(type) { case []byte: raw = v case string: raw = []byte(v) default: return fmt.Errorf("unsupported region type: %T", value) } if len(raw) == 0 { *r = RegionNames{} return nil } return json.Unmarshal(raw, r) } type SaleCreate struct { Id int64 `gorm:"column:id;primaryKey;autoIncrement" json:"id"` UserId int64 `gorm:"column:user_id" json:"user_id"` SaleId int64 `gorm:"column:sale_id" json:"sale_id"` Mobile string `gorm:"column:mobile" json:"mobile"` Name string `gorm:"column:name" json:"name"` IdCardFront string `gorm:"column:id_card_front" json:"id_card_front"` IdCardBack string `gorm:"column:id_card_back" json:"id_card_back"` BusinessLicense string `gorm:"column:business_license" json:"business_license"` Region RegionNames `gorm:"column:region;type:json" json:"region"` ProvinceId int64 `gorm:"column:province_id" json:"province_id"` ProvinceName string `json:"province_name" gorm:"province_name"` CityId int64 `gorm:"column:city_id" json:"city_id"` CityName string `json:"city_name" gorm:"city_name"` DistrictId int64 `gorm:"column:district_id" json:"district_id"` DistrictName string `json:"district_name" gorm:"district_name"` TerritoryId int64 `gorm:"column:territory_id" json:"territory_id"` TerritoryName string `gorm:"column:territory_name" json:"territory_name"` GroupId int64 `gorm:"column:group_id" json:"group_id"` Address string `gorm:"column:address" json:"address"` Status uint8 `gorm:"column:status" json:"status"` Avatar string `gorm:"column:avatar" json:"avatar"` Account string `gorm:"column:account" json:"account"` Type uint8 `gorm:"column:type" json:"type"` Sex uint8 `gorm:"column:sex" json:"sex"` BirthDate utils.CustomTime `gorm:"column:birth_date;type:date" json:"birth_date"` AdminId int64 `gorm:"column:admin_id" json:"admin_id"` AdminName string `gorm:"column:admin_name" json:"admin_name"` } type SaleInfo struct { Id int64 `gorm:"column:id" json:"id"` UserId int64 `gorm:"column:user_id" json:"user_id"` SaleId int64 `gorm:"column:sale_id" json:"sale_id"` Mobile string `gorm:"column:mobile" json:"mobile"` Name string `gorm:"column:name" json:"name"` IdCardFront string `gorm:"column:id_card_front" json:"id_card_front"` IdCardBack string `gorm:"column:id_card_back" json:"id_card_back"` BusinessLicense string `gorm:"column:business_license" json:"business_license"` Region RegionNames `gorm:"column:region;type:json" json:"region"` ProvinceId int64 `gorm:"column:province_id" json:"province_id"` ProvinceName string `json:"province_name" gorm:"province_name"` CityId int64 `gorm:"column:city_id" json:"city_id"` CityName string `json:"city_name" gorm:"city_name"` DistrictId int64 `gorm:"column:district_id" json:"district_id"` DistrictName string `json:"district_name" gorm:"district_name"` TerritoryId int64 `gorm:"column:territory_id" json:"territory_id"` TerritoryName string `gorm:"column:territory_name" json:"territory_name"` GroupId int64 `gorm:"column:group_id" json:"group_id"` Address string `gorm:"column:address" json:"address"` Status uint8 `gorm:"column:status" json:"status"` Avatar string `gorm:"column:avatar" json:"avatar"` Account string `gorm:"column:account" json:"account"` Type uint8 `gorm:"column:type" json:"type"` Sex uint8 `gorm:"column:sex" json:"sex"` BirthDate utils.CustomTime `gorm:"column:birth_date;type:date" json:"birth_date"` Reason string `gorm:"column:reason" json:"reason"` AdminId int64 `gorm:"column:admin_id" json:"admin_id"` AdminName string `gorm:"column:admin_name" json:"admin_name"` CreateTime utils.CustomTime `gorm:"column:create_time" json:"create_time"` UpdateTime utils.CustomTime `gorm:"column:update_time" json:"update_time"` OriginMobile string `gorm:"-" json:"origin_mobile"` Group *SaleGroupNameItem `gorm:"-" json:"group,omitempty"` } type SaleStatusUpdate struct { Id int64 `gorm:"column:id;primaryKey" json:"id"` UserId int64 `gorm:"column:user_id" json:"user_id"` Mobile string `gorm:"column:mobile" json:"mobile"` Name string `gorm:"column:name" json:"name"` Status uint8 `gorm:"column:status" json:"status"` Reason string `gorm:"column:reason" json:"reason"` AdminId int64 `gorm:"column:admin_id" json:"admin_id"` AdminName string `gorm:"column:admin_name" json:"admin_name"` } type SaleNameItem struct { Id int64 `gorm:"column:id" json:"id"` Mobile string `gorm:"column:mobile" json:"mobile"` Name string `gorm:"column:name" json:"name"` } type SaleTypeOption struct { Value uint8 `json:"value"` Label string `json:"label"` } type APiSaleInfo struct { Id int `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"` SaleId int `gorm:"column:sale_id;type:int(11);default:0;comment:父级销售;NOT NULL" json:"sale_id"` Mobile string `gorm:"column:mobile;type:char(60);comment:手机号,也是登录账号;NOT NULL" json:"mobile"` Name string `gorm:"column:name;type:varchar(256);comment:姓名或公司名;NOT NULL" json:"name"` IdCardFront string `gorm:"column:id_card_front" json:"id_card_front"` IdCardBack string `gorm:"column:id_card_back" json:"id_card_back"` BusinessLicense string `gorm:"column:business_license" json:"business_license"` Region RegionNames `gorm:"column:region;type:json" json:"region"` ProvinceId int64 `gorm:"column:province_id" json:"province_id"` ProvinceName string `gorm:"column:province_name;type:varchar(255);comment:身份名;NOT NULL" json:"province_name"` CityId int64 `gorm:"column:city_id" json:"city_id"` CityName string `json:"city_name" gorm:"city_name"` DistrictId int64 `gorm:"column:district_id" json:"district_id"` DistrictName string `json:"district_name" gorm:"district_name"` TerritoryId int64 `gorm:"column:territory_id" json:"territory_id"` TerritoryName string `gorm:"column:territory_name" json:"territory_name"` Address string `gorm:"column:address;type:varchar(255);comment:地址" json:"address"` Account string `gorm:"column:account;type:varchar(255);comment:账户信息" json:"account"` Status uint8 `gorm:"column:status;type:tinyint(1);default:9;comment:9是待处理 1是已通过 2是未通过,3为禁用;NOT NULL" json:"status"` Avatar string `gorm:"column:avatar;type:varchar(255);comment:头像" json:"avatar"` Type uint8 `gorm:"column:type;type:tinyint(1);default:1;comment:类型,默认为1.1为公司销售,2为公司代理,3为个人代理" json:"type"` Sex uint8 `gorm:"column:sex;type:tinyint(1);default:3;comment:性别,1男,2女,3未知" json:"sex"` BirthDate string `gorm:"column:birth_date;type:char(12);comment:生日" json:"birth_date"` Reason string `gorm:"column:reason;type:varchar(255);comment:理由" json:"reason"` }