|
@@ -0,0 +1,129 @@
|
|
|
+package dao
|
|
|
+
|
|
|
+import "iot_manager_service/app/operation/model"
|
|
|
+
|
|
|
+type ViewsAllCodeDevice struct {
|
|
|
+ TenantId int `json:"tenantId"`
|
|
|
+ DeviceType int `json:"deviceType"`
|
|
|
+ DeviceTypeName string `json:"deviceTypeName"`
|
|
|
+ MonthTime string `json:"monthTime,omitempty"`
|
|
|
+ YearTime string `json:"yearTime,omitempty"`
|
|
|
+ OffLineCountT int `json:"offLine"`
|
|
|
+ AlarmCountT int `json:"countAlarm"`
|
|
|
+
|
|
|
+ DeviceType1CountT int `json:"deviceType1CountT"`
|
|
|
+ DeviceType2CountT int `json:"deviceType2CountT"`
|
|
|
+ DeviceType3CountT int `json:"deviceType3CountT"`
|
|
|
+ DeviceType4CountT int `json:"deviceType4CountT"`
|
|
|
+ DeviceType5CountT int `json:"deviceType5CountT"`
|
|
|
+ DeviceType6CountT int `json:"deviceType6CountT"`
|
|
|
+ DeviceType7CountT int `json:"deviceType7CountT"`
|
|
|
+ DeviceType8CountT int `json:"deviceType8CountT"`
|
|
|
+ DeviceType9CountT int `json:"deviceType9CountT"`
|
|
|
+ DeviceType10CountT int `json:"deviceType10CountT"`
|
|
|
+ DeviceType11CountT int `json:"deviceType11CountT"`
|
|
|
+ DeviceType12CountT int `json:"deviceType12CountT"`
|
|
|
+ DeviceType13CountT int `json:"deviceType13CountT"`
|
|
|
+ DeviceType14CountT int `json:"deviceType14CountT"`
|
|
|
+ DeviceType15CountT int `json:"deviceType15CountT"`
|
|
|
+ CountT int `json:"countT"`
|
|
|
+}
|
|
|
+
|
|
|
+func (ViewsAllCodeDevice) TableName() string {
|
|
|
+ return "view_all_code"
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func (v ViewsAllCodeDevice) GetDeviceCount() ([]ViewsAllCodeDevice, error) {
|
|
|
+ var list []ViewsAllCodeDevice
|
|
|
+ err := Db.Debug().Model(&v).Raw("SELECT device_type,device_type_name,count(*) as count_t FROM view_all_code where tenant_id=? GROUP BY device_type,device_type_name", v.TenantId).Scan(&list).Error
|
|
|
+ return list, err
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func (v ViewsAllCodeDevice) GetMonthDeviceCount(req model.ResuestDeviceCountFilter) ([]ViewsAllCodeDevice, error) {
|
|
|
+ var list []ViewsAllCodeDevice
|
|
|
+ sql := `
|
|
|
+SELECT
|
|
|
+ month_time,
|
|
|
+ sum(count_t) AS count_t,
|
|
|
+ SUM(CASE device_type WHEN 1 THEN count_t ELSE 0 END) as device_type1_count_t,
|
|
|
+ SUM(CASE device_type WHEN 2 THEN count_t ELSE 0 END) as device_type2_count_t,
|
|
|
+ SUM(CASE device_type WHEN 3 THEN count_t ELSE 0 END) as device_type3_count_t,
|
|
|
+ SUM(CASE device_type WHEN 4 THEN count_t ELSE 0 END) as device_type4_count_t,
|
|
|
+ SUM(CASE device_type WHEN 5 THEN count_t ELSE 0 END) as device_type5_count_t,
|
|
|
+ SUM(CASE device_type WHEN 6 THEN count_t ELSE 0 END) as device_type6_count_t,
|
|
|
+ SUM(CASE device_type WHEN 7 THEN count_t ELSE 0 END) as device_type7_count_t,
|
|
|
+ SUM(CASE device_type WHEN 8 THEN count_t ELSE 0 END) as device_type8_count_t,
|
|
|
+ SUM(CASE device_type WHEN 9 THEN count_t ELSE 0 END) as device_type9_count_t,
|
|
|
+ SUM(CASE device_type WHEN 10 THEN count_t ELSE 0 END) as device_type10_count_t,
|
|
|
+ SUM(CASE device_type WHEN 11 THEN count_t ELSE 0 END) as device_type11_count_t,
|
|
|
+ SUM(CASE device_type WHEN 12 THEN count_t ELSE 0 END) as device_type12_count_t,
|
|
|
+ SUM(CASE device_type WHEN 13 THEN count_t ELSE 0 END) as device_type13_count_t,
|
|
|
+ SUM(CASE device_type WHEN 14 THEN count_t ELSE 0 END) as device_type14_count_t,
|
|
|
+ SUM(CASE device_type WHEN 15 THEN count_t ELSE 0 END) as device_type15_count_t
|
|
|
+FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ device_type,
|
|
|
+ count(*) AS count_t,
|
|
|
+ date_format( create_time, '%Y-%m' ) AS month_time
|
|
|
+ FROM
|
|
|
+ view_all_code
|
|
|
+ where tenant_id=? and create_time >= ? and create_time<=?
|
|
|
+ GROUP BY
|
|
|
+ device_type,
|
|
|
+ month_time
|
|
|
+ ORDER BY
|
|
|
+ month_time DESC
|
|
|
+ ) a
|
|
|
+GROUP BY
|
|
|
+ month_time
|
|
|
+`
|
|
|
+ err := Db.Debug().Model(&v).Raw(sql, v.TenantId, req.StartTime, req.EndTime).Scan(&list).Error
|
|
|
+ return list, err
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func (v ViewsAllCodeDevice) GetYearDeviceCount(req model.ResuestDeviceCountFilter) ([]ViewsAllCodeDevice, error) {
|
|
|
+ var list []ViewsAllCodeDevice
|
|
|
+ sql := `
|
|
|
+SELECT
|
|
|
+ year_time,
|
|
|
+ sum(count_t) AS count_t,
|
|
|
+ SUM(CASE device_type WHEN 1 THEN count_t ELSE 0 END) as device_type1_count_t,
|
|
|
+ SUM(CASE device_type WHEN 2 THEN count_t ELSE 0 END) as device_type2_count_t,
|
|
|
+ SUM(CASE device_type WHEN 3 THEN count_t ELSE 0 END) as device_type3_count_t,
|
|
|
+ SUM(CASE device_type WHEN 4 THEN count_t ELSE 0 END) as device_type4_count_t,
|
|
|
+ SUM(CASE device_type WHEN 5 THEN count_t ELSE 0 END) as device_type5_count_t,
|
|
|
+ SUM(CASE device_type WHEN 6 THEN count_t ELSE 0 END) as device_type6_count_t,
|
|
|
+ SUM(CASE device_type WHEN 7 THEN count_t ELSE 0 END) as device_type7_count_t,
|
|
|
+ SUM(CASE device_type WHEN 8 THEN count_t ELSE 0 END) as device_type8_count_t,
|
|
|
+ SUM(CASE device_type WHEN 9 THEN count_t ELSE 0 END) as device_type9_count_t,
|
|
|
+ SUM(CASE device_type WHEN 10 THEN count_t ELSE 0 END) as device_type10_count_t,
|
|
|
+ SUM(CASE device_type WHEN 11 THEN count_t ELSE 0 END) as device_type11_count_t,
|
|
|
+ SUM(CASE device_type WHEN 12 THEN count_t ELSE 0 END) as device_type12_count_t,
|
|
|
+ SUM(CASE device_type WHEN 13 THEN count_t ELSE 0 END) as device_type13_count_t,
|
|
|
+ SUM(CASE device_type WHEN 14 THEN count_t ELSE 0 END) as device_type14_count_t,
|
|
|
+ SUM(CASE device_type WHEN 15 THEN count_t ELSE 0 END) as device_type15_count_t
|
|
|
+FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ device_type,
|
|
|
+ count(*) AS count_t,
|
|
|
+ date_format( create_time, '%Y' ) AS year_time
|
|
|
+ FROM
|
|
|
+ view_all_code
|
|
|
+ where tenant_id=?
|
|
|
+ GROUP BY
|
|
|
+ device_type,
|
|
|
+ year_time
|
|
|
+ ORDER BY
|
|
|
+ year_time DESC
|
|
|
+ ) a
|
|
|
+GROUP BY
|
|
|
+ year_time
|
|
|
+`
|
|
|
+ err := Db.Debug().Model(&v).Raw(sql, v.TenantId).Scan(&list).Error
|
|
|
+ return list, err
|
|
|
+}
|