You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.0 KiB
80 lines
2.0 KiB
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 |
|
}
|
|
|