105 lines
2.5 KiB
Go
105 lines
2.5 KiB
Go
package model
|
||
|
||
import (
|
||
"ArmedPolice/config"
|
||
"ArmedPolice/utils"
|
||
)
|
||
|
||
type Gender struct {
|
||
Gender GenderKind `gorm:"column:gender;type:tinyint(1);default:1;comment:性别(1:男,2:女)" json:"gender"` // 性别(1:男,2:女)
|
||
}
|
||
|
||
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:null;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:null;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 Area struct {
|
||
Province string `gorm:"column:province;type:varchar(8);default:null;comment:所在省" json:"province"`
|
||
City string `gorm:"column:city;type:varchar(8);default:null;comment:所在市" json:"city"`
|
||
District string `gorm:"column:district;type:varchar(8);default:null;comment:所在区/县" json:"district"`
|
||
Address string `gorm:"column:address;type:varchar(255);default:null;comment:详细地址" json:"address"`
|
||
}
|
||
|
||
type AreaInfo struct {
|
||
Province string `json:"province"`
|
||
City string `json:"city"`
|
||
District string `json:"district"`
|
||
Address string `json:"address"`
|
||
}
|
||
|
||
func (m *Area) Format() *AreaInfo {
|
||
out := &AreaInfo{Address: m.Address}
|
||
|
||
if m.Province != "" {
|
||
out.Province = config.SettingAreaInfo[config.DefaultChinaAreaCode][m.Province]
|
||
}
|
||
if m.City != "" {
|
||
out.City = config.SettingAreaInfo[m.Province][m.City]
|
||
}
|
||
if m.District != "" {
|
||
out.District = config.SettingAreaInfo[m.City][m.District]
|
||
}
|
||
return out
|
||
}
|
||
|
||
// Position 坐标信息
|
||
type Position struct {
|
||
Longitude float64 `json:"longitude"` // 经度
|
||
Latitude float64 `json:"latitude"` // 纬度
|
||
}
|
||
|
||
// Format 格式化
|
||
func (m *Position) Format() string {
|
||
return utils.AnyToJSON(m)
|
||
}
|
||
|
||
// Tags 标签
|
||
type Tags struct {
|
||
Key string `json:"key"`
|
||
Value string `json:"value"`
|
||
}
|
||
|
||
// Format 格式化
|
||
func (m *Tags) Format() string {
|
||
return utils.AnyToJSON(m)
|
||
}
|