package model import ( "SciencesServer/app/common/model" "SciencesServer/serve/orm" "fmt" ) type UserResearch struct { *model.UserResearch } type ( UserResearchInfo struct { UserResearchID uint64 `json:"-"` *model.ManageResearch } ) func (m *UserResearch) Settled(uid uint64) (*UserSettledInfo, error) { out := new(UserSettledInfo) err := orm.GetDB().Table(m.TableName()+" AS u"). Select("u.id", "c.examine_status", "c.examine_remark"). Joins(fmt.Sprintf("LEFT JOIN %s AS c ON u.research_id = c.id", model.NewManageResearch().TableName())). Where("u.uid = ?", uid). Where("u.is_deleted = ?", model.DeleteStatusForNot). Order("u.id " + model.OrderModeToDesc).Limit(1). Scan(out).Error return out, err } func (m *UserResearch) Research(uid uint64) (*UserResearchInfo, error) { out := new(UserResearchInfo) err := orm.GetDB().Table(m.TableName()+" AS u"). Select("u.id AS user_research_id", "c.*"). Joins(fmt.Sprintf("LEFT JOIN %s AS c ON u.research_id = c.id", model.NewManageResearch().TableName())). Where("u.uid = ?", uid). Where("u.is_deleted = ? AND u.invalid_status = ?", model.DeleteStatusForNot, model.InvalidStatusForNot). Scan(out).Error return out, err } func NewUserResearch() *UserResearch { return &UserResearch{model.NewUserResearch()} }