This commit is contained in:
2025-01-07 14:52:54 +08:00
parent ab08f7e169
commit d7b004ea80
4 changed files with 117 additions and 9 deletions

View File

@@ -8,11 +8,10 @@ import (
type DevUpData struct {
Id int `gorm:"column:id;primaryKey" json:"id"`
Imei string `gorm:"column:imei;comment:IMEI;type:varchar(255)" json:"imei"`
Sum string `gorm:"column:sum;comment:IMEI;type:varchar(255)" json:"sum"`
Time string `gorm:"column:time;comment:IMEI;type:varchar(255)" json:"time"`
Mile string `gorm:"column:mile;comment:IMEI;type:varchar(255)" json:"mile"`
Imei string `gorm:"column:imei;unique;comment:IMEI;type:varchar(255)" json:"imei"`
Sum string `gorm:"column:sum;comment:总次数;type:varchar(255)" json:"sum"`
Time string `gorm:"column:time;comment:总运行时间;type:varchar(255)" json:"time"`
Mile string `gorm:"column:mile;comment:总里程;type:varchar(255)" json:"mile"`
Created time.Time `gorm:"column:created;autoCreateTime;comment:创建时间" json:"created"`
Updated time.Time `gorm:"column:updated;autoUpdateTime;comment:修改时间" json:"updated"`

81
repository/dev_up_data.go Normal file
View File

@@ -0,0 +1,81 @@
package repository
import (
"DT/global"
"DT/model"
)
type DevUpData struct {
}
//func (r *Device) GetDeviceList(qr map[string]interface{}) (p []*model.Device, err error) {
// db := global.Db
// for key, value := range qr {
// db = db.Where(key, value)
// }
// err = db.Order("id DESC").Find(&p).Error
// return
//}
//func (r *Device) GetDevicePage(req *form.DevicePageReq) (count int64, list []*device_model.Device, err error) {
// db := global.Db.Model(&device_model.Device{})
// //for key, value := range qr {
// // db = db.Where(key, value)
// //}
// //if req.DriverId > 0 {
// // db = db.Where("driver_id = ?", req.DriverId)
// //}
// err = db.Count(&count).Error
// if err != nil {
// return
// }
// //err = db.Offset((req.Page.GetPageIndex() - 1) * req.Page.GetPageSize()).Limit(req.Page.GetPageSize()).Order("id desc").Preload("Rule").Find(&list).Error
// err = db.Offset((req.Page.GetPageIndex() - 1) * req.Page.GetPageSize()).Limit(req.Page.GetPageSize()).Order("id desc").Find(&list).Error
// return
//}
func (r *DevUpData) CreateDevUpData(d *model.DevUpData) error {
return global.Db.Create(d).Error
}
func (r *DevUpData) UpdateDevUpData(d *model.DevUpData) error {
return global.Db.Save(d).Error
}
func (r *DevUpData) GetDevUpData(qr map[string]interface{}) (d *model.DevUpData, err error) {
db := global.Db
for key, value := range qr {
db = db.Where(key, value)
}
err = db.First(&d).Error
return
}
//func (r *User) GetPeakValleyQuarterPage(req *form.PeakValleyQuarterListReq) (count int64, list []*peak_valley_model.PeakValleyQuarter, err error) {
// db := global.Db.Model(&peak_valley_model.PeakValleyQuarter{})
//
// //for key, value := range qr {
// // db = db.Where(key, value)
// //}
// err = db.Count(&count).Error
// if err != nil {
// return
// }
// err = db.Offset((req.Page.GetPageIndex() - 1) * req.Page.GetPageSize()).Limit(req.Page.GetPageSize()).Order("id desc").Preload("Rule").Find(&list).Error
// return
//}
//func (r *User) CreatePeakValleyQuarter(d *user_model.User) error {
// return global.Db.Create(d).Error
//}
//func (r *User) UpdatePeakValleyQuarter(d *user_model.User) error {
// return global.Db.Save(d).Error
//}
//func (r *User) GetUser(qr map[string]interface{}) (d *user_model.User, err error) {
// db := global.Db
// for key, value := range qr {
// db = db.Where(key, value)
// }
// err = db.First(&d).Error
// return
//}

View File

@@ -2,6 +2,7 @@ package repository
type groupRepository struct {
Device
DevUpData
}
var GroupRepositorys = new(groupRepository)

View File

@@ -1,9 +1,13 @@
package tcpserver
import (
"DT/model"
"DT/repository"
"encoding/json"
"errors"
"fmt"
"gorm.io/gorm"
"strconv"
"time"
)
@@ -46,16 +50,16 @@ func (s *Server) HandleAuth(client *Client, message []byte) error {
return fmt.Errorf("unauthorized")
}
model, err := repository.GroupRepositorys.Device.GetDevice(map[string]interface{}{"imei": msg.Imei})
mod, err := repository.GroupRepositorys.Device.GetDevice(map[string]interface{}{"imei": msg.Imei})
if err != nil {
return fmt.Errorf("设备不存在")
}
if msg.Pwd != model.DriverPass {
if msg.Pwd != mod.DriverPass {
return fmt.Errorf("设备密码不正确")
}
model.DriverVer = msg.Ver
err = repository.GroupRepositorys.Device.UpdateDevice(model)
mod.DriverVer = msg.Ver
err = repository.GroupRepositorys.Device.UpdateDevice(mod)
if err != nil {
return fmt.Errorf("更新设备版本号失败")
}
@@ -129,6 +133,29 @@ func (s *Server) TimingReporting(client *Client, message []byte) error {
if msg.Type != "up" {
return fmt.Errorf("unauthorized")
}
mod, err := repository.GroupRepositorys.DevUpData.GetDevUpData(map[string]interface{}{"imei": client.Imei})
fmt.Println(mod)
if err == nil {
mod.Mile = strconv.Itoa(msg.MessageUpData.Mile)
mod.Sum = strconv.Itoa(msg.MessageUpData.Sum)
mod.Time = strconv.Itoa(msg.MessageUpData.Time)
err = repository.GroupRepositorys.DevUpData.UpdateDevUpData(mod)
if err != nil {
return fmt.Errorf("更新设备定时上报信息错误\n")
}
} else if errors.Is(err, gorm.ErrRecordNotFound) {
devUpData := &model.DevUpData{}
devUpData.Imei = client.Imei
devUpData.Mile = strconv.Itoa(msg.MessageUpData.Mile)
devUpData.Sum = strconv.Itoa(msg.MessageUpData.Sum)
devUpData.Time = strconv.Itoa(msg.MessageUpData.Time)
err = repository.GroupRepositorys.DevUpData.CreateDevUpData(devUpData)
if err != nil {
return fmt.Errorf("设备定时上报存储失败\n")
}
}
fmt.Printf("设备定时上报数据:%v\r\n", msg.MessageUpData)
return nil
}