| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | package groupimport (	"context"	"net/http"	"tmr-watch/models"	"tmr-watch/module"	feedPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/pasture")func SearchFeedTemplateList(ctx context.Context, req *feedPb.SearchFeedTemplateRequest) (*feedPb.SearchFeedTemplateResponse, error) {	feedTemplateList, total, err := module.NewSearchFeedTemplateList(ctx, req)	if err != nil {		return nil, err	}	feedDetailVersionLogList, err := module.FeedDetailVersionLogList(ctx)	if err != nil {		return nil, err	}	res := &feedPb.SearchFeedTemplateResponse{		Code: http.StatusOK,		Msg:  "ok",		Data: &feedPb.FeedTemplateData{			Page:     req.Pagination.Page,			PageSize: req.Pagination.PageSize,			Total:    int32(total),			List:     models.FeedTemplateSlice(feedTemplateList).ToPB(feedDetailVersionLogList),		},	}	return res, nil}func GetFeetTemplateVersion(ctx context.Context, pastureId, feedTemplateId int) (*feedPb.GetFeetTemplateVersionResponse, error) {	historyFeedTemplateDetailList, err := module.SearchFeedTemplateDetailListByFeedTemplateId(ctx, int64(pastureId), int64(feedTemplateId))	if err != nil {		return nil, err	}	newFeedTemplateDetailVersion, err := module.GetFeedDetailVersionByDesc(ctx, int64(pastureId), int64(feedTemplateId))	if err != nil {		return nil, err	}	newFeedTemplateDetailVersionLogList, err := module.SearchFeedDetailVersionLogById(ctx, int64(pastureId), int64(feedTemplateId), newFeedTemplateDetailVersion.Id)	if err != nil {		return nil, err	}	res := &feedPb.GetFeetTemplateVersionResponse{		Code: http.StatusOK,		Msg:  "ok",		Data: make([]*feedPb.FeetTemplateVersionData, 0),	}	// 比例两个配方饲料的不同	for _, n := range newFeedTemplateDetailVersionLogList {		for _, v := range historyFeedTemplateDetailList {			if v.FName == n.ForageName {				res.Data = append(res.Data, &feedPb.FeetTemplateVersionData{					ForageName:          v.FName,					ForageGroupName:     v.FeedGroup,					Weight:              float32(v.LWeight / 100),					StirDelay:           v.AutoSecond,					AllowError:          v.Deviation,					Sort:                v.Sort,					IsLockCowCountRatio: v.IsLockCount,					IsModify:            v.IsModify,					Status:              feedPb.VersionStatus_UPDATE,				})			}		}	}	return res, nil}func FeetTemplateUpgradeNewVersion(ctx context.Context, pastureId, feedTemplateId int) error {	return module.FeetTemplateUpgradeNewVersion(ctx, int64(pastureId), int64(feedTemplateId))}
 |