lishihai
2024-06-14 7af977218be09a1ff8e9ac6740dfd22983aa33d2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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, "删除成功")
}