From 7af977218be09a1ff8e9ac6740dfd22983aa33d2 Mon Sep 17 00:00:00 2001
From: lishihai <dslsh@dscom>
Date: 星期五, 14 六月 2024 11:47:25 +0800
Subject: [PATCH] 属性值和对象-AttributeValue-wms_attribute_value-的曾删改

---
 request/attribute_value.go     |   13 ++++
 controllers/attribute_value.go |  115 ++++++++++++++++++++++++++++++++++++++
 router/router.go               |    8 ++
 3 files changed, 136 insertions(+), 0 deletions(-)

diff --git a/controllers/attribute_value.go b/controllers/attribute_value.go
new file mode 100644
index 0000000..a641d34
--- /dev/null
+++ b/controllers/attribute_value.go
@@ -0,0 +1,115 @@
+package controllers
+
+import (
+	"github.com/gin-gonic/gin"
+	"strconv"
+	"wms/extend/code"
+	"wms/extend/util"
+	"wms/models"
+	"wms/pkg/logx"
+	"wms/pkg/structx"
+	"wms/request"
+)
+
+type AttributeValueController struct {
+}
+
+// AddAttributeValue
+// @Tags      灞炴�у�煎拰瀵硅薄
+// @Summary   娣诲姞灞炴�у�煎拰瀵硅薄
+// @Produce   application/json
+// @Param     object  body  request.AttributeValue true  "灞炴�у�煎拰瀵硅薄淇℃伅"
+// @Success   200 {object} util.Response "鎴愬姛"
+// @Router    /api-wms/v1/attributeValue/add [post]
+func (slf *AttributeValueController) AddAttributeValue(c *gin.Context) {
+	var params request.AddAttributeValue
+	var attributeValue models.AttributeValue
+	if err := c.BindJSON(&params); err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		return
+	}
+	if err := structx.AssignTo(params, &attributeValue); err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鏁版嵁杞崲閿欒"+err.Error())
+		return
+	}
+	attributeValueSearch := models.NewAttributeValueSearch()
+	attributeValues, err := attributeValueSearch.FindByQueryNotTotal("entity_id = ? AND attribute_id = ?", []interface{}{attributeValue.EntityID, attributeValue.AttributeID})
+	if len(attributeValues) > 0 {
+		util.ResponseFormat(c, code.SaveFail, "娣诲姞澶辫触锛氬睘鎬у�煎拰瀵硅薄宸插瓨鍦�")
+		return
+	}
+	if err != nil {
+		util.ResponseFormat(c, code.SaveFail, "娣诲姞澶辫触锛�"+err.Error())
+		return
+	}
+	err = attributeValueSearch.Create(&attributeValue)
+	if err != nil {
+		logx.Errorf("AttributeValue create err: %v", err)
+		util.ResponseFormat(c, code.SaveFail, "娣诲姞澶辫触锛�"+err.Error())
+		return
+	}
+	util.ResponseFormat(c, code.Success, "娣诲姞鎴愬姛")
+}
+
+// UpdateAttributeValue
+// @Tags      灞炴�у�煎拰瀵硅薄
+// @Summary   鏇存柊灞炴�у�煎拰瀵硅薄
+// @Produce   application/json
+// @Param     object  body  request.AttributeValue true  "灞炴�у�煎拰瀵硅薄淇℃伅"
+// @Success   200 {object} util.Response "鎴愬姛"
+// @Router    /api-wms/v1/attributeValue/update [post]
+func (slf *AttributeValueController) UpdateAttributeValue(c *gin.Context) {
+	var params request.UpdateAttributeValue
+	if err := c.BindJSON(&params); err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		return
+	}
+
+	attributeValueSearch := models.NewAttributeValueSearch()
+	attributeValue, err := attributeValueSearch.SetID(params.ID).First()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "灞炴�у�煎拰瀵硅薄涓嶅瓨鍦�")
+		return
+	}
+	attributeValues, err := attributeValueSearch.FindByQueryNotTotal("entity_id = ? AND attribute_id = ? AND id != ?", []interface{}{params.EntityID, params.AttributeID, params.ID})
+	if len(attributeValues) > 0 {
+		util.ResponseFormat(c, code.SaveFail, "淇敼澶辫触锛氬睘鎬у�煎拰瀵硅薄宸插瓨鍦�")
+		return
+	}
+	if err != nil {
+		util.ResponseFormat(c, code.SaveFail, "淇敼澶辫触锛�"+err.Error())
+		return
+	}
+	attributeValue.EntityID = params.EntityID
+	attributeValue.AttributeID = params.AttributeID
+	attributeValue.Value = params.Value
+	err = attributeValueSearch.Save(attributeValue)
+	if err != nil {
+		logx.Errorf("AttributeValue update err: %v", err)
+		util.ResponseFormat(c, code.SaveFail, "淇敼澶辫触锛�"+err.Error())
+		return
+	}
+	util.ResponseFormat(c, code.Success, "淇敼鎴愬姛")
+}
+
+// DeleteAttributeValue
+// @Tags      灞炴�у�煎拰瀵硅薄
+// @Summary   鍒犻櫎灞炴�у�煎拰瀵硅薄
+// @Produce   application/json
+// @Param		id	path		unit			true	"id"
+// @Success   200 {object} util.Response "鎴愬姛"
+// @Router    /api-wms/v1/attributeValue/delete/{id} [delete]
+func (slf *AttributeValueController) DeleteAttributeValue(c *gin.Context) {
+	id, _ := strconv.ParseUint(c.Param("id"), 10, 64)
+	if id == 0 {
+		util.ResponseFormat(c, code.RequestParamError, "鏃犳晥id")
+		return
+	}
+	err := models.NewAttributeValueSearch().SetID(uint(id)).Delete()
+	if err != nil {
+		logx.Errorf("AttributeValue delete err: %v", err)
+		util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎澶辫触")
+		return
+	}
+	util.ResponseFormat(c, code.Success, "鍒犻櫎鎴愬姛")
+}
diff --git a/request/attribute_value.go b/request/attribute_value.go
new file mode 100644
index 0000000..0add8f4
--- /dev/null
+++ b/request/attribute_value.go
@@ -0,0 +1,13 @@
+package request
+
+type AddAttributeValue struct {
+	EntityID    string `json:"entityId"`
+	AttributeID uint   `json:"attributeId"`
+	Value       string `json:"value"`
+}
+type UpdateAttributeValue struct {
+	ID          uint   `json:"id"`
+	EntityID    string `json:"entityId"`
+	AttributeID uint   `json:"attributeId"`
+	Value       string `json:"value"`
+}
diff --git a/router/router.go b/router/router.go
index b3ab526..f51224c 100644
--- a/router/router.go
+++ b/router/router.go
@@ -188,5 +188,13 @@
 		codeApi.POST("getAutoCode", codeApiController.GetAutoCode) //鑾峰彇鑷姩缂栫爜
 	}
 
+	attributeValueController := new(controllers.AttributeValueController)
+	attributeValueAPI := r.Group(urlPrefix + "/attributeValue")
+	{
+		attributeValueAPI.POST("add", attributeValueController.AddAttributeValue)
+		attributeValueAPI.POST("update", attributeValueController.UpdateAttributeValue)
+		attributeValueAPI.DELETE("delete/:id", attributeValueController.DeleteAttributeValue) //鍒犻櫎浣嶇疆
+	}
+
 	return r
 }

--
Gitblit v1.8.0