go-common/app/admin/main/member/model/official.go

174 lines
4.9 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
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)
}