From 067650e77790adeb5222b7736649cb5b6b016162 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期日, 28 四月 2024 10:49:44 +0800
Subject: [PATCH] 时间范围和该工人以往添加记录重复性校验

---
 controllers/worker_position_controller.go |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/controllers/worker_position_controller.go b/controllers/worker_position_controller.go
index 5512fc9..c66e5c3 100644
--- a/controllers/worker_position_controller.go
+++ b/controllers/worker_position_controller.go
@@ -8,7 +8,6 @@
 	"silkserver/extend/util"
 	"silkserver/middleware"
 	"silkserver/models"
-	"silkserver/utils"
 )
 
 type WorkerPositionController struct {
@@ -31,12 +30,10 @@
 	}
 
 	//鏌ヨ鏄惁閲嶅
-	old, err := models.NewWorkerPositionSearch().SetWorkerID(params.WorkerId).First()
+	_, err = models.NewWorkerPositionSearch().SetWorkerID(params.WorkerId).SetOverlappingDate(params.StartDate, params.EndDate).First()
 	if err == nil {
-		if utils.IsOverlap(params.StartDate, params.EndDate, old.StartDate, old.EndDate) {
-			util.ResponseFormat(c, code.RequestParamError, "璇峰嬁閲嶅娣诲姞")
-			return
-		}
+		util.ResponseFormat(c, code.RequestParamError, "鏃堕棿鑼冨洿鍜岃宸ヤ汉浠ュ線娣诲姞璁板綍鏈夐噸澶嶏紝璇锋鏌�")
+		return
 	}
 
 	record := &models.WorkerPosition{
@@ -83,6 +80,15 @@
 		return
 	}
 
+	//鏌ヨ鏄惁閲嶅
+	old, err := models.NewWorkerPositionSearch().SetWorkerID(params.WorkerId).First()
+	if err == nil {
+		if old.ID != params.Id {
+			util.ResponseFormat(c, code.RequestParamError, "鏃堕棿鑼冨洿鍜岃宸ヤ汉浠ュ線娣诲姞璁板綍鏈夐噸澶嶏紝璇锋鏌�")
+			return
+		}
+	}
+
 	record := &models.WorkerPosition{
 		StartDate:           params.StartDate,
 		EndDate:             params.EndDate,
@@ -122,7 +128,7 @@
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
 		return
 	}
-	WorkerPositions, total, err := models.NewWorkerPositionSearch().SetPage(params.Page, params.PageSize).SetKeyword(params.Keyword).SetPreload().Find()
+	WorkerPositions, total, err := models.NewWorkerPositionSearch().SetPage(params.Page, params.PageSize).SetKeyword(params.Keyword).SetPreload().SetOrder("id desc").Find()
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鏌ヨ澶辫触")
 		return

--
Gitblit v1.8.0