From 17477a846b36a7b1141dc6c357007a11a512a83e Mon Sep 17 00:00:00 2001 From: Havoc412 <2993167370@qq.com> Date: Mon, 21 Oct 2024 16:31:53 +0800 Subject: [PATCH] detail #2 --- app/model/encounter.go | 6 ++--- app/model/encounter_result.go | 6 +++++ app/model/users.go | 24 ++++++++++---------- app/service/encounter/curd/encounter_curd.go | 9 +++++--- 4 files changed, 27 insertions(+), 18 deletions(-) diff --git a/app/model/encounter.go b/app/model/encounter.go index 5784575..502957d 100644 --- a/app/model/encounter.go +++ b/app/model/encounter.go @@ -17,9 +17,9 @@ func CreateEncounterFactory(sqlType string) *Encounter { type Encounter struct { // Encounter 或者称为 post,指的就是 Human 单次的记录。 BaseModel // TAG 外键关联 - UsersModelId int64 `gorm:"column:user_id" json:"user_id"` - UsersModel UsersModel - AnimalsId string `gorm:"size:20" json:"animals_id"` // TODO 关联对象存在上限 + UsersModelId int64 `gorm:"column:user_id" json:"user_id"` + UsersModel *UsersModel `json:"users_model,omitempty"` // INFO 由于 Detail 返回空子段有些麻烦,先尝试采用指针。 + AnimalsId string `gorm:"size:20" json:"animals_id"` // TODO 关联对象存在上限 Title string `gorm:"size:20;column:title" json:"title"` Content string `json:"content"` diff --git a/app/model/encounter_result.go b/app/model/encounter_result.go index 583b757..2e87665 100644 --- a/app/model/encounter_result.go +++ b/app/model/encounter_result.go @@ -16,3 +16,9 @@ type EncounterList struct { UserName string `form:"user_name" json:"userName"` UserAvatar string `form:"user_avatar" json:"userAvatar"` } + +type EncounterDetail struct { + Encounter Encounter + UsersModel UsersModel `json:"user"` + Animals []Animal `json:"animals"` +} diff --git a/app/model/users.go b/app/model/users.go index 48605df..16a7c12 100644 --- a/app/model/users.go +++ b/app/model/users.go @@ -24,21 +24,21 @@ func CreateUserFactory(sqlType string) *UsersModel { type UsersModel struct { BaseModel - UserName string `gorm:"column:user_name;size:20" json:"user_name"` - Pass string `json:"-"` // INFO 暂时用不到,但先保留。 - Phone string `json:"phone"` - RealName string `gorm:"column:real_name" json:"real_name"` + UserName string `gorm:"column:user_name;size:20" json:"user_name,omitempty"` + Pass string `json:"pass,omitempty"` // INFO 暂时用不到,但先保留。 + Phone string `json:"phone,omitempty"` + RealName string `gorm:"column:real_name" json:"real_name,omitempty"` // TAG 状态管理 - Status uint8 `json:"status"` // QUESTION - Token string `json:"token"` - LoginTimes uint64 `json:"login_times"` - LastLoginIp string `gorm:"column:last_login_ip" json:"last_login_ip"` + Status uint8 `json:"status,omitempty"` // QUESTION + Token string `json:"token,omitempty"` + LoginTimes uint64 `json:"login_times,omitempty"` + LastLoginIp string `gorm:"column:last_login_ip" json:"last_login_ip,omitempty"` // TAG MySELF - UserAvatar string `gorm:"column:user_avatar;size:255" json:"user_avatar"` // TODO 暂时存储 url,之后考虑需要把文件上传到 Nginx - Permission uint8 `json:"permission" gorm:"default:9"` + UserAvatar string `gorm:"column:user_avatar;size:255" json:"user_avatar,omitempty"` // TODO 暂时存储 url,之后考虑需要把文件上传到 Nginx + Permission uint8 `json:"permission,omitempty" gorm:"default:9"` // TAG 微信登录相关 - OpenId string `gorm:"column:open_id;size:35;index" json:"open_id"` - SessionKey string `gorm:"column:session_key;size:35" json:"session_key"` + OpenId string `gorm:"column:open_id;size:35;index" json:"open_id,omitempty"` + SessionKey string `gorm:"column:session_key;size:35" json:"session_key,omitempty"` } // 表名 diff --git a/app/service/encounter/curd/encounter_curd.go b/app/service/encounter/curd/encounter_curd.go index 2a3a2b7..9acb056 100644 --- a/app/service/encounter/curd/encounter_curd.go +++ b/app/service/encounter/curd/encounter_curd.go @@ -21,7 +21,7 @@ func (e *EncounterCurd) List(num, skip, user_id int) []model.EncounterList { return model.CreateEncounterFactory("").Show(num, skip, user_id) } -func (e *EncounterCurd) Detail(id string) *model.Encounter { +func (e *EncounterCurd) Detail(id string) *model.EncounterDetail { // 0. check id idInt, err := strconv.Atoi(id) if err != nil { @@ -47,6 +47,9 @@ func (e *EncounterCurd) Detail(id string) *model.Encounter { _ = animals // 4. 合并 - - return nil + return &model.EncounterDetail{ + Encounter: *encounter, + UsersModel: *user, + Animals: animals, + } }