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 }