Files
huangguo_server/app/middleware/vercheck/vercheck.go
T
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

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)
}