87 lines
2.2 KiB
Go
87 lines
2.2 KiB
Go
package manage
|
|
|
|
import (
|
|
model2 "ArmedPolice/app/common/model"
|
|
"ArmedPolice/app/controller/basic"
|
|
"ArmedPolice/app/model"
|
|
"ArmedPolice/app/service"
|
|
"ArmedPolice/serve/orm"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type EquipmentMaterial struct{ *service.Session }
|
|
|
|
type EquipmentMaterialHandle func(session *service.Session) *EquipmentMaterial
|
|
|
|
type (
|
|
// EquipmentMaterialInfo 装备器材信息
|
|
EquipmentMaterialInfo struct {
|
|
*model.ManageMaterialBasic
|
|
basic.CommonIDString
|
|
}
|
|
EquipmentMaterialBindParams struct {
|
|
EquipmentID uint64
|
|
MaterialIDs []uint64
|
|
}
|
|
)
|
|
|
|
// List 列表信息
|
|
func (c *EquipmentMaterial) List(equipmentID uint64) ([]*EquipmentMaterialInfo, error) {
|
|
mManageEquipmentMaterial := model.NewManageEquipmentMaterial()
|
|
|
|
out, err := mManageEquipmentMaterial.Materials(equipmentID)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
list := make([]*EquipmentMaterialInfo, 0)
|
|
|
|
for _, v := range out {
|
|
mManageEquipmentMaterial.ID = v.ID
|
|
|
|
list = append(list, &EquipmentMaterialInfo{
|
|
CommonIDString: basic.CommonIDString{ID: mManageEquipmentMaterial.GetEncodeID()},
|
|
ManageMaterialBasic: v,
|
|
})
|
|
}
|
|
return list, nil
|
|
}
|
|
|
|
// Bind 绑定操作
|
|
func (c *EquipmentMaterial) Bind(params *EquipmentMaterialBindParams) error {
|
|
mManageEquipmentMaterial := model.NewManageEquipmentMaterial()
|
|
|
|
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
|
|
err := model2.DeleteWhere(mManageEquipmentMaterial.ManageEquipmentMaterial, []*model2.ModelWhere{
|
|
model2.NewWhere("equipment_id", params.EquipmentID),
|
|
})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
list := make([]*model2.ManageEquipmentMaterial, 0)
|
|
|
|
for _, v := range params.MaterialIDs {
|
|
list = append(list, &model2.ManageEquipmentMaterial{
|
|
EquipmentID: params.EquipmentID,
|
|
MaterialID: v,
|
|
})
|
|
}
|
|
if len(list) > 0 {
|
|
return model2.Creates(mManageEquipmentMaterial.ManageEquipmentMaterial, list)
|
|
}
|
|
return nil
|
|
})
|
|
}
|
|
|
|
func (c *EquipmentMaterial) Delete(id uint64) error {
|
|
mManageEquipmentMaterial := model.NewManageEquipmentMaterial()
|
|
mManageEquipmentMaterial.ID = id
|
|
return model2.Delete(mManageEquipmentMaterial.ManageEquipmentMaterial)
|
|
}
|
|
|
|
func NewEquipmentMaterial() EquipmentMaterialHandle {
|
|
return func(session *service.Session) *EquipmentMaterial {
|
|
return &EquipmentMaterial{session}
|
|
}
|
|
}
|