lishihai
2024-06-14 7af977218be09a1ff8e9ac6740dfd22983aa33d2
属性值和对象-AttributeValue-wms_attribute_value-的曾删改
2个文件已添加
1个文件已修改
136 ■■■■■ 已修改文件
controllers/attribute_value.go 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
request/attribute_value.go 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/router.go 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/attribute_value.go
New file
@@ -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, "参数解析失败,数据类型错误")
        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, "参数解析失败,数据类型错误")
        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, "删除成功")
}
request/attribute_value.go
New file
@@ -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"`
}
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
}