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.

59 lines
1.4 KiB

9 months ago
package service
import (
"pure/global"
"pure/model"
)
func CheckVersion(platform, version string) (model.VersionV, error) {
var (
err error
current model.VersionV
result model.VersionV
)
current, err = GetVersion(platform, version)
if err != nil {
return result, err
}
result, err = getNewestVersion(platform, current.Code)
if err != nil {
return result, err
}
if current.Status == 2 {
result.HideAndSeek = true
}
return result, nil
}
func GetVersion(platform, version string) (model.VersionV, error) {
var (
err error
result model.VersionV
)
err = global.MG_DB.Model(&model.Version{}).Where("`type` = ? AND version = ? AND status IN (1,2)", platform, version).
Select("version,`code`,`type`,info,is_force,url,md5,tip,`status`").First(&result).Error
return result, err
}
func getNewestVersion(platform string, code int64) (model.VersionV, error) {
var (
err error
list []model.VersionV
result model.VersionV
)
err = global.MG_DB.Model(&model.Version{}).Where("`type` = ? AND `code` > ? AND `status` = 1", platform, code).
Select("version,`code`,`type`,info,is_force,url,md5,tip,`status`").Order("`code` DESC").Find(&list).Error
if err != nil {
return result, err
}
if len(list) > 0 {
result = list[0]
for _, ver := range list {
if !result.IsForce && ver.IsForce {
result.IsForce = true
}
}
}
return result, err
}