Files
2021-12-03 14:18:06 +08:00

156 lines
4.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package model
import (
"SciencesServer/config"
"SciencesServer/utils"
"strings"
)
type Gender struct {
Gender GenderKind `gorm:"column:gender;type:tinyint(1);default:1;comment:性别12" json:"gender"` // 性别12
}
type GenderKind int
const (
// GenderKindForMale 男性
GenderKindForMale GenderKind = iota + 1
// GenderKindForFemale 女性
GenderKindForFemale
)
func (m *Gender) GenderTitle() string {
if m.Gender == GenderKindForMale {
return "男"
} else if m.Gender == GenderKindForFemale {
return "女"
}
return ""
}
// Image 单一图片信息
type Image struct {
Image string `gorm:"column:image;type:varchar(255);default:'';comment:图片" json:"image"`
}
func (m *Image) Analysis(domain string) string {
return domain + m.Image
}
// Images 多个图片信息
type Images struct {
Images string `gorm:"column:images;type:text;default:'';comment:图片" json:"images"`
}
// AnalysisSlice Slice解析
func (m *Images) AnalysisSlice(domain string) []string {
images := make([]string, 0)
utils.FromJSON(m.Images, &images)
for k, v := range images {
images[k] = domain + v
}
return images
}
type Local struct {
Local string `gorm:"column:local;type:varchar(8);default:'';comment:数据位置来源" json:"-"`
}
// AccountStatus 账号状态
type AccountStatus struct {
Status AccountStatusKind `gorm:"column:status;type:tinyint(1);default:1;comment:状态(1启用2禁用)" json:"-"`
}
// AccountStatusKind 状态
type AccountStatusKind int
const (
// AccountStatusForEnable 启用
AccountStatusForEnable AccountStatusKind = iota + 1
// AccountStatusForDisable 禁用
AccountStatusForDisable
)
// Shelf 上下架状态
type Shelf struct {
ShelfStatus ShelfStatusKind `gorm:"column:shelf_status;type:tinyint(1);default:0;comment:上下架状态1上架2下架" json:"shelf_status"`
}
type ShelfStatusKind int
const (
// ShelfStatusForUp 上架
ShelfStatusForUp ShelfStatusKind = iota
// ShelfStatusForDown 下架
ShelfStatusForDown
)
// Examine 审核状态
type Examine struct {
ExamineStatus ExamineStatusKind `gorm:"column:examine_status;type:tinyint(1);default:0;comment:审核状态0审核中1审核通过2审核拒绝" json:"examine_status"`
ExamineRemark string `gorm:"column:examine_remark;type:varchar(255);default:'';comment:审核备注" json:"examine_remark"`
}
// ExamineStatusKind 审核状态
type ExamineStatusKind int
const (
// ExamineStatusForOngoing 审核中
ExamineStatusForOngoing ExamineStatusKind = iota
// ExamineStatusForAgree 审核通过
ExamineStatusForAgree
// ExamineStatusForRefuse 审核拒绝
ExamineStatusForRefuse
)
// InvalidStatus 失效状态
type InvalidStatus struct {
InvalidStatus ExamineStatusKind `gorm:"column:invalid_status;type:tinyint(1);default:0;comment:失效状态0未失效1已失效" json:"invalid_status"`
}
// InvalidStatusKind 失效状态
type InvalidStatusKind int
const (
// InvalidStatusForNot 未失效
InvalidStatusForNot InvalidStatusKind = iota
// InvalidStatusForYes 已失效
InvalidStatusForYes
)
type Area struct {
Province string `gorm:"column:province;type:varchar(8);default:'';comment:所在省" json:"province"`
City string `gorm:"column:city;type:varchar(8);default:'';comment:所在市" json:"city"`
District string `gorm:"column:district;type:varchar(8);default:'';comment:所在区/县" json:"district"`
Address string `gorm:"column:address;type:varchar(255);default:'';comment:详细地址" json:"address"`
}
func (m *Area) FormatBasic() string {
address := make([]string, 0)
address = append(address, config.SettingAreaInfo[config.DefaultChinaAreaCode][m.Province])
if m.City != "" {
address = append(address, config.SettingAreaInfo[m.Province][m.City])
}
if m.District != "" {
address = append(address, config.SettingAreaInfo[m.City][m.District])
}
return strings.Join(address, "-")
}
func (m *Area) FormatDetail() string {
return m.FormatBasic() + "" + m.Address
}
// Position 坐标信息
type Position struct {
Longitude float64 `json:"longitude"` // 经度
Latitude float64 `json:"latitude"` // 纬度
}
// Format 格式化
func (m *Position) Format() string {
return utils.AnyToJSON(m)
}