package backend import ( "kpt-pasture/model" "go.uber.org/zap" pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow" "gitee.com/xuyiping_admin/pkg/logger/zaplog" ) func (s *StoreEntry) BarnTypeEnumList(userModel *model.UserModel, excludeTypes []pasturePb.PenType_Kind, isAll string) []*pasturePb.ConfigOptionsList { dataList := make([]*model.ConfigPenType, 0) pref := s.DB.Model(new(model.ConfigPenType)). Where("is_show =? ", pasturePb.IsShow_Ok). Where("pasture_id =? ", userModel.AppPasture.Id) if isAll == model.IsAllYes { pref = pref.Where("kind >= ?", pasturePb.PenType_Invalid) } else { pref = pref.Where("kind > ?", pasturePb.PenType_Invalid) } if err := pref.Order("kind ASC"). Find(&dataList).Error; err != nil { zaplog.Error("BarnTypeEnumList", zap.Any("err", err)) return make([]*pasturePb.ConfigOptionsList, 0) } allBarnTypes := model.ConfigBarnTypeSlice(dataList).ToPB2(userModel) barnTypeList := make([]*pasturePb.ConfigOptionsList, 0) if len(excludeTypes) == 0 || excludeTypes == nil { return allBarnTypes } for _, v1 := range allBarnTypes { var info bool for _, v2 := range excludeTypes { if v1.Value == int32(v2) { info = true break } } if !info { barnTypeList = append(barnTypeList, &pasturePb.ConfigOptionsList{ Value: v1.Value, Label: v1.Label, Disabled: true, }) } } return barnTypeList } func (s *StoreEntry) BreedStatusEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList { dataList := make([]*model.ConfigBreedStatus, 0) pref := s.DB.Model(new(model.ConfigBreedStatus)). Where("is_show =? ", pasturePb.IsShow_Ok). Where("pasture_id =? ", userModel.AppPasture.Id) if isAll == model.IsAllYes { pref = pref.Where("kind >= ?", pasturePb.BreedStatus_Invalid) } else { pref = pref.Where("kind > ?", pasturePb.BreedStatus_Invalid) } if err := pref.Order("kind ASC"). Find(&dataList).Error; err != nil { zaplog.Error("ConfigBreedStatus", zap.Any("err", err)) return make([]*pasturePb.ConfigOptionsList, 0) } return model.ConfigBreedStatusSlice(dataList).ToPB2(userModel) } func (s *StoreEntry) CowKindEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList { dataList := make([]*model.ConfigCowKind, 0) pref := s.DB.Model(new(model.ConfigCowKind)). Where("is_show =? ", pasturePb.IsShow_Ok). Where("pasture_id =? ", userModel.AppPasture.Id) if isAll == model.IsAllYes { pref = pref.Where("kind >= ?", pasturePb.CowKind_Invalid) } else { pref = pref.Where("kind > ?", pasturePb.CowKind_Invalid) } if err := pref.Order("kind ASC"). Find(&dataList).Error; err != nil { zaplog.Error("CowKindEnumList", zap.Any("err", err)) return make([]*pasturePb.ConfigOptionsList, 0) } return model.ConfigCowKindSlice(dataList).ToPB2(userModel) } func (s *StoreEntry) CowSourceEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList { dataList := make([]*model.ConfigCowSource, 0) pref := s.DB.Model(new(model.ConfigCowSource)). Where("is_show =? ", pasturePb.IsShow_Ok). Where("pasture_id =? ", userModel.AppPasture.Id) if isAll == model.IsAllYes { pref = pref.Where("kind >= ?", pasturePb.CowSource_Invalid) } else { pref = pref.Where("kind > ?", pasturePb.CowSource_Invalid) } if err := pref.Order("kind ASC"). Find(&dataList).Error; err != nil { zaplog.Error("CowKindEnumList", zap.Any("err", err)) return make([]*pasturePb.ConfigOptionsList, 0) } return model.ConfigCowSourceSlice(dataList).ToPB2(userModel) } func (s *StoreEntry) CowTypeEnumList(userModel *model.UserModel, optionName, isAll string) []*pasturePb.ConfigOptionsList { dataList := make([]*model.ConfigCowType, 0) pref := s.DB.Model(new(model.ConfigCowType)). Where("is_show =? ", pasturePb.IsShow_Ok). Where("pasture_id =? ", userModel.AppPasture.Id) if isAll == model.IsAllYes { pref = pref.Where("kind >= ?", pasturePb.CowType_Invalid) } else { pref = pref.Where("kind > ?", pasturePb.CowType_Invalid) } if err := pref.Order("kind ASC"). Find(&dataList).Error; err != nil { zaplog.Error("CowKindEnumList", zap.Any("err", err)) return make([]*pasturePb.ConfigOptionsList, 0) } return model.ConfigCowTypeSlice(dataList).ToPB2(userModel, optionName) } func (s *StoreEntry) SameTimeCowTypeEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList { dataList := make([]*model.ConfigSameTimeCowType, 0) pref := s.DB.Model(new(model.ConfigSameTimeCowType)). Where("is_show =? ", pasturePb.IsShow_Ok). Where("pasture_id =? ", userModel.AppPasture.Id) if isAll == model.IsAllYes { pref = pref.Where("kind >= ?", pasturePb.SameTimeCowType_Invalid) } else { pref = pref.Where("kind > ?", pasturePb.SameTimeCowType_Invalid) } if err := pref.Order("kind ASC"). Find(&dataList).Error; err != nil { zaplog.Error("ConfigSameTimeCowType", zap.Any("err", err)) return make([]*pasturePb.ConfigOptionsList, 0) } return model.ConfigSameTimeCowTypeSlice(dataList).ToPB(userModel) } func (s *StoreEntry) SameTimeTypeEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList { dataList := make([]*model.ConfigSameTimeType, 0) pref := s.DB.Model(new(model.ConfigSameTimeType)). Where("is_show =? ", pasturePb.IsShow_Ok). Where("pasture_id =? ", userModel.AppPasture.Id) if isAll == model.IsAllYes { pref = pref.Where("kind >= ?", pasturePb.SameTimeType_Invalid) } else { pref = pref.Where("kind > ?", pasturePb.SameTimeType_Invalid) } if err := pref.Order("kind ASC"). Find(&dataList).Error; err != nil { zaplog.Error("SameTimeTypeEnumList", zap.Any("err", err)) return make([]*pasturePb.ConfigOptionsList, 0) } return model.ConfigSameTimeTypeSlice(dataList).ToPB(userModel) } func (s *StoreEntry) ImmunizationCowTypeEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList { return s.CowTypeEnumList(userModel, "", isAll) } func (s *StoreEntry) ImmunizationConditionsEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList { dataList := make([]*model.ConfigImmunizationConditions, 0) pref := s.DB.Model(new(model.ConfigImmunizationConditions)). Where("is_show =? ", pasturePb.IsShow_Ok). Where("pasture_id =? ", userModel.AppPasture.Id) if isAll == model.IsAllYes { pref = pref.Where("kind >= ?", pasturePb.ImmunizationConditions_Invalid) } else { pref = pref.Where("kind > ?", pasturePb.ImmunizationConditions_Invalid) } if err := pref.Order("kind ASC"). Find(&dataList).Error; err != nil { zaplog.Error("ImmunizationConditionsEnumList", zap.Any("err", err)) return make([]*pasturePb.ConfigOptionsList, 0) } return model.ConfigImmunizationConditionsSlice(dataList).ToPB(userModel) } func (s *StoreEntry) TransferPenEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList { dataList := make([]*model.ConfigTransferPenReason, 0) pref := s.DB.Model(new(model.ConfigTransferPenReason)). Where("is_show =? ", pasturePb.IsShow_Ok). Where("pasture_id =? ", userModel.AppPasture.Id) if isAll == model.IsAllYes { pref = pref.Where("kind >= ?", pasturePb.TransferPenReason_Invalid) } else { pref = pref.Where("kind > ?", pasturePb.TransferPenReason_Invalid) } if err := pref.Order("kind ASC"). Find(&dataList).Error; err != nil { zaplog.Error("TransferPenEnumList", zap.Any("err", err)) return make([]*pasturePb.ConfigOptionsList, 0) } return model.ConfigTransferPenReasonSlice(dataList).ToPB2(userModel) } func (s *StoreEntry) ChildNumberEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList { dataList := make([]*model.ConfigChildNumber, 0) pref := s.DB.Model(new(model.ConfigChildNumber)). Where("is_show =? ", pasturePb.IsShow_Ok). Where("pasture_id =? ", userModel.AppPasture.Id) if isAll == model.IsAllYes { pref = pref.Where("kind >= ?", pasturePb.ChildNumber_Invalid) } else { pref = pref.Where("kind > ?", pasturePb.ChildNumber_Invalid) } if err := pref.Order("kind ASC"). Find(&dataList).Error; err != nil { zaplog.Error("ChildNumberEnumList", zap.Any("err", err)) return make([]*pasturePb.ConfigOptionsList, 0) } return model.ConfigChildNumberSlice(dataList).ToPB(userModel) } func (s *StoreEntry) CalvingLevelEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList { dataList := make([]*model.ConfigCalvingLevel, 0) pref := s.DB.Model(new(model.ConfigCalvingLevel)). Where("is_show =? ", pasturePb.IsShow_Ok). Where("pasture_id =? ", userModel.AppPasture.Id) if isAll == model.IsAllYes { pref = pref.Where("kind >= ?", pasturePb.CalvingLevel_Invalid) } else { pref = pref.Where("kind > ?", pasturePb.CalvingLevel_Invalid) } if err := pref.Order("kind ASC"). Find(&dataList).Error; err != nil { zaplog.Error("CalvingLevelEnumList", zap.Any("err", err)) return make([]*pasturePb.ConfigOptionsList, 0) } return model.ConfigCalvingLevelSlice(dataList).ToPB(userModel) } func (s *StoreEntry) DystociaReasonEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList { dataList := make([]*model.ConfigDystociaReason, 0) pref := s.DB.Model(new(model.ConfigDystociaReason)). Where("is_show =? ", pasturePb.IsShow_Ok). Where("pasture_id =? ", userModel.AppPasture.Id) if isAll == model.IsAllYes { pref = pref.Where("kind >= ?", pasturePb.DystociaReason_Invalid) } else { pref = pref.Where("kind > ?", pasturePb.DystociaReason_Invalid) } if err := pref.Order("kind ASC"). Find(&dataList).Error; err != nil { zaplog.Error("CalvingLevelEnumList", zap.Any("err", err)) return make([]*pasturePb.ConfigOptionsList, 0) } return model.ConfigDystociaReasonSlice(dataList).ToPB(userModel) } func (s *StoreEntry) PregnantCheckResultEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList { dataList := make([]*model.ConfigPregnantCheckResult, 0) pref := s.DB.Model(new(model.ConfigPregnantCheckResult)). Where("is_show =? ", pasturePb.IsShow_Ok). Where("pasture_id =? ", userModel.AppPasture.Id) if isAll == model.IsAllYes { pref = pref.Where("kind >= ?", pasturePb.PregnantCheckResult_Invalid) } else { pref = pref.Where("kind > ?", pasturePb.PregnantCheckResult_Invalid) } if err := pref.Order("kind ASC"). Find(&dataList).Error; err != nil { zaplog.Error("PregnantCheckResultEnumList", zap.Any("err", err)) return make([]*pasturePb.ConfigOptionsList, 0) } return model.ConfigPregnantCheckResultSlice(dataList).ToPB(userModel) }