35 lines
1.0 KiB
Go
35 lines
1.0 KiB
Go
package model
|
|
|
|
import (
|
|
"ArmedPolice/app/common/model"
|
|
"ArmedPolice/serve/orm"
|
|
"fmt"
|
|
)
|
|
|
|
type ManageEquipmentMaterial struct {
|
|
*model.ManageEquipmentMaterial
|
|
}
|
|
type ManageEquipmentMaterialInfo struct {
|
|
ID uint64 `json:"id"`
|
|
ManageMaterialBasic
|
|
}
|
|
|
|
// Materials 器材信息
|
|
func (m *ManageEquipmentMaterial) Materials(equipmentID uint64) ([]*ManageEquipmentMaterialInfo, error) {
|
|
db := orm.GetDB().Table(m.TableName()+" AS e").
|
|
Select("e.id", "m.code", "m.title", "m.unit", "s.name AS manufacturer_name").
|
|
Joins(fmt.Sprintf("LEFT JOIN %s AS m ON e.material_id = m.id", model.NewManageMaterial().TableName())).
|
|
Joins(fmt.Sprintf("LEFT JOIN %s AS s ON m.manufacturer_id = s.id", model.NewManageSupplier().TableName())).
|
|
Where("e.equipment_id = ? AND e.is_deleted = ?", equipmentID, model.DeleteStatusForNot)
|
|
|
|
out := make([]*ManageEquipmentMaterialInfo, 0)
|
|
|
|
err := db.Scan(&out).Error
|
|
|
|
return out, err
|
|
}
|
|
|
|
func NewManageEquipmentMaterial() *ManageEquipmentMaterial {
|
|
return &ManageEquipmentMaterial{model.NewManageEquipmentMaterial()}
|
|
}
|