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 }