test_service.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package backend
  2. import (
  3. "context"
  4. "kpt-pasture/model"
  5. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  6. "gitee.com/xuyiping_admin/pkg/logger/zaplog"
  7. "go.uber.org/zap"
  8. "gitee.com/xuyiping_admin/pkg/xerr"
  9. )
  10. func (s *StoreEntry) CowNeckRingNumberBound(ctx context.Context, pagination *pasturePb.PaginationModel) error {
  11. currentUser, err := s.GetCurrentSystemUser(ctx)
  12. if err != nil {
  13. return xerr.Custom("当前用户信息错误,请退出重新登录")
  14. }
  15. lastNeckRing := &model.NeckRing{}
  16. if err = s.DB.Model(new(model.NeckRing)).
  17. Order("cow_id desc").
  18. First(lastNeckRing).Error; err != nil {
  19. return xerr.WithStack(err)
  20. }
  21. cowList := make([]*model.Cow, 0)
  22. if err = s.DB.Model(new(model.Cow)).
  23. Where("id > ?", lastNeckRing.CowId).
  24. Limit(int(pagination.PageSize)).
  25. Offset(int(pagination.PageOffset)).
  26. Find(&cowList).Error; err != nil {
  27. return xerr.WithStack(err)
  28. }
  29. newNeckRingList := make([]*model.NeckRing, 0)
  30. newNeckRingBindLogList := make([]*model.NeckRingBindLog, 0)
  31. for _, v := range cowList {
  32. newNeckRing := model.NewNeckRing(currentUser.PastureId, v.NeckRingNumber, v.Id, currentUser)
  33. newNeckRingList = append(newNeckRingList, newNeckRing)
  34. newNeckRingBindLog := model.NewNeckRingBindLog(v.NeckRingNumber, v.Id, currentUser)
  35. newNeckRingBindLogList = append(newNeckRingBindLogList, newNeckRingBindLog)
  36. }
  37. if err = s.DB.Model(new(model.NeckRing)).
  38. Create(newNeckRingList).Error; err != nil {
  39. zaplog.Error("CowNeckRingNumberBound-NewNeckRing", zap.Any("error", err))
  40. }
  41. if err = s.DB.Model(new(model.NeckRingBindLog)).
  42. Create(newNeckRingBindLogList).Error; err != nil {
  43. zaplog.Error("CowNeckRingNumberBound-NeckRingBindLog", zap.Any("error", err))
  44. }
  45. return nil
  46. }
  47. func (s *StoreEntry) UpdateCowPen(ctx context.Context, pagination *pasturePb.PaginationModel) error {
  48. cowList := make([]*model.Cow, 0)
  49. if err := s.DB.Model(new(model.Cow)).
  50. Where("pen_name = ?", "").
  51. Limit(int(pagination.PageSize)).
  52. Offset(int(pagination.PageOffset)).
  53. Find(&cowList).Error; err != nil {
  54. return xerr.WithStack(err)
  55. }
  56. penMap := s.PenMap(ctx, 1)
  57. for _, v := range cowList {
  58. pen := penMap[v.PenId]
  59. if pen == nil {
  60. continue
  61. }
  62. if err := s.DB.Model(new(model.Cow)).
  63. Where("id = ?", v.Id).
  64. Update("pen_name", pen.Name).Error; err != nil {
  65. zaplog.Error("UpdateCowPen", zap.Any("error", err))
  66. }
  67. }
  68. return nil
  69. }