package model import ( "ArmedPolice/app/common/model" "ArmedPolice/serve/orm" "fmt" ) type ManageSupplier struct { *model.ManageSupplier } type ManageSupplierEvaluateInfo struct { Name string `json:"name"` Praise int `json:"praise"` Middle int `json:"middle"` Negative int `json:"negative"` } // Evaluate 评分统计 // Deprecated: Test func (m *ManageSupplier) Evaluate(kind model.ManageSupplierKind, limit int) ([]*ManageSupplierEvaluateInfo, error) { db := orm.GetDB().Table(m.TableName()+" AS s"). Select("s.name", "e.praise", "e.middle", "e.negative"). Joins(fmt.Sprintf("LEFT JOIN %s AS e ON s.id = e.supplier_id AND e.is_deleted = %d", model.NewManageSupplierEvaluate().TableName(), model.DeleteStatusForNot)). Where("s.is_deleted = ?", model.DeleteStatusForNot). Where("s.kind = ?", kind). Where("e.id > ?", 0) out := make([]*ManageSupplierEvaluateInfo, 0) err := db.Order("e.praise " + model.OrderModeToDesc).Order("e.negative " + model.OrderModeToAsc). Limit(limit).Scan(&out).Error return out, err } func NewManageSupplier() *ManageSupplier { return &ManageSupplier{model.NewManageSupplier()} }