2021-12-02 18:05:53 +08:00
|
|
|
package model
|
|
|
|
|
2021-12-06 14:55:41 +08:00
|
|
|
import (
|
|
|
|
"SciencesServer/app/common/model"
|
|
|
|
"SciencesServer/serve/orm"
|
|
|
|
"fmt"
|
|
|
|
)
|
2021-12-02 18:05:53 +08:00
|
|
|
|
|
|
|
type UserExpert struct {
|
|
|
|
*model.UserExpert
|
|
|
|
}
|
|
|
|
|
2021-12-09 16:17:23 +08:00
|
|
|
type (
|
|
|
|
// UserExpertInfo 专家信息
|
|
|
|
UserExpertInfo struct {
|
|
|
|
UserExpertID uint64 `json:"-"`
|
|
|
|
*model.ManageExpert
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
func (m *UserExpert) Settled(uid uint64) (*UserSettledInfo, error) {
|
2021-12-06 14:55:41 +08:00
|
|
|
out := new(UserSettledInfo)
|
|
|
|
|
|
|
|
err := orm.GetDB().Table(m.TableName()+" AS u").
|
2021-12-07 16:10:12 +08:00
|
|
|
Select("u.id", "c.examine_status", "c.examine_remark").
|
2021-12-06 14:55:41 +08:00
|
|
|
Joins(fmt.Sprintf("LEFT JOIN %s AS c ON u.expert_id = c.id", model.NewManageExpert().TableName())).
|
|
|
|
Where("u.uid = ?", uid).
|
2022-01-28 16:59:15 +08:00
|
|
|
Where("u.is_deleted = ?", model.DeleteStatusForNot).
|
|
|
|
Order("u.id " + model.OrderModeToDesc).Limit(1).
|
2021-12-06 14:55:41 +08:00
|
|
|
Scan(out).Error
|
|
|
|
return out, err
|
|
|
|
}
|
|
|
|
|
2021-12-09 16:17:23 +08:00
|
|
|
// Expert 专家信息
|
|
|
|
func (m *UserExpert) Expert(uid uint64) (*UserExpertInfo, error) {
|
|
|
|
out := new(UserExpertInfo)
|
|
|
|
|
|
|
|
err := orm.GetDB().Table(m.TableName()+" AS u").
|
|
|
|
Select("u.id AS user_expert_id", "c.*").
|
|
|
|
Joins(fmt.Sprintf("LEFT JOIN %s AS c ON u.expert_id = c.id", model.NewManageExpert().TableName())).
|
|
|
|
Where("u.uid = ?", uid).
|
2022-02-10 18:42:52 +08:00
|
|
|
Order("u.id "+model.OrderModeToDesc).
|
2021-12-09 16:17:23 +08:00
|
|
|
Where("u.is_deleted = ? AND u.invalid_status = ?", model.DeleteStatusForNot, model.InvalidStatusForNot).
|
|
|
|
Scan(out).Error
|
|
|
|
return out, err
|
|
|
|
}
|
|
|
|
|
2022-02-10 18:42:52 +08:00
|
|
|
// ExpertBasic 专家信息
|
|
|
|
func (m *UserExpert) ExpertBasic(uid uint64) (*UserExpertInfo, error) {
|
|
|
|
out := new(UserExpertInfo)
|
|
|
|
|
|
|
|
err := orm.GetDB().Table(m.TableName()+" AS u").
|
|
|
|
Select("u.id AS user_expert_id", "c.name", "c.mobile").
|
|
|
|
Joins(fmt.Sprintf("LEFT JOIN %s AS c ON u.expert_id = c.id", model.NewManageExpert().TableName())).
|
|
|
|
Where("u.uid = ?", uid).
|
|
|
|
Where("u.is_deleted = ? AND u.invalid_status = ?", model.DeleteStatusForNot, model.InvalidStatusForNot).
|
|
|
|
Order("u.id " + model.OrderModeToDesc).
|
|
|
|
Scan(out).Error
|
|
|
|
return out, err
|
|
|
|
}
|
|
|
|
|
2021-12-02 18:05:53 +08:00
|
|
|
func NewUserExpert() *UserExpert {
|
|
|
|
return &UserExpert{model.NewUserExpert()}
|
|
|
|
}
|