| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | package modelimport (	pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"	"github.com/nicksnyder/go-i18n/v2/i18n")type ConfigCowType struct {	Id           int64                  `json:"id"`	Kind         pasturePb.CowType_Kind `json:"kind"`	I18nFieldTag string                 `json:"i18nFieldTag"`	Remarks      string                 `json:"remarks"`	IsShow       pasturePb.IsShow_Kind  `json:"isShow"`	CreatedAt    int64                  `json:"createdAt"`	UpdatedAt    int64                  `json:"updatedAt"`}func (c *ConfigCowType) TableName() string {	return "config_cow_type"}type ConfigCowTypeSlice []*ConfigCowTypefunc (c ConfigCowTypeSlice) ToPB(userModel *UserModel) []*pasturePb.SearchBaseConfigList {	res := make([]*pasturePb.SearchBaseConfigList, len(c))	for i, d := range c {		name, _ := userModel.LanguageContent.Localize(&i18n.LocalizeConfig{			MessageID: d.I18nFieldTag,		})		res[i] = &pasturePb.SearchBaseConfigList{			Id:        int32(d.Id),			Name:      name,			Remarks:   d.Remarks,			IsShow:    d.IsShow,			CreatedAt: int32(d.CreatedAt),			UpdatedAt: int32(d.UpdatedAt),		}	}	return res}func (c ConfigCowTypeSlice) ToPB2(userModel *UserModel, optionName string) []*pasturePb.ConfigOptionsList {	res := make([]*pasturePb.ConfigOptionsList, 0)	for _, v := range c {		label, _ := userModel.LanguageContent.Localize(&i18n.LocalizeConfig{			MessageID: v.I18nFieldTag,		})		if optionName == "breed" && !isBreedingOrReserveCalf(v.Kind) {			continue		}		res = append(res, &pasturePb.ConfigOptionsList{			Value:    int32(v.Kind),			Label:    label,			Disabled: true,		})	}	return res}// 辅助函数:判断是否为 Breeding_Calf 或 Reserve_Calffunc isBreedingOrReserveCalf(kind pasturePb.CowType_Kind) bool {	return kind == pasturePb.CowType_Breeding_Calf || kind == pasturePb.CowType_Reserve_Calf}
 |