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

View File

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

View File

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