Files
ArmedPolice/app/model/manage_supplier.go
2021-11-16 11:46:44 +08:00

42 lines
1.1 KiB
Go

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()}
}