Files
hjsq_server/app/api/pingctrl/version.go
T
rootandClaude Opus 4.7 97f679d130 sync: port tangguo_server upstream changes
Ported 7 commits (3a79d6a..3dcf693) from tangguo_server:
- 版本控制: comment out 2FA in admin.go
- 支付和广告调试: pay/ad refactor across appg/adser/rechargeser/pingctrl
- 对接统计: add bili_sync statistics endpoint
- 代码优化: ginUtil improvements
- 修改es/修改appID/代码调整: cumulative updates

Preserved hgmj-local differences:
- ES table prefix stays 91jd_ (not tangguo_)
- BillPlatformID stays 91短剧 (not 糖果短剧)
- admin googauth label stays @91短剧
- appg.go retains LouFengH5/DataBuriedPoint fields
- rechargeser.go retains reportser event reporting

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-10-08 17:18:41 +08:00

74 lines
2.2 KiB
Go

package pingctrl
import (
"91jd-server/app/appg"
"91jd-server/common/httputil"
"91jd-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: 4,
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
}