139 lines
4.2 KiB
Go
139 lines
4.2 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
"time"
|
|
|
|
"git.rosy.net.cn/baseapi/platformapi/dingdingapi"
|
|
"git.rosy.net.cn/baseapi/utils"
|
|
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
|
|
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/defsch" // 导入缺省订单调度器
|
|
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
|
"git.rosy.net.cn/jx-callback/business/jxstore/misc"
|
|
"git.rosy.net.cn/jx-callback/business/jxstore/promotion"
|
|
"git.rosy.net.cn/jx-callback/business/jxutils/tasks"
|
|
"git.rosy.net.cn/jx-callback/business/partner/purchase/ebai"
|
|
"git.rosy.net.cn/jx-callback/globals"
|
|
"git.rosy.net.cn/jx-callback/globals/api"
|
|
"git.rosy.net.cn/jx-callback/globals/beegodb"
|
|
_ "git.rosy.net.cn/jx-callback/routers"
|
|
|
|
_ "git.rosy.net.cn/jx-callback/business/partner/printer/feie"
|
|
_ "git.rosy.net.cn/jx-callback/business/partner/printer/xiaowm"
|
|
_ "git.rosy.net.cn/jx-callback/business/partner/printer/yilianyun"
|
|
_ "git.rosy.net.cn/jx-callback/business/partner/printer/zhongwu"
|
|
"github.com/astaxie/beego"
|
|
)
|
|
|
|
var (
|
|
GitCommit string
|
|
GitBranch string
|
|
GitState string
|
|
GitSummary string
|
|
BuildDate string
|
|
Version string
|
|
)
|
|
|
|
func Init() {
|
|
beegodb.Init()
|
|
defsch.Init()
|
|
buildTime, err := time.ParseInLocation(time.RFC3339, BuildDate, time.UTC)
|
|
if err == nil {
|
|
buildTime = buildTime.Local()
|
|
}
|
|
cms.InitServiceInfo(Version, buildTime, GitCommit)
|
|
promotion.Init()
|
|
|
|
if globals.IsProductEnv() {
|
|
misc.StartRefreshEbaiRealMobile()
|
|
ebai.CurPurchaseHandler.StartRefreshComment()
|
|
}
|
|
}
|
|
|
|
// 返回true表示非运行服务
|
|
func checkCmdFlags() bool {
|
|
var flagGitCommit bool
|
|
var flagGitBranch bool
|
|
var flagGitState bool
|
|
var flagGitSummary bool
|
|
var flagBuildDate bool
|
|
var flagVersion bool
|
|
var flagFullInfo bool
|
|
|
|
flag.BoolVar(&flagGitCommit, "gitcommit", false, "get gitcommit info")
|
|
flag.BoolVar(&flagGitBranch, "gitbranch", false, "get gitbranch info")
|
|
flag.BoolVar(&flagGitState, "gitstate", false, "get gitstate info")
|
|
flag.BoolVar(&flagGitSummary, "gitsummary", false, "get gitsummary info")
|
|
flag.BoolVar(&flagBuildDate, "builddate", false, "get builddate info")
|
|
flag.BoolVar(&flagVersion, "version", false, "get version info")
|
|
flag.BoolVar(&flagFullInfo, "fullinfo", false, "get fullinfo info")
|
|
flag.Parse()
|
|
|
|
if flagGitCommit || flagFullInfo {
|
|
fmt.Println(GitCommit)
|
|
}
|
|
if flagGitBranch || flagFullInfo {
|
|
fmt.Println(GitBranch)
|
|
}
|
|
if flagGitState || flagFullInfo {
|
|
fmt.Println(GitState)
|
|
}
|
|
if flagGitSummary || flagFullInfo {
|
|
fmt.Println(GitSummary)
|
|
}
|
|
if flagBuildDate || flagFullInfo {
|
|
fmt.Println(BuildDate)
|
|
}
|
|
if flagVersion || flagFullInfo {
|
|
fmt.Println(Version)
|
|
}
|
|
|
|
return len(os.Args) > 1
|
|
}
|
|
|
|
func main() {
|
|
if !checkCmdFlags() {
|
|
Init()
|
|
if err := tasks.RefreshWeixinToken(); err != nil {
|
|
globals.SugarLogger.Errorf("RefreshWeixinToken failed with error:%s", err)
|
|
return
|
|
}
|
|
if err := tasks.RefreshElmToken(); err != nil {
|
|
globals.SugarLogger.Errorf("RefreshElmToken failed with error:%s", err)
|
|
return
|
|
}
|
|
if err := tasks.RefreshWeimobToken(); err != nil {
|
|
globals.SugarLogger.Errorf("RefreshWeimobToken failed with error:%s", err)
|
|
return
|
|
}
|
|
if err := tasks.RefreshYilianyunToken(); err != nil {
|
|
globals.SugarLogger.Errorf("RefreshYilianyunToken failed with error:%s", err)
|
|
return
|
|
}
|
|
|
|
orderman.LoadPendingOrders()
|
|
|
|
// 延时的原因是等回调准备好
|
|
if globals.IsProductEnv() {
|
|
utils.AfterFuncWithRecover(2*time.Second, func() {
|
|
if err := tasks.RefreshDingDingToken(); err != nil {
|
|
globals.SugarLogger.Errorf("RefreshDingDingToken failed with error:%s", err)
|
|
return
|
|
}
|
|
api.DingDingAPI.DeleteCallback()
|
|
if err := api.DingDingAPI.RegisterCallback([]string{dingdingapi.CBTagUserAddOrg, dingdingapi.CBTagUserModifyOrg, dingdingapi.CBTagUserLeaveOrg}, beego.AppConfig.DefaultString("dingdingCallbackToken", ""), beego.AppConfig.DefaultString("dingdingCallbackAESKey", ""), beego.AppConfig.DefaultString("dingdingCallbackURL", "")); err != nil {
|
|
globals.SugarLogger.Warnf("dingding RegisterCallback failed with error:%v", err)
|
|
}
|
|
})
|
|
}
|
|
|
|
if beego.BConfig.RunMode != "prod" {
|
|
beego.BConfig.WebConfig.DirectoryIndex = true
|
|
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
|
|
}
|
|
beego.Run()
|
|
}
|
|
}
|