Files

159 lines
4.4 KiB
Go
Raw Normal View History

2021-09-28 11:47:19 +08:00
package model
import (
2021-12-16 15:35:44 +08:00
config2 "SciencesServer/app/basic/config"
2021-11-24 09:59:29 +08:00
"SciencesServer/config"
2021-09-28 11:47:19 +08:00
"SciencesServer/utils"
2021-11-24 09:59:29 +08:00
"strings"
"time"
2021-09-28 11:47:19 +08:00
)
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 {
2021-12-03 14:18:06 +08:00
Image string `gorm:"column:image;type:varchar(255);default:'';comment:图片" json:"image"`
2021-09-28 11:47:19 +08:00
}
func (m *Image) Analysis(domain string) string {
return domain + m.Image
}
// Images 多个图片信息
type Images struct {
2021-12-03 15:22:23 +08:00
Images string `gorm:"column:images;type:text;comment:图片" json:"images"`
2021-09-28 11:47:19 +08:00
}
// 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
}
2021-10-12 16:53:49 +08:00
type Local struct {
2021-12-03 14:18:06 +08:00
Local string `gorm:"column:local;type:varchar(8);default:'';comment:数据位置来源" json:"-"`
2021-10-12 16:53:49 +08:00
}
2021-09-29 16:25:56 +08:00
// AccountStatus 账号状态
type AccountStatus struct {
Status AccountStatusKind `gorm:"column:status;type:tinyint(1);default:1;comment:状态(1启用2禁用)" json:"-"`
2021-09-28 11:47:19 +08:00
}
2021-09-29 16:25:56 +08:00
// AccountStatusKind 状态
type AccountStatusKind int
const (
// AccountStatusForEnable 启用
AccountStatusForEnable AccountStatusKind = iota + 1
// AccountStatusForDisable 禁用
AccountStatusForDisable
)
2021-12-03 10:08:23 +08:00
// Shelf 上下架状态
type Shelf struct {
ShelfStatus ShelfStatusKind `gorm:"column:shelf_status;type:tinyint(1);default:0;comment:上下架状态1上架2下架" json:"shelf_status"`
2021-10-12 11:40:02 +08:00
}
type ShelfStatusKind int
const (
// ShelfStatusForUp 上架
ShelfStatusForUp ShelfStatusKind = iota
// ShelfStatusForDown 下架
ShelfStatusForDown
)
2021-12-03 10:08:23 +08:00
// Examine 审核状态
type Examine struct {
ExamineStatus ExamineStatusKind `gorm:"column:examine_status;type:tinyint(1);default:0;comment:审核状态0审核中1审核通过2审核拒绝" json:"examine_status"`
2021-12-03 14:18:06 +08:00
ExamineRemark string `gorm:"column:examine_remark;type:varchar(255);default:'';comment:审核备注" json:"examine_remark"`
ExamineAt time.Time `gorm:"column:examine_at;type:datetime;default:null;comment:审核时间" json:"examine_at"`
2021-10-09 17:32:23 +08:00
}
// ExamineStatusKind 审核状态
type ExamineStatusKind int
const (
// ExamineStatusForOngoing 审核中
ExamineStatusForOngoing ExamineStatusKind = iota
// ExamineStatusForAgree 审核通过
ExamineStatusForAgree
// ExamineStatusForRefuse 审核拒绝
ExamineStatusForRefuse
)
2021-12-01 17:14:12 +08:00
// InvalidStatus 失效状态
type InvalidStatus struct {
2021-12-03 10:08:23 +08:00
InvalidStatus ExamineStatusKind `gorm:"column:invalid_status;type:tinyint(1);default:0;comment:失效状态0未失效1已失效" json:"invalid_status"`
2021-12-01 17:14:12 +08:00
}
// InvalidStatusKind 失效状态
type InvalidStatusKind int
const (
// InvalidStatusForYes 已失效
2021-12-06 14:55:41 +08:00
InvalidStatusForYes InvalidStatusKind = iota - 1
// InvalidStatusForNot 未失效
InvalidStatusForNot
2021-12-01 17:14:12 +08:00
)
2021-09-30 16:20:00 +08:00
type Area struct {
2021-12-03 14:18:06 +08:00
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"`
2021-09-28 11:47:19 +08:00
}
2021-11-24 09:59:29 +08:00
func (m *Area) FormatBasic() string {
address := make([]string, 0)
2021-12-16 15:35:44 +08:00
address = append(address, config2.MemoryForAreaInfo[config.DefaultChinaAreaCode][m.Province])
2021-11-24 09:59:29 +08:00
if m.City != "" {
2021-12-16 15:35:44 +08:00
address = append(address, config2.MemoryForAreaInfo[m.Province][m.City])
2021-11-24 09:59:29 +08:00
}
if m.District != "" {
2021-12-16 15:35:44 +08:00
address = append(address, config2.MemoryForAreaInfo[m.City][m.District])
2021-11-24 09:59:29 +08:00
}
return strings.Join(address, "-")
}
func (m *Area) FormatDetail() string {
return m.FormatBasic() + "" + m.Address
}
2021-09-29 16:25:56 +08:00
// Position 坐标信息
type Position struct {
Longitude float64 `json:"longitude"` // 经度
Latitude float64 `json:"latitude"` // 纬度
2021-09-28 11:47:19 +08:00
}
// Format 格式化
2021-09-29 16:25:56 +08:00
func (m *Position) Format() string {
2021-09-28 11:47:19 +08:00
return utils.AnyToJSON(m)
}