|
@@ -9,6 +9,8 @@ import (
|
|
|
"tmr-watch/http/handle/restful"
|
|
|
"tmr-watch/models"
|
|
|
|
|
|
+ operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation"
|
|
|
+
|
|
|
"github.com/xormplus/xorm"
|
|
|
|
|
|
pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/pasture"
|
|
@@ -503,7 +505,12 @@ func FeedFormulaVersion(req *models.FeedFormulaUpdateVersionRequest) error {
|
|
|
DbSession := restful.Engine.NewSession()
|
|
|
defer DbSession.Close()
|
|
|
|
|
|
- history := &models.FeedDetailVersionLog{}
|
|
|
+ // 开启事务
|
|
|
+ if err := DbSession.Begin(); err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ history := &models.FeedDetailVersion{}
|
|
|
if _, err := DbSession.Where("feed_template_id = ?", req.FeedTemplateId).
|
|
|
And("belong = ?", req.Belong).
|
|
|
Get(history); err != nil {
|
|
@@ -513,11 +520,22 @@ func FeedFormulaVersion(req *models.FeedFormulaUpdateVersionRequest) error {
|
|
|
if history.Id > 0 {
|
|
|
history.GroupVersion = req.Version
|
|
|
history.UpdatedAt = time.Now().Unix()
|
|
|
- if _, err := DbSession.Where("id = ?", history.Id).Cols("group_version", "updated_at").Update(history); err != nil {
|
|
|
+ if _, err := DbSession.Table(new(models.FeedDetailVersion).TableName()).
|
|
|
+ Where("id = ?", history.Id).Cols("group_version", "updated_at").
|
|
|
+ Update(history); err != nil {
|
|
|
+ DbSession.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ if _, err := DbSession.Table(new(models.FeedDetailVersionLog).TableName()).
|
|
|
+ Where("feed_formula_id = ?", history.FeedTemplateId).
|
|
|
+ Update(map[string]interface{}{"is_show": operationPb.IsShow_NO}); err != nil {
|
|
|
+ DbSession.Rollback()
|
|
|
return err
|
|
|
}
|
|
|
+
|
|
|
} else {
|
|
|
- feedDetailVersionLog := &models.FeedDetailVersionLog{
|
|
|
+ feedDetailVersionLog := &models.FeedDetailVersion{
|
|
|
FeedTemplateId: req.FeedTemplateId,
|
|
|
GroupVersion: req.Version,
|
|
|
Belong: req.Belong,
|
|
@@ -525,11 +543,33 @@ func FeedFormulaVersion(req *models.FeedFormulaUpdateVersionRequest) error {
|
|
|
UpdatedAt: time.Now().Unix(),
|
|
|
}
|
|
|
if _, err := DbSession.Insert(feedDetailVersionLog); err != nil {
|
|
|
+ DbSession.Rollback()
|
|
|
return err
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return nil
|
|
|
+ // FeedDetailVersionLog 更新
|
|
|
+ versionLogs := make([]*models.FeedDetailVersionLog, 0)
|
|
|
+ for _, v := range req.Data {
|
|
|
+ versionLogs = append(versionLogs, &models.FeedDetailVersionLog{
|
|
|
+ FeedTemplateId: req.FeedTemplateId,
|
|
|
+ ForageId: int64(v.ForageId),
|
|
|
+ ForageName: v.ForageName,
|
|
|
+ ForageGroupName: v.ForageGroupName,
|
|
|
+ Weight: int32(v.Weight * 100),
|
|
|
+ StirDelay: v.StirDelay,
|
|
|
+ AllowError: v.AllowError,
|
|
|
+ IsModify: v.IsModify,
|
|
|
+ IsLockCowCountRatio: operationPb.IsShow_Kind(v.IsLockCowCountRatio),
|
|
|
+ Sort: v.Sort,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if _, err := DbSession.Table(new(models.FeedDetailVersionLog).TableName()).Insert(versionLogs); err != nil {
|
|
|
+ DbSession.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ return DbSession.Commit()
|
|
|
}
|
|
|
|
|
|
func NewSearchFeedTemplateList(ctx context.Context, req *pasturePb.SearchFeedTemplateRequest) ([]*models.FeedTemplate, int64, error) {
|
|
@@ -576,8 +616,8 @@ func NewSearchFeedTemplateList(ctx context.Context, req *pasturePb.SearchFeedTem
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func FeedDetailVersionLogList(ctx context.Context) ([]*models.FeedDetailVersionLog, error) {
|
|
|
- res := make([]*models.FeedDetailVersionLog, 0)
|
|
|
+func FeedDetailVersionLogList(ctx context.Context) ([]*models.FeedDetailVersion, error) {
|
|
|
+ res := make([]*models.FeedDetailVersion, 0)
|
|
|
if err := restful.Engine.NewSession().Find(&res); err != nil {
|
|
|
if !errors.Is(err, xorm.ErrNotExist) {
|
|
|
return nil, err
|