|
@@ -134,7 +134,7 @@ func (s *StoreEntry) FeedFormulaSyncData(ctx context.Context, req *operationPb.F
|
|
|
PageSize: int32(pageSize),
|
|
|
}
|
|
|
response := &model.FeedFormulaListResponse{}
|
|
|
- if _, err = s.PastureHttpClient(ctx, model.FeedFormulaListAsyncUrl, int64(req.PastureId), body, response); err != nil {
|
|
|
+ if _, err = s.PastureHttpClient(ctx, model.FeedFormulaAsyncUrl, int64(req.PastureId), body, response); err != nil {
|
|
|
return xerr.WithStack(err)
|
|
|
}
|
|
|
|
|
@@ -181,3 +181,80 @@ func (s *StoreEntry) FeedFormulaInsert(ctx context.Context, groupPasture *model.
|
|
|
}
|
|
|
return nil
|
|
|
}
|
|
|
+
|
|
|
+func (s *StoreEntry) FeedSyncData(ctx context.Context, req *operationPb.FeedFormulaSyncRequest) error {
|
|
|
+ groupPastureList, err := s.DataSyncGroupPastureList(ctx)
|
|
|
+ if err != nil {
|
|
|
+ return xerr.WithStack(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ var (
|
|
|
+ ok bool
|
|
|
+ groupPasture *model.GroupPasture
|
|
|
+ )
|
|
|
+ for _, pastureDetail := range groupPastureList {
|
|
|
+ if pastureDetail.Id != int64(req.PastureId) {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ groupPasture = pastureDetail
|
|
|
+ ok = true
|
|
|
+ }
|
|
|
+
|
|
|
+ if ok {
|
|
|
+ total := 0
|
|
|
+ page := 1
|
|
|
+ pageSize := 100
|
|
|
+ for i := 0; i <= total; i++ {
|
|
|
+ body := &model.FeedFormulaListRequest{
|
|
|
+ PastureId: int32(groupPasture.PastureId),
|
|
|
+ Page: int32(page),
|
|
|
+ PageSize: int32(pageSize),
|
|
|
+ }
|
|
|
+ response := &model.FeedFormulaListResponse{}
|
|
|
+ if _, err = s.PastureHttpClient(ctx, model.FeedAsyncUrl, int64(req.PastureId), body, response); err != nil {
|
|
|
+ return xerr.WithStack(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ if response.Code != http.StatusOK {
|
|
|
+ return xerr.Customf("%s", response.Msg)
|
|
|
+ }
|
|
|
+ if response.Data.Total > 0 && response.Data.List != nil {
|
|
|
+ total = int(math.Ceil(float64(response.Data.Total) / float64(pageSize)))
|
|
|
+ }
|
|
|
+ if err = s.FeedInsert(ctx, groupPasture, response.Data.List); err != nil {
|
|
|
+ return xerr.WithStack(err)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
+func (s *StoreEntry) FeedInsert(ctx context.Context, groupPasture *model.GroupPasture, list []*model.FeedTemplate) error {
|
|
|
+ res := make([]*model.FeedFormula, 0)
|
|
|
+ for _, data := range list {
|
|
|
+ res = append(res, &model.FeedFormula{
|
|
|
+ Name: data.TName,
|
|
|
+ Colour: data.TColor,
|
|
|
+ EncodeNumber: data.TCode,
|
|
|
+ CattleCategoryId: operationPb.CattleCategoryParent_Kind(data.CCid),
|
|
|
+ CattleCategoryName: data.CCName,
|
|
|
+ FormulaTypeId: data.FTTypeId,
|
|
|
+ FormulaTypeName: data.FTType,
|
|
|
+ DataSourceId: operationPb.DataSource_FROM_PASTURE,
|
|
|
+ DataSourceName: "牧场同步",
|
|
|
+ Remarks: data.Remark,
|
|
|
+ Version: data.Version,
|
|
|
+ PastureId: groupPasture.PastureId,
|
|
|
+ PastureName: groupPasture.Name,
|
|
|
+ PastureDataId: data.Id,
|
|
|
+ IsShow: operationPb.IsShow_Kind(data.Enable),
|
|
|
+ IsModify: operationPb.IsShow_Kind(data.IsModify),
|
|
|
+ IsDelete: operationPb.IsShow_OK,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if err := s.DB.Model(new(model.FeedFormula)).Create(res).Error; err != nil {
|
|
|
+ return xerr.WithStack(err)
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+}
|