package manage
|
|
import (
|
"fmt"
|
"strconv"
|
"vamicro/iotData-service/model"
|
"vamicro/iotData-service/serializer"
|
)
|
|
type ListDeviceService struct {
|
BatteryStart string `form:"batteryStart" json:"batteryStart"` //电量左区间
|
BatteryEnd string `form:"batteryEnd" json:"batteryEnd"` //电量👉区间
|
SN string `form:"sn" json:"sn"` //设备编码
|
Page int `form:"page" json:"page"` //页码
|
PageSize int `form:"pageSize" json:"pageSize"` //分页大小
|
}
|
|
func (service *ListDeviceService) List() serializer.Response {
|
devices := []model.Device{}
|
|
var total int64
|
code := 200
|
db := model.DB.Table("devices")
|
if service.SN != "" {
|
obj := model.DrawZone{}
|
err := obj.FindByName(service.SN)
|
if err == nil {
|
return serializer.Response{
|
Status: 200,
|
Msg: "zone",
|
Data: obj,
|
}
|
} else {
|
fmt.Println("find zone error:::", err)
|
}
|
db = db.Where("sn like ?", "%"+service.SN+"%")
|
}
|
start, _ := strconv.Atoi(service.BatteryStart)
|
end, _ := strconv.Atoi(service.BatteryEnd)
|
|
if service.BatteryStart != "" && service.BatteryEnd != "" {
|
db = db.Where("battery BETWEEN ? AND ?", start, end)
|
} else if service.BatteryStart != "" {
|
db = db.Where("battery >= ?", start)
|
} else if service.BatteryEnd != "" {
|
db = db.Where("battery <= ?", end)
|
}
|
|
if err := db.Count(&total).Error; err != nil {
|
code = 30001
|
return serializer.Response{
|
Status: code,
|
Msg: "数据库错误 count",
|
Error: err.Error(),
|
}
|
}
|
if service.PageSize == 0 && service.Page == 0 {
|
if err := db.Find(&devices).Error; err != nil {
|
code = 30001
|
return serializer.Response{
|
Status: code,
|
Msg: "数据库错误",
|
Error: err.Error(),
|
}
|
}
|
} else {
|
if err := db.Limit(service.PageSize).Offset((service.Page - 1) * service.PageSize).Find(&devices).Error; err != nil {
|
code = 30001
|
return serializer.Response{
|
Status: code,
|
Msg: "数据库错误",
|
Error: err.Error(),
|
}
|
}
|
}
|
return serializer.BuildListResponse(serializer.BuildDevicesRsp(devices), uint(total))
|
}
|