package backend import ( "context" "errors" "kpt-pasture/model" pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow" "gitee.com/xuyiping_admin/pkg/xerr" "gorm.io/gorm" ) // GetCurrentUserName 获取当前用户名 func (s *StoreEntry) GetCurrentUserName(ctx context.Context) (string, error) { userNameInter := ctx.Value(CurrentUserName) if userNameInter == nil { return "", xerr.Customf("cannot userName") } if userName, ok := userNameInter.(string); ok { return userName, nil } else { return "", xerr.Customf("waring userName") } } func (s *StoreEntry) GetCurrentSystemUser(ctx context.Context) (*model.SystemUser, error) { // 解析token userName, err := s.GetCurrentUserName(ctx) if err != nil { return nil, xerr.WithStack(err) } // 根据用户token获取用户数据 systemUser := &model.SystemUser{Name: userName} if err = s.DB.Where("name = ?", userName). Where("is_show = ? and is_delete = ?", pasturePb.IsShow_Ok, pasturePb.IsShow_Ok). First(systemUser).Error; err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return nil, xerr.Custom("当前登录用户数据不存在") } return nil, xerr.WithStack(err) } return systemUser, nil } func (s *StoreEntry) GetSystemUserInfo(ctx context.Context, userId int64) (*model.SystemUser, error) { systemUser := &model.SystemUser{ Id: userId, } if err := s.DB.First(systemUser).Error; err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return nil, xerr.Customf("该系统用户数据不存在: %d", userId) } return nil, xerr.WithStack(err) } return systemUser, nil } func (s *StoreEntry) GetPenInfo(ctx context.Context, penId int64) (*model.Pen, error) { penData := &model.Pen{ Id: penId, } if err := s.DB.First(penData).Error; err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return nil, xerr.Customf("该栏舍数据不存在: %d", penId) } return nil, xerr.WithStack(err) } return penData, nil } func (s *StoreEntry) GetCowInfo(ctx context.Context, cowId int64) (*model.Cow, error) { cowData := &model.Cow{Id: cowId} if err := s.DB.First(cowData).Error; err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return nil, xerr.Customf("该牛只数据不存在: %d", cowId) } return nil, xerr.WithStack(err) } return cowData, nil } func (s *StoreEntry) GetTransferReasonInfo(ctx context.Context, reasonId int64) (*model.ConfigTransferPenReason, error) { configTransferPenReasonData := &model.ConfigTransferPenReason{ Id: reasonId, } if err := s.DB.First(configTransferPenReasonData).Error; err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return nil, xerr.Customf("该转群原因数据不存在: %d", reasonId) } return nil, xerr.WithStack(err) } return configTransferPenReasonData, nil }