From 1444c7c800fc042cd99213e901d6ad3722d0f03f Mon Sep 17 00:00:00 2001
From: jiangshuai <291802688@qq.com>
Date: 星期三, 27 九月 2023 16:13:53 +0800
Subject: [PATCH] 1.二期一部分代码

---
 controllers/operation.go |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/controllers/operation.go b/controllers/operation.go
index 9a87ab0..fa8137d 100644
--- a/controllers/operation.go
+++ b/controllers/operation.go
@@ -6,6 +6,7 @@
 	"github.com/gin-gonic/gin"
 	"github.com/shopspring/decimal"
 	"gorm.io/gorm"
+	"sort"
 	"strconv"
 	"time"
 	"wms/constvar"
@@ -46,6 +47,12 @@
 		util.ResponseFormat(c, code.RequestParamError, err.Error())
 		return
 	}
+
+	if CheckDetailsRepeat(params.Details) {
+		util.ResponseFormat(c, code.RequestParamError, "鏄庣粏涓笉鑳藉瓨鍦ㄩ噸澶嶇殑浜у搧")
+		return
+	}
+
 	operationType, err := models.NewOperationTypeSearch().SetID(uint(params.OperationTypeId)).First()
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, err.Error())
@@ -61,6 +68,23 @@
 		return
 	}
 	util.ResponseFormat(c, code.Success, "娣诲姞鎴愬姛")
+}
+
+func CheckDetailsRepeat(details []*models.OperationDetails) bool {
+	detailIDs := []string{}
+	var tempID string
+	for _, v := range details {
+		detailIDs = append(detailIDs, v.ProductId)
+	}
+	sort.Strings(detailIDs)
+	for _, v := range detailIDs {
+		if v != tempID {
+			tempID = v
+		} else {
+			return true
+		}
+	}
+	return false
 }
 
 func (slf OperationController) FormatLocation(params *models.Operation) error {
@@ -202,6 +226,10 @@
 		util.ResponseFormat(c, code.RequestParamError, err.Error())
 		return
 	}
+	if CheckDetailsRepeat(params.Details) {
+		util.ResponseFormat(c, code.RequestParamError, "鏄庣粏涓笉鑳藉瓨鍦ㄩ噸澶嶇殑浜у搧")
+		return
+	}
 	if err := slf.FormatLocation(&params); err != nil {
 		util.ResponseFormat(c, code.RequestParamError, err.Error())
 		return

--
Gitblit v1.8.0