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

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
}