yinbentan
2024-07-16 93c71a94d77ffe1f36654decc0bada0a2ac27c88
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
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.AddAttributeValue 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.UpdateAttributeValue 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   删除属性值和对象
// @Param        id    path        string            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, "删除成功")
}
 
// ListAttributeValue
// @Tags      属性值和对象
// @Summary   查询属性值和对象 分页条件筛选Value like '%v%' 模糊查询
// @Produce   application/json
// object  body  request.OperationList true  "查询参数"
// @Success   200 {object} util.Response "成功"
// @Router    /api-wms/v1/attributeValue/list [post]
func (slf *AttributeValueController) ListAttributeValue(c *gin.Context) {
    var params request.AttributeValueList
    if err := c.BindJSON(&params); err != nil {
        util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
        return
    }
    search := models.NewAttributeValueSearch()
    search.SetPage(params.Page, params.PageSize)
    if params.EntityID != "" {
        search.SetEntityID(params.EntityID)
    }
    if params.AttributeID != 0 {
        search.SetAttributeID(params.AttributeID)
    }
    if params.Value != "" {
        search.SetValue(params.Value)
    }
    list, total, err := search.Find()
    if err != nil {
        util.ResponseFormat(c, code.RequestError, "查找失败:"+err.Error())
        return
    }
    util.ResponseFormatListWithPage(c, code.Success, list, int(total), params.Page, params.PageSize)
}
 
// PrimaryAttributeValue
// @Tags      属性值和对象
// @Summary   查询属性值和对象 通过主键ID查询
// object  body  request.OperationList true  "查询参数"
// @Success   200 {object} util.Response "成功"
// @Router    /api-wms/v1/attributeValue/primary/{id}  [get]
func (slf *AttributeValueController) PrimaryAttributeValue(c *gin.Context) {
    id, _ := strconv.ParseUint(c.Param("id"), 10, 64)
    if id == 0 {
        util.ResponseFormat(c, code.RequestParamError, "无效id")
        return
    }
    attributeValue, err := models.NewAttributeValueSearch().SetID(uint(id)).First()
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "查询失败")
        return
    }
    util.ResponseFormat(c, code.Success, attributeValue)
}