67 lines
1.7 KiB
Go
67 lines
1.7 KiB
Go
package vercheck
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"91porn-server/app/service/versionser"
|
|
"91porn-server/common"
|
|
"91porn-server/common/constant"
|
|
"91porn-server/common/log"
|
|
"91porn-server/common/stderr"
|
|
"91porn-server/common/version"
|
|
"91porn-server/models/v/versionmod"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// 检查版本更新
|
|
func VerCheck() gin.HandlerFunc {
|
|
return func(ctx *gin.Context) {
|
|
ua, err := common.GetUA(ctx)
|
|
if err != nil || ua.SysType == "" {
|
|
log.Warn("get ua error or us is empty", log.E(err))
|
|
return
|
|
}
|
|
var sys string
|
|
if strings.Contains(strings.ToLower(ua.SysType), constant.DeviceTypeAndroid) {
|
|
sys = constant.DeviceTypeAndroid
|
|
}
|
|
if strings.Contains(strings.ToLower(ua.SysType), constant.DeviceTypeIOS) {
|
|
sys = constant.DeviceTypeIOS
|
|
}
|
|
//查找最新版本信息
|
|
ver, err := versionmod.FindVersionExcluedBuildId(sys)
|
|
if err != nil || ver.ID.IsZero() {
|
|
log.Warn("check version get version error", log.E(err))
|
|
return
|
|
}
|
|
//最新 为强制更新 需要强制更新
|
|
vn, _ := version.New(ver.VersionName)
|
|
vc, _ := version.New(ua.Ver)
|
|
if vn.GT(vc) && versionser.HandleVersion(ua.Ver, &ver) && ver.ForcedUpdate {
|
|
common.ServeJSON(ctx, stderr.ErrVersionUpdate, ver)
|
|
ctx.Abort()
|
|
return
|
|
}
|
|
}
|
|
}
|
|
|
|
// VerH5Check 检查h5版本更新
|
|
func VerH5Check(ctx *gin.Context) {
|
|
ua, err := common.GetUA(ctx)
|
|
if err != nil {
|
|
log.Warn("get ua error", log.E(err))
|
|
return
|
|
}
|
|
if !strings.Contains(strings.ToLower(ua.SysType), constant.DeviceTypeH5) {
|
|
return
|
|
}
|
|
//查找最新版本信息
|
|
ver, err := versionmod.FindVersion(constant.DeviceTypeH5)
|
|
if err != nil {
|
|
log.Warn("check version get version error", log.E(err))
|
|
return
|
|
}
|
|
ctx.Writer.Header().Set("Cur-Ver", ver.VersionName)
|
|
}
|