81 lines
2.0 KiB
Go
81 lines
2.0 KiB
Go
package service
|
||
|
||
import (
|
||
"context"
|
||
"time"
|
||
|
||
"github.com/json-iterator/go"
|
||
|
||
"go-common/app/interface/bbq/app-bbq/api/http/v1"
|
||
"go-common/app/interface/bbq/app-bbq/conf"
|
||
)
|
||
|
||
// AppSetting .
|
||
func (s *Service) AppSetting(c context.Context, arg *v1.AppSettingRequest) (resp *v1.AppSettingResponse, err error) {
|
||
plat := 1
|
||
if arg.Base.Client == "ios" {
|
||
plat = 2
|
||
}
|
||
appVerison, err := s.dao.FetchNewAppVersion(c, plat, arg.VersionCode)
|
||
newVersion := uint8(0)
|
||
if err == nil && appVerison.ID > 0 {
|
||
newVersion = uint8(1)
|
||
}
|
||
|
||
// TODO:暂时先这样,快速上线,以后改(也许。。)
|
||
ver := 1
|
||
if arg.Base.Client == "ios" && arg.VersionCode > 100000 {
|
||
ver = 2
|
||
} else if arg.Base.Client == "android" && arg.VersionCode > 101000 {
|
||
ver = 2
|
||
}
|
||
|
||
appResource, err := s.dao.FetchAppResource(c, plat, ver)
|
||
current := time.Now().Unix()
|
||
|
||
pubSetting := make(map[string]interface{})
|
||
b, _ := jsoniter.Marshal(conf.App)
|
||
jsoniter.Unmarshal(b, &pubSetting)
|
||
for _, v := range appResource {
|
||
if v.StartTime.Time().Unix() < current && current < v.EndTime.Time().Unix() {
|
||
pubSetting["dynamic_effect"] = v.ID
|
||
}
|
||
}
|
||
resp = &v1.AppSettingResponse{
|
||
Public: pubSetting,
|
||
Update: &v1.AppUpdate{
|
||
NewVersion: newVersion,
|
||
Info: appVerison,
|
||
},
|
||
Resources: appResource,
|
||
}
|
||
return
|
||
}
|
||
|
||
// AppPackage .
|
||
func (s *Service) AppPackage(c context.Context, lastest int) (resp []*v1.AppPackage, err error) {
|
||
resp = make([]*v1.AppPackage, 0)
|
||
|
||
if lastest > 0 {
|
||
result, e := s.dao.FetchNewAppVersion(c, 1, 0)
|
||
resp = append(resp, &v1.AppPackage{
|
||
ID: int64(result.ID),
|
||
Platform: uint8(result.Platform),
|
||
VersionName: result.Name,
|
||
VersionCode: uint32(result.Code),
|
||
Title: result.Title,
|
||
Content: result.Content,
|
||
Download: result.Download,
|
||
MD5: result.MD5,
|
||
Size: int32(result.Size),
|
||
Force: uint8(result.Force),
|
||
Status: uint8(result.Status),
|
||
})
|
||
err = e
|
||
} else {
|
||
resp, err = s.dao.FetchAppPackage(c)
|
||
}
|
||
|
||
return
|
||
}
|