qixiaoning
2025-08-21 e38654fe9eff4562da4f18f8f018aed7879d493c
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
package manage
 
import (
    "time"
    "vamicro/iotData-service/model"
    "vamicro/iotData-service/serializer"
)
 
type LowBatteryService struct {
    Sn       string `form:"sn" json:"sn"`
    ZoneName string `form:"zoneName" json:"zoneName"`
}
 
func (service *LowBatteryService) Show() serializer.Response {
    code := 200
    warns := []model.Warning{}
    db := model.DB.Table("warnings")
 
    if service.Sn != "" {
        db = db.Where("sn = ?", service.Sn)
    }
    dayStr := time.Now().AddDate(0, 0, -300).Format("2006-01-02")
 
    if err := db.Where("is_low_battery = 1").Where("created_at between ? and ?", dayStr, GetNowStr()).Order("created_at desc").Find(&warns).Error; err != nil {
        code = 30001
        return serializer.Response{
            Status: code,
            Msg:    "数据库错误",
            Error:  err.Error(),
        }
    }
    var total int64
    if err := db.Where("is_low_battery = 1").Where("created_at between ? and ?", dayStr, GetNowStr()).Count(&total).Error; err != nil {
        code = 30001
        return serializer.Response{
            Status: code,
            Msg:    "数据库错误 count",
            Error:  err.Error(),
        }
    }
    return serializer.BuildListResponse(serializer.BuildWarnsRsp(warns), uint(total))
}
 
func (service *LowBatteryService) ShowOutBound() serializer.Response {
    code := 200
    warns := []model.Warning{}
    db := model.DB.Table("warnings")
 
    if service.Sn != "" {
        db = db.Where("sn = ?", service.Sn)
    }
    dayStr := time.Now().AddDate(0, 0, -300).Format("2006-01-02")
 
    if err := db.Where("is_out_bound = 1").Where("created_at between ? and ?", dayStr, GetNowStr()).Order("created_at desc").Find(&warns).Error; err != nil {
        code = 30001
        return serializer.Response{
            Status: code,
            Msg:    "数据库错误",
            Error:  err.Error(),
        }
    }
    var total int64
    if err := db.Where("is_out_bound = 1").Where("created_at between ? and ?", dayStr, GetNowStr()).Count(&total).Error; err != nil {
        code = 30001
        return serializer.Response{
            Status: code,
            Msg:    "数据库错误 count",
            Error:  err.Error(),
        }
    }
    return serializer.BuildListResponse(serializer.BuildWarnsRsp(warns), uint(total))
}
 
func (service *LowBatteryService) ShowHistory() serializer.Response {
    code := 200
    warns := []model.Warning{}
    db := model.DB.Table("warnings")
 
    if service.Sn != "" {
        db = db.Where("sn = ?", service.Sn)
    }
    dayStr := time.Now().AddDate(0, 0, -300).Format("2006-01-02")
 
    if err := db.Where("is_low_battery = 1 or is_out_bound = 1").Where("created_at between ? and ?", dayStr, GetNowStr()).Order("created_at desc").Find(&warns).Error; err != nil {
        code = 30001
        return serializer.Response{
            Status: code,
            Msg:    "数据库错误",
            Error:  err.Error(),
        }
    }
    var total int64
    if err := db.Where("is_low_battery = 1 or is_out_bound = 1").Where("created_at between ? and ?", dayStr, GetNowStr()).Count(&total).Error; err != nil {
        code = 30001
        return serializer.Response{
            Status: code,
            Msg:    "数据库错误 count",
            Error:  err.Error(),
        }
    }
    return serializer.BuildListResponse(serializer.BuildWarnsRsp(warns), uint(total))
}
 
func (service *LowBatteryService) Handle() serializer.Response {
    code := 200
    warns := []model.Warning{}
    db := model.DB.Table("warnings")
 
    if service.Sn != "" {
        db = db.Where("sn = ?", service.Sn)
    }
    dayStr := time.Now().AddDate(0, 0, -300).Format("2006-01-02")
 
    if err := db.Where("is_low_battery = 1 or is_out_bound = 1").Where("created_at between ? and ?", dayStr, GetNowStr()).Find(&warns).Error; err != nil {
        code = 30001
        return serializer.Response{
            Status: code,
            Msg:    "数据库错误",
            Error:  err.Error(),
        }
    }
 
    return serializer.Response{
        Status: code,
        Data:   warns,
    }
}