This commit is contained in:
邹宗楠
2022-03-25 17:00:41 +08:00
parent 863859de40
commit d06c0bc554
3 changed files with 39 additions and 29 deletions

View File

@@ -42,7 +42,7 @@ type CallResult struct {
Data string `json:"data"` Data string `json:"data"`
} }
func RefreshConfig(configKey string, expiresTime time.Duration, configGetter func() (string, string), configSetter func(value string)) error { func RefreshConfig(configKey string, expiresTime time.Duration, configGetter func() (string, string), configSetter func(value, value2 string)) error {
needRefreshGap := expiresTime * 8 / 10 needRefreshGap := expiresTime * 8 / 10
sleepGap := expiresTime / 10 sleepGap := expiresTime / 10
if sleepGap > maxRefreshGap { if sleepGap > maxRefreshGap {
@@ -64,7 +64,7 @@ func RefreshConfig(configKey string, expiresTime time.Duration, configGetter fun
} }
handleType = 2 handleType = 2
} else { } else {
configSetter(curConfig.Token) configSetter(curConfig.Token, curConfig.RefreshToken)
if curConfig.Date <= utils.Time2Str(time.Now().Add(-needRefreshGap)) { if curConfig.Date <= utils.Time2Str(time.Now().Add(-needRefreshGap)) {
handleType = 1 handleType = 1
} }
@@ -79,7 +79,7 @@ func RefreshConfig(configKey string, expiresTime time.Duration, configGetter fun
} }
return sleepDuration return sleepDuration
} }
configSetter(curConfig.Token) configSetter(curConfig.Token, curConfig.RefreshToken)
if curConfig.Date == "" { if curConfig.Date == "" {
curConfig.Date = utils.GetCurTimeStr() curConfig.Date = utils.GetCurTimeStr()
} else { } else {
@@ -89,7 +89,7 @@ func RefreshConfig(configKey string, expiresTime time.Duration, configGetter fun
var err error var err error
if handleType == 1 { if handleType == 1 {
num, err = db.Update(curConfig, "Token", "Date") num, err = db.Update(curConfig, "Token", "Date", "RefreshToken")
} else { } else {
num, err = db.Insert(curConfig) num, err = db.Insert(curConfig)
} }
@@ -131,7 +131,7 @@ func RefreshWeixinToken() (err error) {
} }
} }
return token, expireTimeStr return token, expireTimeStr
}, func(value string) { }, func(value, v2 string) {
globals.SugarLogger.Debugf("RefreshWeixinToken setter value:%s", value) globals.SugarLogger.Debugf("RefreshWeixinToken setter value:%s", value)
syseventhub.SysEventHub.OnNewWXToken(value) syseventhub.SysEventHub.OnNewWXToken(value)
api.WeixinAPI.CBSetToken(value) api.WeixinAPI.CBSetToken(value)
@@ -145,22 +145,31 @@ func RefreshFnToken() (err error) {
globals.SugarLogger.Debugf("=================初始化accesstoken") globals.SugarLogger.Debugf("=================初始化accesstoken")
err = RefreshConfig("fn", fnTokenExpires, func() (token string, expireTimeStr string) { err = RefreshConfig("fn", fnTokenExpires, func() (token string, expireTimeStr string) {
globals.SugarLogger.Debugf("RefreshFnToken RunMode:%s", beego.BConfig.RunMode) globals.SugarLogger.Debugf("RefreshFnToken RunMode:%s", beego.BConfig.RunMode)
if globals.IsMainProductEnv() { //if globals.IsMainProductEnv() {
globals.SugarLogger.Debugf("11====================111") globals.SugarLogger.Debugf("11====================111")
var refeshToken string
//sql1 := `SELECT * FROM jxgy.config WHERE thirdparty = "fn"`
//curConfig := &legacymodel.Config{
// Thirdparty: "fn",
//}
//dao.
//db := orm.NewOrm()
//db.Read(curConfig, "Thirdparty");
if tokenInfo, err := api.FnAPI.GetAccessToken(); err == nil { if tokenInfo, err := api.FnAPI.GetAccessToken(); err == nil {
globals.SugarLogger.Debugf("RefreshFnToken tokenInfo:%s", utils.Format4Output(tokenInfo, true)) globals.SugarLogger.Debugf("RefreshFnToken tokenInfo:%s", utils.Format4Output(tokenInfo, true))
token = tokenInfo.BusinessDataObj.AccessToken token = tokenInfo.BusinessDataObj.AccessToken
refeshToken = tokenInfo.BusinessDataObj.RefreshToken
} else { } else {
globals.SugarLogger.Errorf("RefreshFnToken RefreshToken failed with error:%v", err) globals.SugarLogger.Errorf("RefreshFnToken RefreshToken failed with error:%v", err)
} }
sql := ` sql := `
UPDATE jxgy.config SET token = ? WHERE thirdparty = ? UPDATE jxgy.config SET token = ?,refresh_token = ? WHERE thirdparty = ?
` `
sqlParams := []interface{}{ sqlParams := []interface{}{
token, "fn", token, refeshToken, "fn",
} }
dao.ExecuteSQL(dao.GetDB(), sql, sqlParams) dao.ExecuteSQL(dao.GetDB(), sql, sqlParams)
} //}
if beego.BConfig.RunMode == "jxgy" { if beego.BConfig.RunMode == "jxgy" {
config := &legacymodel.Config{} config := &legacymodel.Config{}
sql := ` sql := `
@@ -171,10 +180,11 @@ func RefreshFnToken() (err error) {
} }
} }
return token, expireTimeStr return token, expireTimeStr
}, func(value string) { }, func(value, v2 string) {
globals.SugarLogger.Debugf("RefreshFnToken setter value:%s", value) globals.SugarLogger.Debugf("RefreshFnToken setter value:%s", value)
// syseventhub.SysEventHub.OnNewWXToken(value) // syseventhub.SysEventHub.OnNewWXToken(value)
api.FnAPI.SetToken(value) api.FnAPI.SetToken(value)
api.FnAPI.SetRefreshToken(value)
}) })
} }
return err return err
@@ -193,7 +203,7 @@ func RefreshQywxToken() (err error) {
} }
} }
return token, expireTimeStr return token, expireTimeStr
}, func(value string) { }, func(value, v2 string) {
globals.SugarLogger.Debugf("RefreshQywxToken setter value:%s", value) globals.SugarLogger.Debugf("RefreshQywxToken setter value:%s", value)
api.QywxAPI.SetToken(value) api.QywxAPI.SetToken(value)
}) })
@@ -219,7 +229,7 @@ func RefreshWeixin2Token() (err error) {
} }
} }
return token, expireTimeStr return token, expireTimeStr
}, func(value string) { }, func(value, v2 string) {
globals.SugarLogger.Debugf("RefreshWeixinToken setter value:%s", value) globals.SugarLogger.Debugf("RefreshWeixinToken setter value:%s", value)
syseventhub.SysEventHub.OnNewWX2Token(value) syseventhub.SysEventHub.OnNewWX2Token(value)
api.WeixinMiniAPI2.CBSetToken(value) api.WeixinMiniAPI2.CBSetToken(value)
@@ -246,7 +256,7 @@ func RefreshPushToken() (err error) {
} }
} }
return token, expireTimeStr return token, expireTimeStr
}, func(value string) { }, func(value, v2 string) {
globals.SugarLogger.Debugf("RefreshPushToken setter value:%s", value) globals.SugarLogger.Debugf("RefreshPushToken setter value:%s", value)
syseventhub.SysEventHub.OnNewPushToken(value) syseventhub.SysEventHub.OnNewPushToken(value)
api.PushAPI.CBSetToken(value) api.PushAPI.CBSetToken(value)
@@ -303,7 +313,7 @@ func RefreshWeimobToken() (err error) {
} }
} }
return token, expireTimeStr return token, expireTimeStr
}, func(value string) { }, func(value, v2 string) {
var tokenInfo *weimobapi.TokenInfo var tokenInfo *weimobapi.TokenInfo
err := utils.UnmarshalUseNumber([]byte(value), &tokenInfo) err := utils.UnmarshalUseNumber([]byte(value), &tokenInfo)
if err == nil { if err == nil {
@@ -328,7 +338,7 @@ func RefreshDingDingToken() (err error) {
} }
} }
return "", "" return "", ""
}, func(value string) { }, func(value, v2 string) {
api.DingDingAPI.SetToken(value) api.DingDingAPI.SetToken(value)
}) })
} }
@@ -360,7 +370,7 @@ func RefreshYilianyunToken() (err error) {
} }
} }
return token, expireTimeStr return token, expireTimeStr
}, func(value string) { }, func(value, v2 string) {
token := value token := value
var tokenInfo *yilianyunapi.TokenInfo var tokenInfo *yilianyunapi.TokenInfo
if err := utils.TryUnmarshalUseNumber([]byte(value), &tokenInfo); err == nil { if err := utils.TryUnmarshalUseNumber([]byte(value), &tokenInfo); err == nil {

View File

@@ -4,6 +4,7 @@ type Config struct {
Id int Id int
Thirdparty string `orm:"size(20);unique" json:"key"` Thirdparty string `orm:"size(20);unique" json:"key"`
Token string `orm:"size(300)" json:"value"` Token string `orm:"size(300)" json:"value"`
RefreshToken string `orm:"size(300)" json:"value"`
Date string `orm:"size(30)" json:"date"` Date string `orm:"size(30)" json:"date"`
LastOperator string `orm:"size(32)" json:"lastOperator"` // 最后操作员 LastOperator string `orm:"size(32)" json:"lastOperator"` // 最后操作员
} }

View File

@@ -169,8 +169,7 @@ func IsCallbackAlwaysReturnSuccess() bool {
} }
func IsMainProductEnv() bool { func IsMainProductEnv() bool {
//return web.BConfig.RunMode == "prod" return web.BConfig.RunMode == "prod"
return web.BConfig.RunMode == "beta"
} }
func IsProductEnv() bool { func IsProductEnv() bool {