From d7b004ea802ecd76601267590f8b8d5be3890ed2 Mon Sep 17 00:00:00 2001 From: iuu <2167162990@qq.com> Date: Tue, 7 Jan 2025 14:52:54 +0800 Subject: [PATCH] xx --- model/{DevUpData.go => dev_up_data.go} | 9 ++- repository/dev_up_data.go | 81 ++++++++++++++++++++++++++ repository/enter.go | 1 + tcpserver/func.go | 35 +++++++++-- 4 files changed, 117 insertions(+), 9 deletions(-) rename model/{DevUpData.go => dev_up_data.go} (60%) create mode 100644 repository/dev_up_data.go diff --git a/model/DevUpData.go b/model/dev_up_data.go similarity index 60% rename from model/DevUpData.go rename to model/dev_up_data.go index 77c5b56..eea39f8 100644 --- a/model/DevUpData.go +++ b/model/dev_up_data.go @@ -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"` diff --git a/repository/dev_up_data.go b/repository/dev_up_data.go new file mode 100644 index 0000000..59c363b --- /dev/null +++ b/repository/dev_up_data.go @@ -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 +//} diff --git a/repository/enter.go b/repository/enter.go index d00ebba..4a30c4c 100644 --- a/repository/enter.go +++ b/repository/enter.go @@ -2,6 +2,7 @@ package repository type groupRepository struct { Device + DevUpData } var GroupRepositorys = new(groupRepository) diff --git a/tcpserver/func.go b/tcpserver/func.go index c7883ab..ba15513 100644 --- a/tcpserver/func.go +++ b/tcpserver/func.go @@ -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 }