Files
2022-02-23 15:18:55 +08:00

191 lines
7.4 KiB
Go

package config
import (
"SciencesServer/config"
"SciencesServer/utils"
"strings"
)
// Area 区域
type Area struct {
Province string `json:"province" form:"province"`
City string `json:"city" form:"city"`
District string `json:"district" form:"district"`
Address string `json:"address" form:"address"`
}
type (
// IdentityForCompany 公司附加信息
IdentityForCompany struct {
Kind int `json:"kind" form:"kind" binding:"required"`
Product string `json:"product" form:"product" binding:"required"` // 企业产品
Url string `json:"url" form:"url"` // 企业网站
License string `json:"license" form:"license" binding:"required"` // 营业执照
Directions []string `json:"directions" form:"directions"` // 产品方向
}
// IdentityForExpert 专家附加信息
IdentityForExpert struct {
ResearchID string `json:"research_id" form:"research_id" binding:"required"` // 科研机构ID
LaboratoryID string `json:"laboratory_id" form:"laboratory_id"` // 实验室ID
Education string `json:"education" form:"education"` // 学历
School string `json:"school" form:"school"` // 毕业院校
Major string `json:"major" form:"major"` // 专业
Job string `json:"job" form:"job"` // 职务
Title string `json:"title" form:"title"` // 职称
WorkAt string `json:"work_at" form:"work_at"` // 从业时间
Gender int `json:"gender" form:"gender"` // 性别
Researchs []string `json:"researchs" form:"researchs"` // 研究方向
}
// IdentityForResearch 研究机构
IdentityForResearch struct {
Longitude float64 `json:"longitude" form:"longitude"` // 经度
Latitude float64 `json:"latitude" form:"latitude"` // 纬度
License string `json:"license" form:"license" binding:"required"` // 营业执照
Researchs []string `json:"researchs" form:"researchs"` // 研究方向
}
// IdentityForLaboratory 实验室
IdentityForLaboratory struct {
ResearchID string `json:"research_id" form:"research_id" binding:"required"` // 科研机构ID
Url string `json:"url" form:"url"` // 实验室网站
Longitude float64 `json:"longitude" form:"longitude"` // 经度
Latitude float64 `json:"latitude" form:"latitude"` // 纬度
Researchs []string `json:"researchs" form:"researchs"` // 研究方向
}
// IdentityForAgent 经纪人
IdentityForAgent struct {
ResearchID string `json:"research_id" form:"research_id"` // 科研机构ID
IDCard string `json:"id_card" form:"id_card" binding:"required"` // 身份证号
WorkExperience string `json:"work_experience" form:"work_experience" binding:"required"` // 工作经历
WorkPlace string `json:"work_place" form:"work_place" binding:"required"` // 工作地点
// ManageAgentIDImage 身份证信息
IDImage struct {
Front string `json:"front" form:"front" binding:"required"`
Behind string `json:"behind" form:"behind" binding:"required"`
Hold string `json:"hold" form:"hold" binding:"required"`
} `json:"id_image" form:"id_image" binding:"required"`
CredentialImages []string `json:"credential_images" form:"credential_images"` // 资格证书
Longitude float64 `json:"longitude" form:"longitude"` // 经度
Latitude float64 `json:"latitude" form:"latitude"` // 纬度
}
)
func (this *IdentityForCompany) FilterLicense() string {
return strings.Replace(this.License, config.SystemConfig[config.SysImageDomain], "", -1)
}
func (this *IdentityForExpert) ConvertResearch() uint64 {
if this.ResearchID == "" {
return 0
}
return uint64(utils.HASHIDDecode(this.ResearchID))
}
func (this *IdentityForExpert) ConvertLaboratory() uint64 {
if this.LaboratoryID == "" {
return 0
}
return uint64(utils.HASHIDDecode(this.LaboratoryID))
}
func (this *IdentityForResearch) FilterLicense() string {
return strings.Replace(this.License, config.SystemConfig[config.SysImageDomain], "", -1)
}
func (this *IdentityForLaboratory) ConvertResearch() uint64 {
if this.ResearchID == "" {
return 0
}
return uint64(utils.HASHIDDecode(this.ResearchID))
}
func (this *IdentityForAgent) ConvertResearch() uint64 {
if this.ResearchID == "" {
return 0
}
return uint64(utils.HASHIDDecode(this.ResearchID))
}
// TechnologyMaturity 科技成熟度
type TechnologyMaturity int
const (
// TechnologyMaturityForDev 正在研发
TechnologyMaturityForDev TechnologyMaturity = iota + 1
// TechnologyMaturityForTest 小试阶段
TechnologyMaturityForTest
// TechnologyMaturityForTestFinish 通过小试
TechnologyMaturityForTestFinish
// TechnologyMaturityForModerateTest 中试阶段
TechnologyMaturityForModerateTest
// TechnologyMaturityForModerateTestFinish 通过中试
TechnologyMaturityForModerateTestFinish
// TechnologyMaturityForProduce 可规模生产
TechnologyMaturityForProduce
)
func GetTechnologyMaturityTitle(key TechnologyMaturity) string {
switch key {
case TechnologyMaturityForDev:
return "正在研发"
case TechnologyMaturityForTest:
return "小试阶段"
case TechnologyMaturityForTestFinish:
return "通过小试"
case TechnologyMaturityForModerateTest:
return "中试阶段"
case TechnologyMaturityForModerateTestFinish:
return "通过中试"
case TechnologyMaturityForProduce:
return "可规模生产"
}
return ""
}
// TechnologyCooperationMode 科技合作模式
type TechnologyCooperationMode int
const (
// TechnologyCooperationModeForJSTransfer 技术转让
TechnologyCooperationModeForJSTransfer TechnologyCooperationMode = iota + 101
// TechnologyCooperationModeForJSPermit 技术许可
TechnologyCooperationModeForJSPermit
// TechnologyCooperationModeForJSShare 技术入股
TechnologyCooperationModeForJSShare
// TechnologyCooperationModeForCooperation 合作开发
TechnologyCooperationModeForCooperation
// TechnologyCooperationModeForFinancing 融资
TechnologyCooperationModeForFinancing
// TechnologyCooperationModeForCompany 公司
TechnologyCooperationModeForCompany
// TechnologyCooperationModeForAgentJoin 代理加盟
TechnologyCooperationModeForAgentJoin
// TechnologyCooperationModeForMarketing 市场推广
TechnologyCooperationModeForMarketing
// TechnologyCooperationModeForOther 其他
TechnologyCooperationModeForOther
)
func GetTechnologyCooperationModeTitle(key TechnologyCooperationMode) string {
switch key {
case TechnologyCooperationModeForJSTransfer:
return "技术转让"
case TechnologyCooperationModeForJSPermit:
return "技术许可"
case TechnologyCooperationModeForJSShare:
return "技术入股"
case TechnologyCooperationModeForCooperation:
return "合作开发"
case TechnologyCooperationModeForFinancing:
return "融资"
case TechnologyCooperationModeForCompany:
return "公司"
case TechnologyCooperationModeForAgentJoin:
return "代理加盟"
case TechnologyCooperationModeForMarketing:
return "市场推广"
case TechnologyCooperationModeForOther:
return "其他"
}
return ""
}