package manage import ( "SciencesServer/app/api/enterprise/model" "SciencesServer/app/basic/controller" model2 "SciencesServer/app/common/model" "SciencesServer/app/session" "errors" ) // Equipment 设备信息 type Equipment struct { *session.Enterprise tenantID uint64 } type EquipmentHandle func(session *session.Enterprise, tenantID uint64) *Equipment type ( EquipmentInstance struct { ID string `json:"id"` *model2.ManageEquipment } EquipmentParams struct { ID uint64 Kind int Code, Title, Params, Description string PurchaseAt string } ) // List 列表信息 func (c *Equipment) List(kind int, code, title string, page, pageSize int) (*controller.ReturnPages, error) { mManageEquipment := model.NewManageEquipment() where := []*model2.ModelWhereOrder{ &model2.ModelWhereOrder{ Where: model2.NewWhere("tenant_id", c.tenantID), Order: model2.NewOrder("id", model2.OrderModeToDesc), }, &model2.ModelWhereOrder{ Where: model2.NewWhere("uid", c.UID), }, } if kind > 0 { where = append(where, &model2.ModelWhereOrder{Where: model2.NewWhere("kind", kind)}) } if code != "" { where = append(where, &model2.ModelWhereOrder{Where: model2.NewWhereLike("code", code)}) } if title != "" { where = append(where, &model2.ModelWhereOrder{Where: model2.NewWhereLike("title", title)}) } out := make([]*model2.ManageEquipment, 0) var count int64 if err := model2.Pages(mManageEquipment.ManageEquipment, &out, page, pageSize, &count, where...); err != nil { return nil, err } list := make([]*EquipmentInstance, 0) for _, v := range out { list = append(list, &EquipmentInstance{ ID: v.GetEncodeID(), ManageEquipment: v, }) } return &controller.ReturnPages{Data: list, Count: count}, nil } // Form 数据操作 func (c *Equipment) Form(params *EquipmentParams) error { mManageEquipment := model.NewManageEquipment() if params.ID > 0 { mManageEquipment.ID = params.ID isExist, err := model2.FirstField(mManageEquipment.ManageEquipment, []string{"id", "uid", "created_at"}) if err != nil { return err } else if !isExist { return errors.New("操作错误,器材信息不存在或已被删除") } else if mManageEquipment.UID != c.UID { return errors.New("无权限操作") } } mManageEquipment.Kind = model2.ManageEquipmentKind(params.Kind) mManageEquipment.Code = params.Code mManageEquipment.Title = params.Title mManageEquipment.Params = params.Params mManageEquipment.Description = params.Description if mManageEquipment.ID > 0 { return model2.Updates(mManageEquipment.ManageEquipment, mManageEquipment.ManageEquipment) } mManageEquipment.TenantID = c.tenantID mManageEquipment.UID = c.UID return model2.Create(mManageEquipment.ManageEquipment) } // Delete 删除操作 func (c *Equipment) Delete(id uint64) error { mManageEquipment := model.NewManageEquipment() mManageEquipment.ID = id isExist, err := model2.FirstField(mManageEquipment.ManageEquipment, []string{"id", "uid", "created_at"}) if err != nil { return err } else if !isExist { return errors.New("操作错误,器材信息不存在或已被删除") } else if mManageEquipment.UID != c.UID { return errors.New("无权限操作") } return model2.Delete(mManageEquipment.ManageEquipment) } func NewEquipment() EquipmentHandle { return func(session *session.Enterprise, tenantID uint64) *Equipment { return &Equipment{ Enterprise: session, tenantID: tenantID, } } }