Browse Source

feed: 修改配方记录数据

Yi 1 year ago
parent
commit
af47a94292
1 changed files with 35 additions and 22 deletions
  1. 35 22
      module/backend/feed_service.go

+ 35 - 22
module/backend/feed_service.go

@@ -789,32 +789,45 @@ func (s *StoreEntry) EditRecodeFeedFormula(ctx context.Context, req *operationPb
 	if err := pref.Order("group_id").Find(&feedFormulaEditRecordList).Error; err != nil {
 		return res, xerr.WithStack(err)
 	}
-	editRecodeFeedFormulaDataList := make([]*operationPb.EditRecodeFeedFormulaData, 0)
 
-	var groupId int64 = 1
-	modifyDetail := ""
-	for i, v := range feedFormulaEditRecordList {
-		if i == 0 {
-			modifyDetail += fmt.Sprintf("%s\n ", v.PastureName)
-		}
-		switch v.Status {
-		case operationPb.FeedFormulaEditRecordType_INSERT:
-			modifyDetail += fmt.Sprintf(`%s新增了饲料%s\n `, v.OperationName, v.ForageName)
-		case operationPb.FeedFormulaEditRecordType_UPDATE:
-			modifyDetail += fmt.Sprintf(`%s将%s的%s"%s"更新为"%s"\n `, v.OperationName, v.ForageName, v.FieldName, v.BeforeValue, v.AfterValue)
-		case operationPb.FeedFormulaEditRecordType_DELETE:
-			modifyDetail += fmt.Sprintf(`%s删除了%s\n `, v.OperationName, v.ForageName)
+	groupByFeedFormulaEditRecordList := make(map[int64][]*model.FeedFormulaEditRecord, 0)
+	for _, v := range feedFormulaEditRecordList {
+		if groupByFeedFormulaEditRecordList[v.GroupId] == nil {
+			groupByFeedFormulaEditRecordList[v.GroupId] = make([]*model.FeedFormulaEditRecord, 0)
 		}
+		groupByFeedFormulaEditRecordList[v.GroupId] = append(groupByFeedFormulaEditRecordList[v.GroupId], v)
+	}
 
-		recodeData := &operationPb.EditRecodeFeedFormulaData{
-			PastureId:    int32(v.PastureId),
-			PastureName:  v.PastureName,
-			ModifyTime:   time.Unix(v.CreatedAt, 0).Format(model.LayoutTime),
-			ModifyDetail: modifyDetail,
-		}
-		if groupId != v.GroupId {
-			editRecodeFeedFormulaDataList = append(editRecodeFeedFormulaDataList, recodeData)
+	editRecodeFeedFormulaDataList := make([]*operationPb.EditRecodeFeedFormulaData, 0)
+
+	for _, data := range groupByFeedFormulaEditRecordList {
+		var modifyDetail = ""
+		var pastureId int32 = 0
+		var pastureName = ""
+		var createTime int64 = 0
+
+		for i, v := range data {
+			if i == 0 {
+				modifyDetail += fmt.Sprintf("%s\n ", v.PastureName)
+				pastureId = int32(v.PastureId)
+				pastureName = v.PastureName
+				createTime = v.CreatedAt
+			}
+			switch v.Status {
+			case operationPb.FeedFormulaEditRecordType_INSERT:
+				modifyDetail += fmt.Sprintf(`%s新增了饲料%s\n `, v.OperationName, v.ForageName)
+			case operationPb.FeedFormulaEditRecordType_UPDATE:
+				modifyDetail += fmt.Sprintf(`%s将%s的%s"%s"更新为"%s"\n `, v.OperationName, v.ForageName, v.FieldName, v.BeforeValue, v.AfterValue)
+			case operationPb.FeedFormulaEditRecordType_DELETE:
+				modifyDetail += fmt.Sprintf(`%s删除了%s\n `, v.OperationName, v.ForageName)
+			}
 		}
+		editRecodeFeedFormulaDataList = append(editRecodeFeedFormulaDataList, &operationPb.EditRecodeFeedFormulaData{
+			PastureId:    pastureId,
+			PastureName:  pastureName,
+			ModifyTime:   time.Unix(createTime, 0).Format(model.LayoutTime),
+			ModifyDetail: modifyDetail,
+		})
 	}
 	res.Data = editRecodeFeedFormulaDataList
 	return res, nil