132 lines
5.4 KiB
Go
132 lines
5.4 KiB
Go
package dao
|
|
|
|
import (
|
|
"database/sql/driver"
|
|
"encoding/json"
|
|
"fmt"
|
|
|
|
"lone-services/pkg/utils"
|
|
)
|
|
|
|
const (
|
|
SaleTypeStaff uint8 = 1 // 销售人员
|
|
SaleTypeAgentCorp uint8 = 2 // 销售商(法人)
|
|
SaleTypeAgentPerson uint8 = 3 // 销售商(个人)
|
|
|
|
SaleStatusPending uint8 = 9 // 待处理
|
|
SaleStatusApproved uint8 = 1 // 已通过
|
|
SaleStatusRejected uint8 = 2 // 未通过
|
|
SaleStatusDisabled uint8 = 3 // 禁用
|
|
)
|
|
|
|
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"`
|
|
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"`
|
|
CityId int64 `gorm:"column:city_id" json:"city_id"`
|
|
DistrictId int64 `gorm:"column:district_id" json:"district_id"`
|
|
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 string `gorm:"column:birth_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"`
|
|
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"`
|
|
CityId int64 `gorm:"column:city_id" json:"city_id"`
|
|
DistrictId int64 `gorm:"column:district_id" json:"district_id"`
|
|
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 string `gorm:"column:birth_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"`
|
|
}
|
|
|
|
type SaleStatusUpdate struct {
|
|
Id int64 `gorm:"column:id;primaryKey" json:"id"`
|
|
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"`
|
|
}
|