package implments import ( "github.com/go-xorm/xorm" "leit.com/LAPP_GAAS_GFrame/grmi" meta "leit.com/LAPP_GAAS_GFrame/meta/qm" model "leit.com/LAPP_GAAS_GFrame/models/qm" "xorm.io/core" ) type ViewDefectlstDAOImplement struct { session *xorm.Session plantNr int userid string } func NewViewDefectlstDAOImplement(session *xorm.Session, plantNr int, userid string) *ViewDefectlstDAOImplement { return &ViewDefectlstDAOImplement{session, plantNr, userid} } //插入ViewDefectlst func (self *ViewDefectlstDAOImplement) InsertOne(entity *model.ViewDefectlst) error { _, err := self.session.Table(meta.ViewDefectlst.TableName).Insert(entity) if err != nil { return grmi.NewDataBaseError(err) } return nil } //删除指定键的ViewDefectlst func (self *ViewDefectlstDAOImplement) DeleteOne(viewId string, defectReasonId string) error { _, err := self.session.Table(meta.ViewDefectlst.TableName).ID(core.PK{self.plantNr, viewId, defectReasonId}).Delete(meta.ViewDefectlst.Indicator) if err != nil { return grmi.NewDataBaseError(err) } return nil } //查找指定键的ViewDefectlst func (self *ViewDefectlstDAOImplement) SelectOne(viewId string, defectReasonId string) (*model.ViewDefectlst, error) { var data model.ViewDefectlst ok, err := self.session.Table(meta.ViewDefectlst.TableName).ID(core.PK{self.plantNr, viewId, defectReasonId}).Get(&data) if err != nil { return nil, grmi.NewDataBaseError(err) } if !ok { return nil, nil } return &data, nil } //修改ViewDefectlst func (self *ViewDefectlstDAOImplement) UpdateOne(entity *model.ViewDefectlst) error { _, err := self.session.Table(meta.ViewDefectlst.TableName).Cols(meta.ViewDefectlst_Pos.ColumnName, meta.ViewDefectlst_LastUser.ColumnName).ID(entity.GetKey()).Update(entity) if err != nil { return grmi.NewDataBaseError(err) } return nil } //批量检查ViewDefectlst func (self *ViewDefectlstDAOImplement) checkViewDefectlstRecords(records *[]model.ViewDefectlst) error { for _, record := range *records { if self.plantNr != record.PlantNr { return grmi.NewBusinessError("记录不在范围内!") } } return nil } //按条件查询ViewDefectlst func (self *ViewDefectlstDAOImplement) Select(predicates []grmi.Predicate, orderByFields []grmi.Field) ([]model.ViewDefectlst, error) { parameters := make([]interface{}, 0, 10) parameters = append(parameters, self.plantNr) where := "" if predicates != nil { for _, predicate := range predicates { where += predicate.Build() parameters = append(parameters, predicate.Value) } } data := make([]model.ViewDefectlst, 0, 10) session := self.session.Table(meta.ViewDefectlst.TableName).Where("PlantNr = ?"+where, parameters...).OrderBy("PlantNr") for _, field := range orderByFields { session = session.OrderBy(field.ColumnName) } err := session.Find(&data) if err != nil { return nil, grmi.NewDataBaseError(err) } return data, nil } //按条件查询ViewDefectlst并分页 func (self *ViewDefectlstDAOImplement) SelectAndPaging(paging *grmi.Paging, predicates []grmi.Predicate, orderByFields []grmi.Field) (grmi.PagingResult, error) { parameters := make([]interface{}, 0, 10) parameters = append(parameters, self.plantNr) where := "" if predicates != nil { for _, predicate := range predicates { where += predicate.Build() parameters = append(parameters, predicate.Value) } } orderBy := " order by PlantNr" for _, field := range orderByFields { orderBy += ", " + field.ColumnName } count, err := self.session.Table(meta.ViewDefectlst.TableName).Where("PlantNr = ? "+where, parameters...).Count(meta.ViewDefectlst.Indicator) if err != nil { return grmi.EmptyPagingResult, err } parameters = append(parameters, paging.Offset(), paging.Size) data := make([]model.ViewDefectlst, 0, 10) err = self.session.Table(meta.ViewDefectlst.TableName).SQL("select * from QM_ViewDefectlst where PlantNr = ?"+where+orderBy+" offset ? row fetch next ? row only", parameters...).Find(&data) if err != nil { return grmi.EmptyPagingResult, err } return grmi.PagingResult{Records: data, Count: count, PageNumber: paging.Number, PageSize: paging.Size}, nil }