You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.7 KiB
93 lines
2.7 KiB
package service
|
|
|
|
import (
|
|
"errors"
|
|
"pure/global"
|
|
"pure/model"
|
|
"pure/model/request"
|
|
)
|
|
|
|
func TerminalPant(req *request.TerminalPant, boxID string) (err error, terminalInter *model.Terminal) {
|
|
var (
|
|
terminal model.Terminal
|
|
firmware model.Firmware
|
|
)
|
|
|
|
global.MG_DB.Where("box_id = ?", boxID).First(&terminal)
|
|
if terminal.ID == 0 {
|
|
terminal.BoxID = boxID
|
|
terminal.PantTime = req.Time
|
|
terminal.TurnstileStatus = req.Data.Platform
|
|
terminal.Turnstile = req.Data.Turnstile
|
|
terminal.Ver = req.Data.Ver
|
|
terminal.Mode = req.Data.Mode
|
|
terminal.Source = "zjm"
|
|
err = global.MG_DB.Create(&terminal).Error
|
|
if err != nil {
|
|
return err, nil
|
|
}
|
|
} else {
|
|
uMap := make(map[string]interface{})
|
|
if terminal.Ver != req.Data.Ver {
|
|
uMap["ver"] = req.Data.Ver
|
|
uMap["mode"] = req.Data.Mode
|
|
uMap["turnstile_status"] = req.Data.Platform
|
|
uMap["turnstile"] = req.Data.Turnstile
|
|
uMap["pant_time"] = req.Time
|
|
}
|
|
err = global.MG_DB.Model(&terminal).Where("box_id = ?", boxID).Updates(uMap).Error
|
|
if err != nil {
|
|
return err, nil
|
|
}
|
|
}
|
|
//查询最新固件
|
|
global.MG_DB.Where("status = ? and source=?", 1, terminal.Source).Order("id desc").First(&firmware)
|
|
if terminal.Ver != firmware.Ver && firmware.Ver != "" {
|
|
terminal.NewVer = 1
|
|
terminal.Ver = firmware.Ver
|
|
terminal.UrgentRepair = firmware.UrgentRepair
|
|
terminal.UpdateTime = firmware.UpdateTime
|
|
}
|
|
return nil, &terminal
|
|
}
|
|
|
|
func TerminalUpdateGet(req *request.TerminalUpdateGet, boxID string) (err error, terminalInter *model.Firmware) {
|
|
var (
|
|
terminal model.Terminal
|
|
firmware model.Firmware
|
|
)
|
|
if err = global.MG_DB.Where("box_id = ?", boxID).First(&terminal).Error; err != nil {
|
|
return err, nil
|
|
}
|
|
if terminal.ID == 0 {
|
|
return errors.New("未找到盒子"), nil
|
|
}
|
|
//查询最新固件
|
|
global.MG_DB.Where("status = ? and source=? and type=?", 1, terminal.Source, req.Data.Type).Order("id desc").First(&firmware)
|
|
if terminal.Ver == firmware.Ver {
|
|
return errors.New("已是最新版本"), nil
|
|
}
|
|
return nil, &firmware
|
|
}
|
|
|
|
func TerminalUpdatePut(req *request.TerminalUpdatePut, boxID string) (err error, terminalInter *model.Terminal) {
|
|
var (
|
|
terminal model.Terminal
|
|
uMap = make(map[string]interface{})
|
|
)
|
|
if err = global.MG_DB.Where("box_id = ?", boxID).First(&terminal).Error; err != nil {
|
|
return errors.New("未查询到终端"), nil
|
|
}
|
|
if terminal.Ver == req.Data.Ver {
|
|
return errors.New("已是最新版本"), nil
|
|
}
|
|
uMap["success"] = req.Data.Success
|
|
uMap["result"] = req.Data.Result
|
|
if req.Data.Success == 1 {
|
|
uMap["ver"] = req.Data.Ver
|
|
}
|
|
if err = global.MG_DB.Model(&terminal).Where("box_id = ?", boxID).Updates(uMap).Error; err != nil {
|
|
return errors.New("更新失败"), nil
|
|
}
|
|
return nil, &terminal
|
|
}
|
|
|