174 lines
4.9 KiB
Go
174 lines
4.9 KiB
Go
package model
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
xtime "go-common/library/time"
|
|
)
|
|
|
|
// official role const.
|
|
const (
|
|
OfficialRoleUnauth = iota
|
|
OfficialRoleUp
|
|
OfficialRoleIdentify
|
|
OfficialRoleBusiness
|
|
OfficialRoleGov
|
|
OfficialRoleMedia
|
|
OfficialRoleOther
|
|
)
|
|
|
|
// OfficialRoleName official role name.
|
|
func OfficialRoleName(role int8) string {
|
|
switch role {
|
|
case OfficialRoleUnauth:
|
|
return "未认证"
|
|
case OfficialRoleUp:
|
|
return "UP主认证"
|
|
case OfficialRoleIdentify:
|
|
return "身份认证"
|
|
case OfficialRoleBusiness:
|
|
return "企业认证"
|
|
case OfficialRoleGov:
|
|
return "政府认证"
|
|
case OfficialRoleMedia:
|
|
return "媒体认证"
|
|
case OfficialRoleOther:
|
|
return "其他认证"
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// official state const.
|
|
const (
|
|
OfficialStateWait = iota
|
|
OfficialStatePass
|
|
OfficialStateNoPass
|
|
OfficialStateReWait
|
|
)
|
|
|
|
// OfficialStateName official state name.
|
|
func OfficialStateName(state int8) string {
|
|
switch state {
|
|
case OfficialStateWait:
|
|
return "待审核"
|
|
case OfficialStatePass:
|
|
return "审核通过"
|
|
case OfficialStateNoPass:
|
|
return "审核未通过"
|
|
case OfficialStateReWait:
|
|
return "待重新审核"
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// all
|
|
var (
|
|
AllRoles = []int8{
|
|
OfficialRoleUnauth,
|
|
OfficialRoleUp,
|
|
OfficialRoleIdentify,
|
|
OfficialRoleBusiness,
|
|
OfficialRoleGov,
|
|
OfficialRoleMedia,
|
|
OfficialRoleOther,
|
|
}
|
|
AllStates = []int8{
|
|
OfficialStateWait,
|
|
OfficialStatePass,
|
|
OfficialStateNoPass,
|
|
OfficialStateReWait,
|
|
}
|
|
)
|
|
|
|
// Official is.
|
|
type Official struct {
|
|
ID int64 `json:"id" gorm:"column:id"`
|
|
Mid int64 `json:"mid" gorm:"column:mid"`
|
|
Role int8 `json:"role" gorm:"column:role"`
|
|
Title string `json:"title" gorm:"column:title"`
|
|
Desc string `json:"desc" gorm:"column:description"`
|
|
CTime xtime.Time `json:"ctime" gorm:"column:ctime"`
|
|
MTime xtime.Time `json:"mtime" gorm:"column:mtime"`
|
|
|
|
// 后台展示需求,需要查 official doc 对应的昵称
|
|
Name string `json:"name" gorm:"-"`
|
|
}
|
|
|
|
// OfficialDoc is.
|
|
type OfficialDoc struct {
|
|
ID int64 `json:"id" gorm:"column:id"`
|
|
Mid int64 `json:"mid" gorm:"column:mid"`
|
|
Name string `json:"name" gorm:"column:name"`
|
|
State int8 `json:"state" gorm:"column:state"`
|
|
Role int8 `json:"role" gorm:"column:role"`
|
|
Title string `json:"title" gorm:"column:title"`
|
|
Desc string `json:"desc" gorm:"column:description"`
|
|
Uname string `json:"uname" gorm:"column:uname"`
|
|
Extra string `json:"-" gorm:"column:extra"`
|
|
IsInternal bool `json:"is_internal" gorm:"column:is_internal"`
|
|
RejectReason string `json:"reject_reason" gorm:"column:reject_reason"`
|
|
SubmitSource string `json:"submit_source" gorm:"column:submit_source"`
|
|
SubmitTime xtime.Time `json:"submit_time" gorm:"column:submit_time"`
|
|
CTime xtime.Time `json:"ctime" gorm:"column:ctime"`
|
|
MTime xtime.Time `json:"mtime" gorm:"column:mtime"`
|
|
*OfficialExtra `gorm:"-"`
|
|
}
|
|
|
|
// OfficialExtra extra.
|
|
type OfficialExtra struct {
|
|
Realname int8 `json:"realname" gorm:"-"`
|
|
Operator string `json:"operator" gorm:"-"`
|
|
Telephone string `json:"telephone" gorm:"-"`
|
|
Email string `json:"email" gorm:"-"`
|
|
Address string `json:"address" gorm:"-"`
|
|
Company string `json:"company" gorm:"-"`
|
|
CreditCode string `json:"credit_code" gorm:"-"` // 社会信用代码
|
|
Organization string `json:"organization" gorm:"-"` // 政府或组织名称
|
|
OrganizationType string `json:"organization_type" gorm:"-"` // 政府或机构类型
|
|
BusinessLicense string `json:"business_license" gorm:"-"` // 企业营业执照
|
|
BusinessScale string `json:"business_scale" gorm:"-"` // 企业规模
|
|
BusinessLevel string `json:"business_level" gorm:"-"` // 行政级别
|
|
BusinessAuth string `json:"business_auth" gorm:"-"` // 企业授权函
|
|
Supplement string `json:"supplement" gorm:"-"` // 其他补充材料
|
|
Professional string `json:"professional" gorm:"-"` // 专业资质
|
|
Identification string `json:"identification" gorm:"-"` // 身份证明
|
|
OfficalSite string `json:"official_site" gorm:"-"` // 官方站点
|
|
RegisteredCapital string `json:"registered_capital" gorm:"-"` // 注册资本
|
|
}
|
|
|
|
// OfficialDocAddit .
|
|
type OfficialDocAddit struct {
|
|
Mid int64 `json:"mid" gorm:"mid"`
|
|
Property string `json:"property" gorm:"property"`
|
|
Vstring string `json:"vstring" gorm:"vstring"`
|
|
}
|
|
|
|
// ParseExtra parse extra.
|
|
func (oc *OfficialDoc) ParseExtra() {
|
|
oe := &OfficialExtra{}
|
|
if len(oc.Extra) > 0 {
|
|
json.Unmarshal([]byte(oc.Extra), oe)
|
|
}
|
|
oc.OfficialExtra = oe
|
|
}
|
|
|
|
// Validate is.
|
|
func (oc *OfficialDoc) Validate() bool {
|
|
if oc.Mid <= 0 ||
|
|
oc.Name == "" ||
|
|
oc.Role <= 0 ||
|
|
oc.Title == "" {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
// String is
|
|
func (oe *OfficialExtra) String() string {
|
|
bs, _ := json.Marshal(oe)
|
|
if len(bs) == 0 {
|
|
bs = []byte("{}")
|
|
}
|
|
return string(bs)
|
|
}
|