74 lines
2.2 KiB
Go
74 lines
2.2 KiB
Go
package pingctrl
|
|
|
|
import (
|
|
"91porn-server/app/appg"
|
|
"91porn-server/common/httputil"
|
|
"91porn-server/common/log"
|
|
|
|
"encoding/json"
|
|
"fmt"
|
|
"net/http"
|
|
)
|
|
|
|
type PacketType int32
|
|
|
|
const (
|
|
PacketTypeEnterprise PacketType = 1 // 企业签
|
|
PacketTypeShop PacketType = 2 // 商店包
|
|
PacketTypeTestFlight PacketType = 3 // TF包
|
|
)
|
|
|
|
type AppVersionReq struct {
|
|
AppId int32 `json:"appId" binding:"required"` // AppID
|
|
SysType string `json:"sysType,omitempty"` // 终端类型
|
|
PktType PacketType `json:"pktType,omitempty"` // 包类型
|
|
CurVersion string `json:"curVersion,omitempty"` // 当前版本
|
|
CurPackageName string `json:"curPackageName,omitempty"` // 包名
|
|
}
|
|
|
|
type AppVersionResp struct {
|
|
HasNewVersion bool `json:"hasNewVersion,omitempty"` // 是否存在新版本
|
|
ServerVersion string `json:"serverVersion,omitempty"` // 服务器新版本
|
|
DownloadLink []string `json:"downloadLink,omitempty"` // 下载地址
|
|
Description string `json:"description,omitempty"` // 描述
|
|
IsForceUpdate bool `json:"isForceUpdate,omitempty"` // 是否强制升级
|
|
Size string `json:"size,omitempty"` // 大小
|
|
Md5 string `json:"md5,omitempty"` // md5
|
|
}
|
|
|
|
func VersionThreeServer(curVersion, sysType, buildID, packageName string) (resp AppVersionResp, err error) {
|
|
req := AppVersionReq{
|
|
AppId: 2,
|
|
PktType: PacketTypeEnterprise,
|
|
SysType: sysType,
|
|
CurVersion: curVersion,
|
|
CurPackageName: packageName,
|
|
}
|
|
|
|
// TF包
|
|
if len(buildID) > 0 {
|
|
req.PktType = PacketTypeTestFlight
|
|
}
|
|
|
|
url := appg.Conf.URL.VersionUrl + "/api/stat/version/app"
|
|
bodyStr, err := json.Marshal(req)
|
|
if err != nil {
|
|
log.Error("VersionThreeServer json.Marshal fail", log.Any("req", req), log.E(err))
|
|
}
|
|
|
|
code, err := httputil.New().POSTWithJResp(&resp, url, nil, bodyStr)
|
|
if err != nil {
|
|
log.Error("VersionThreeServer POSTWithJResp ", log.Any("url", url), log.E(err))
|
|
return
|
|
}
|
|
|
|
if code != http.StatusOK {
|
|
log.Error("VersionThreeServer response status ", log.Any("code", code))
|
|
err = fmt.Errorf("response status err")
|
|
return
|
|
}
|
|
|
|
log.Info("VersionThreeServer response", log.Any("resp", resp.DownloadLink), log.Any("version", resp.HasNewVersion))
|
|
return
|
|
}
|