diff --git a/business/jxutils/tasks/configrefresh.go b/business/jxutils/tasks/configrefresh.go index 025dac7a7..aa4b9ba76 100644 --- a/business/jxutils/tasks/configrefresh.go +++ b/business/jxutils/tasks/configrefresh.go @@ -106,67 +106,76 @@ func RefreshConfig(configKey string, expiresTime time.Duration, configGetter fun return err } -func RefreshWeixinToken() error { - return RefreshConfig("wechat", weixinTokenExpires, func() (string, string) { - globals.SugarLogger.Debugf("RefreshWeixinToken RunMode:%s", beego.BConfig.RunMode) - if beego.BConfig.RunMode == "prod" { - if tokenInfo, err := api.WeixinAPI.CBRetrieveToken(); err == nil { - globals.SugarLogger.Debugf("RefreshWeixinToken tokenInfo:%s", utils.Format4Output(tokenInfo, true)) - return tokenInfo.AccessToken, "" - } else { - globals.SugarLogger.Errorf("RefreshWeixinToken RefreshToken failed with error:%v", err) - } - } - return "", "" - }, func(value string) { - api.WeixinAPI.CBSetToken(value) - }) -} - -func RefreshElmToken() error { - return RefreshConfig("eleme", elmTokenExpires, func() (string, string) { - if beego.BConfig.RunMode == "prod" { - if tokenInfo, err := api.ElmAPI.RefreshTokenIndividual(); err == nil { - tokenInfo2 := &ElmTokenForCompatible{ - Error: "", - ErrorDescription: "", - AccessToken: tokenInfo.AccessToken, - TokenType: tokenInfo.TokenType, - Expires: tokenInfo.ExpiresIn, - RefreshToken: "", - Success: true, +func RefreshWeixinToken() (err error) { + if api.WeixinAPI != nil { + err = RefreshConfig("wechat", weixinTokenExpires, func() (string, string) { + globals.SugarLogger.Debugf("RefreshWeixinToken RunMode:%s", beego.BConfig.RunMode) + if beego.BConfig.RunMode == "prod" { + if tokenInfo, err := api.WeixinAPI.CBRetrieveToken(); err == nil { + globals.SugarLogger.Debugf("RefreshWeixinToken tokenInfo:%s", utils.Format4Output(tokenInfo, true)) + return tokenInfo.AccessToken, "" + } else { + globals.SugarLogger.Errorf("RefreshWeixinToken RefreshToken failed with error:%v", err) } - return string(utils.MustMarshal(tokenInfo2)), "" } - } - return "", "" - }, func(value string) { - var tokenInfo ElmTokenForCompatible - err := utils.UnmarshalUseNumber([]byte(value), &tokenInfo) - if err == nil { - api.ElmAPI.SetToken(tokenInfo.AccessToken) - } - }) + return "", "" + }, func(value string) { + api.WeixinAPI.CBSetToken(value) + }) + } + return err } -func RefreshWeimobToken() error { - return RefreshConfig("weimob", weimobTokenExpires, func() (string, string) { - if beego.BConfig.RunMode == "prod" { - if tokenInfo, err := api.WeimobAPI.RefreshTokenByRefreshToken(); err == nil { - return string(utils.MustMarshal(tokenInfo)), utils.Time2Str(time.Now().Add((time.Duration(tokenInfo.ExpiresIn) - weimobTokenExpires/time.Second) * time.Second)) +func RefreshElmToken() (err error) { + if api.ElmAPI != nil { + err = RefreshConfig("eleme", elmTokenExpires, func() (string, string) { + if beego.BConfig.RunMode == "prod" { + if tokenInfo, err := api.ElmAPI.RefreshTokenIndividual(); err == nil { + tokenInfo2 := &ElmTokenForCompatible{ + Error: "", + ErrorDescription: "", + AccessToken: tokenInfo.AccessToken, + TokenType: tokenInfo.TokenType, + Expires: tokenInfo.ExpiresIn, + RefreshToken: "", + Success: true, + } + return string(utils.MustMarshal(tokenInfo2)), "" + } } - } - return "", "" - }, func(value string) { - var tokenInfo *weimobapi.TokenInfo - err := utils.UnmarshalUseNumber([]byte(value), &tokenInfo) - if err == nil { - api.WeimobAPI.SetToken(tokenInfo) - } - }) + return "", "" + }, func(value string) { + var tokenInfo ElmTokenForCompatible + err := utils.UnmarshalUseNumber([]byte(value), &tokenInfo) + if err == nil { + api.ElmAPI.SetToken(tokenInfo.AccessToken) + } + }) + } + return err } -func RefreshDingDingToken() error { +func RefreshWeimobToken() (err error) { + if api.WeimobAPI != nil { + err = RefreshConfig("weimob", weimobTokenExpires, func() (string, string) { + if beego.BConfig.RunMode == "prod" { + if tokenInfo, err := api.WeimobAPI.RefreshTokenByRefreshToken(); err == nil { + return string(utils.MustMarshal(tokenInfo)), utils.Time2Str(time.Now().Add((time.Duration(tokenInfo.ExpiresIn) - weimobTokenExpires/time.Second) * time.Second)) + } + } + return "", "" + }, func(value string) { + var tokenInfo *weimobapi.TokenInfo + err := utils.UnmarshalUseNumber([]byte(value), &tokenInfo) + if err == nil { + api.WeimobAPI.SetToken(tokenInfo) + } + }) + } + return err +} + +func RefreshDingDingToken() (err error) { api.DingDingAPI.RetrieveToken() return RefreshConfig("dingding", dingdingTokenExpires, func() (string, string) { globals.SugarLogger.Debugf("RefreshDingDingToken RunMode:%s", beego.BConfig.RunMode) @@ -195,7 +204,7 @@ func SaveWeimobToken(token *weimobapi.TokenInfo) (err error) { return dao.CreateOrUpdate(db, config) } -func RefreshYilianyunToken() error { +func RefreshYilianyunToken() (err error) { return RefreshConfig("yilianyun", yilianyunTokenExpires, func() (string, string) { globals.SugarLogger.Debugf("RefreshYilianyunToken RunMode:%s", beego.BConfig.RunMode) if beego.BConfig.RunMode == "prod" {