forked from yunnet/gardens
/
EquipmentMeterType.go
187 lines (160 loc) · 4.62 KB
/
EquipmentMeterType.go
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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
package models
import (
"time"
"github.com/astaxie/beego/orm"
"fmt"
)
type (
EquipmentMeterType struct {
Id int `orm:"column(id)" form:"Id"`
MeterTypeNO string `orm:"column(meter_type_no)" form:"MeterTypeNO"`
MeterType string `orm:"column(meter_type)" form:"MeterType"`
VendorNO string `orm:"column(vendor_no)" form:"VendorNO"`
PtAddress string `orm:"column(pt_address)" form:"PtAddress"`
CtAddress string `orm:"column(ct_address)" form:"CtAddress"`
ThreePhase int `orm:"column(three_phase)" form:"ThreePhase"`
Used int `orm:"column(tag)" form:"Used"`
CreateUser string `orm:"column(createuser)" form:"CreateUser"`
CreateDate time.Time `orm:"auto_now_add;type(datetime);column(createdate)" form:"CreateDate"`
ChangeUser string `orm:"column(changeuser)" form:"ChangeUser"`
ChangeDate time.Time `orm:"auto_now;type(datetime);column(changedate)" form:"ChangeDate"`
}
EquipmentMeterTypeGrid struct {
Id int
MeterTypeNO string
MeterType string
VendorNO string
VendorDesc string
PtAddress string
CtAddress string
ThreePhase int
Used int
CreateUser string
CreateDate time.Time
ChangeUser string
ChangeDate time.Time
}
EquipmentMeterTypeQueryParam struct {
BaseQueryParam
MeterTypeNO string
MeterType string
Used string //为空不查询,有值精确查询
}
)
func init() {
orm.RegisterModel(new(EquipmentMeterType))
}
func EquipmentMeterTypeTBName() string {
return "equipment_meter_type"
}
func (this *EquipmentMeterType) TableName() string {
return EquipmentMeterTypeTBName()
}
func EquipmentMeterTypeSelect(params *EquipmentMeterTypeQueryParam) ([]*EquipmentMeterType, error) {
query := orm.NewOrm().QueryTable(EquipmentMeterTypeTBName())
params.Limit = -1
sortorder := "Id"
switch params.Sort {
case "Id":
sortorder = "Id"
case "Used":
sortorder = "tag"
}
if params.Order == "desc" {
sortorder = "-" + sortorder
}
query = query.Filter("tag__istartswith", params.Used)
data := make([]*EquipmentMeterType, 0)
_, err := query.OrderBy(sortorder).Limit(params.Limit, params.Offset).All(&data)
if (err != nil) {
return nil, err
}
return data, nil
}
func EquipmentMeterTypePageList(params *EquipmentMeterTypeQueryParam) ([]*EquipmentMeterTypeGrid, int64) {
//默认排序
sortorder := "Id"
switch params.Sort {
case "Id":
sortorder = "Id"
case "Used":
sortorder = "tag"
}
if params.Order == "desc" {
sortorder += " DESC"
}
query := orm.NewOrm()
lists := make([]*EquipmentMeterTypeGrid, 0)
sql := fmt.Sprintf(`SELECT mt.id,
mt.meter_type_no as meter_type_n_o,
mt.meter_type,
mt.vendor_no as vendor_n_o,
ev.vendor_desc,
mt.pt_address,
mt.ct_address,
mt.three_phase,
mt.tag used,
mt.createuser as create_user,
mt.createdate as create_date,
mt.changeuser as change_user,
mt.changedate as change_date
FROM equipment_meter_type AS mt
LEFT JOIN equipment_vendor AS ev ON mt.vendor_no = ev.vendor_no
WHERE mt.meter_type_no LIKE '%s%%'
AND mt.meter_type LIKE '%%%s%%'
ORDER BY %s
`,
params.MeterTypeNO,
params.MeterType,
sortorder,
)
total, err := query.Raw(sql).QueryRows(&lists)
if err != nil {
return nil, 0
}
sql = sql + fmt.Sprintf(" LIMIT %d, %d", params.Offset, params.Limit)
_, err = query.Raw(sql).QueryRows(&lists)
if err != nil {
return nil, 0
}
return lists, total
}
func EquipmentMeterTypeDataList(params *EquipmentMeterTypeQueryParam) [] *EquipmentMeterTypeGrid {
params.Limit = -1
params.Sort = "Id"
params.Order = "asc"
data, _ := EquipmentMeterTypePageList(params)
return data
}
func EquipmentMeterTypeBatchDelete(ids []int) (int64, error) {
query := orm.NewOrm()
sql := "DELETE from equipment_meter_type WHERE id in(?)"
res, err := query.Raw(sql, ids).Exec()
if err != nil {
return 0, err
}
num, _ := res.RowsAffected()
return num, nil
}
func EquipmentMeterTypeOne(id int) (*EquipmentMeterType, error) {
o := orm.NewOrm()
m := EquipmentMeterType{Id: id}
err := o.Read(&m)
if err != nil {
return nil, err
}
return &m, nil
}
func EquipmentMeterTypeAdd(meterType *EquipmentMeterType) (int64, error) {
id, err := orm.NewOrm().Insert(meterType)
if err != nil {
return 0, err
}
return id, nil
}
func (this *EquipmentMeterType) Update(fields ...string) error {
if _, err := orm.NewOrm().Update(this, fields...); err != nil {
return err
}
return nil
}