Skip to content

Commit 766ad51

Browse files
committed
opt appinfo cache
1 parent 5fc3875 commit 766ad51

37 files changed

+75
-482
lines changed

apis/validate.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package apis
33
import (
44
"strings"
55

6+
"github.com/juggleim/commons/appinfos"
67
utils "github.com/juggleim/commons/tools"
78
"github.com/juggleim/jugglechat-server/apis/responses"
89
"github.com/juggleim/jugglechat-server/ctxs"
@@ -32,7 +33,7 @@ func Validate(ctx *gin.Context) {
3233
}
3334
ctx.Set(string(ctxs.CtxKey_AppKey), appkey)
3435
//check app exist
35-
appInfo, exist := services.GetAppInfo(appkey)
36+
appInfo, exist := appinfos.GetAppInfo(appkey)
3637
if !exist {
3738
responses.ErrorHttpResp(ctx, errs.IMErrorCode_APP_NOT_EXISTED)
3839
ctx.Abort()

docs/appbusiness.sql

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,16 @@ CREATE TABLE IF NOT EXISTS `appexts` (
2222
UNIQUE KEY `IDX_APPKEY_APPITEMKEY` (`app_key`,`app_item_key`)
2323
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
2424

25+
CREATE TABLE IF NOT EXISTS `globalconfs` (
26+
`id` int NOT NULL AUTO_INCREMENT,
27+
`conf_key` varchar(50) DEFAULT NULL,
28+
`conf_value` varchar(2000) DEFAULT NULL,
29+
`created_at` datetime(3) DEFAULT CURRENT_TIMESTAMP(3),
30+
`updated_at` datetime(3) DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
31+
PRIMARY KEY (`id`),
32+
UNIQUE KEY `uniq_key` (`conf_key`)
33+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
34+
2535
CREATE TABLE IF NOT EXISTS `fileconfs` (
2636
`id` int unsigned NOT NULL AUTO_INCREMENT,
2737
`app_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
@@ -224,4 +234,5 @@ CREATE TABLE IF NOT EXISTS `feedbacks` (
224234
KEY `idx_time` (`app_key`,`created_time`)
225235
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
226236

227-
INSERT IGNORE INTO `globalconfs` (`conf_key`,`conf_value`)VALUES('jchatdb_versaion','20250201');
237+
INSERT IGNORE INTO `globalconfs` (`conf_key`,`conf_value`)VALUES('jchatcommondb_version','20250201');
238+
INSERT IGNORE INTO `globalconfs` (`conf_key`,`conf_value`)VALUES('jchatdb_version','20250201');

go.mod

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ go 1.23.2
55
require github.com/juggleim/imserver-sdk-go v1.0.6
66

77
require (
8+
filippo.io/edwards25519 v1.1.0 // indirect
89
github.com/BurntSushi/toml v1.3.2 // indirect
910
github.com/alex-ant/gomath v0.0.0-20160516115720-89013a210a82 // indirect
1011
github.com/dustin/go-humanize v1.0.1 // indirect
@@ -38,7 +39,7 @@ require (
3839
github.com/go-playground/locales v0.14.1 // indirect
3940
github.com/go-playground/universal-translator v0.18.1 // indirect
4041
github.com/go-playground/validator/v10 v10.14.0 // indirect
41-
github.com/go-sql-driver/mysql v1.7.1
42+
github.com/go-sql-driver/mysql v1.9.3 // indirect
4243
github.com/goccy/go-json v0.10.5 // indirect
4344
github.com/golang-jwt/jwt/v4 v4.5.2
4445
github.com/google/uuid v1.6.0 // indirect
@@ -47,7 +48,7 @@ require (
4748
github.com/jinzhu/inflection v1.0.0 // indirect
4849
github.com/jinzhu/now v1.1.5 // indirect
4950
github.com/json-iterator/go v1.1.12 // indirect
50-
github.com/juggleim/commons v1.0.1
51+
github.com/juggleim/commons v1.0.2
5152
github.com/klauspost/cpuid/v2 v2.2.10 // indirect
5253
github.com/leodido/go-urn v1.2.4 // indirect
5354
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible

go.sum

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
2+
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
13
github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8=
24
github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
35
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
@@ -54,8 +56,8 @@ github.com/go-playground/validator/v10 v10.7.0/go.mod h1:xm76BBt941f7yWdGnI2DVPF
5456
github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js=
5557
github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
5658
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
57-
github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI=
58-
github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
59+
github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo=
60+
github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU=
5961
github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4=
6062
github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
6163
github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw=
@@ -90,8 +92,8 @@ github.com/jonboulle/clockwork v0.5.0 h1:Hyh9A8u51kptdkR+cqRpT1EebBwTn1oK9YfGYbd
9092
github.com/jonboulle/clockwork v0.5.0/go.mod h1:3mZlmanh0g2NDKO5TWZVJAfofYk64M7XN3SzBPjZF60=
9193
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
9294
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
93-
github.com/juggleim/commons v1.0.1 h1:HNuCy+qkYvGGlb43FgqvdipSlCV9/WGmP+tfhiTbtUo=
94-
github.com/juggleim/commons v1.0.1/go.mod h1:DCcj+TFBXuJIaENWj1wrAwOxJrzasfsSKBbFHfhDLpw=
95+
github.com/juggleim/commons v1.0.2 h1:ERfK3a2y15ySHYxPxlJf4d5s+M+x/w86NPS7i/hPjNs=
96+
github.com/juggleim/commons v1.0.2/go.mod h1:KWeUVxZRsWn7cE6qy51tuPQeswaO1bJoZguChs5r04w=
9597
github.com/juggleim/imserver-sdk-go v1.0.6 h1:NL639nM2g4MKgRJSpwsMFLlAF/PBPg7BCrJnikdAeLE=
9698
github.com/juggleim/imserver-sdk-go v1.0.6/go.mod h1:xdxsGeW0b4GOYJvKJwnaU04Z+jGaUSrBvzeSbNvNOFk=
9799
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=

main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ import (
77
"syscall"
88

99
"github.com/gin-gonic/gin"
10+
"github.com/juggleim/commons/dbcommons"
1011
adminRouters "github.com/juggleim/jugglechat-server/admins/routers"
1112
"github.com/juggleim/jugglechat-server/configures"
1213
"github.com/juggleim/jugglechat-server/log"
1314
"github.com/juggleim/jugglechat-server/routers"
14-
"github.com/juggleim/jugglechat-server/storages/dbs/dbcommons"
1515
)
1616

1717
func main() {
@@ -23,7 +23,7 @@ func main() {
2323
//init log
2424
log.InitLogs()
2525
//init mysql
26-
if err := dbcommons.InitMysql(); err != nil {
26+
if err := dbcommons.InitMysql(configures.Config.Mysql.Address, configures.Config.Mysql.DbName, configures.Config.Mysql.User, configures.Config.Mysql.Password, configures.Config.Mysql.Debug); err != nil {
2727
log.Error("Init Mysql failed.", err)
2828
return
2929
}

services/appinfoservice.go

Lines changed: 0 additions & 57 deletions
This file was deleted.

services/authtokenservice.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"errors"
66
"time"
77

8+
"github.com/juggleim/commons/appinfos"
89
utils "github.com/juggleim/commons/tools"
910
"github.com/juggleim/jugglechat-server/services/pbobjs"
1011
)
@@ -51,7 +52,7 @@ func GenerateToken(appkey, userId string) string {
5152
UserId: userId,
5253
TokenTime: time.Now().UnixMilli(),
5354
}
54-
if appInfo, exist := GetAppInfo(appkey); exist {
55+
if appInfo, exist := appinfos.GetAppInfo(appkey); exist {
5556
token, _ = t.ToTokenString([]byte(appInfo.AppSecureKey))
5657
}
5758
return token

services/imsdk/imsdk.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package imsdk
33
import (
44
"sync"
55

6+
"github.com/juggleim/commons/dbcommons"
67
"github.com/juggleim/jugglechat-server/configures"
7-
"github.com/juggleim/jugglechat-server/storages/dbs"
88

99
juggleimsdk "github.com/juggleim/imserver-sdk-go"
1010
)
@@ -27,7 +27,7 @@ func GetImSdk(appkey string) *juggleimsdk.JuggleIMSdk {
2727
if val, exist := imsdkMap.Load(appkey); exist {
2828
return val.(*juggleimsdk.JuggleIMSdk)
2929
} else {
30-
dao := dbs.AppInfoDao{}
30+
dao := dbcommons.AppInfoDao{}
3131
appinfo, _ := dao.FindByAppkey(appkey)
3232
if appinfo != nil {
3333
sdk := juggleimsdk.NewJuggleIMSdk(appkey, appinfo.AppSecret, configures.Config.ImApiDomain)

services/smsservice.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import (
55
"math/rand"
66
"time"
77

8+
"github.com/juggleim/commons/appinfos"
9+
"github.com/juggleim/commons/dbcommons"
810
"github.com/juggleim/commons/smsengines"
911
utils "github.com/juggleim/commons/tools"
1012
"github.com/juggleim/jugglechat-server/ctxs"
@@ -84,11 +86,11 @@ func CheckEmailCode(ctx context.Context, email, code string) errs.IMErrorCode {
8486
}
8587

8688
func GetSmsEngine(appkey string) smsengines.ISmsEngine {
87-
appInfo, exist := GetAppInfo(appkey)
89+
appInfo, exist := appinfos.GetAppInfo(appkey)
8890
if exist && appInfo != nil {
8991
if appInfo.SmsEngine == nil {
90-
appLock.Lock()
91-
defer appLock.Unlock()
92+
appinfos.GetAppLock().Lock()
93+
defer appinfos.GetAppLock().Unlock()
9294
loadSmsEngine(appInfo)
9395
}
9496
if appInfo.SmsEngine != nil {
@@ -98,9 +100,9 @@ func GetSmsEngine(appkey string) smsengines.ISmsEngine {
98100
return smsengines.DefaultSmsEngine
99101
}
100102

101-
func loadSmsEngine(appInfo *AppInfo) {
102-
storage := storages.NewAppExtStorage()
103-
ext, err := storage.Find(appInfo.AppKey, "sms_engine_conf")
103+
func loadSmsEngine(appInfo *appinfos.AppInfo) {
104+
extDao := dbcommons.AppExtDao{}
105+
ext, err := extDao.Find(appInfo.AppKey, "sms_engine_conf")
104106
if err == nil && ext.AppItemValue != "" {
105107
smsConf := &SmsEngineConf{}
106108
err := utils.JsonUnMarshal([]byte(ext.AppItemValue), smsConf)

services/telebotservice.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"net/http"
1010
"time"
1111

12+
"github.com/juggleim/commons/appinfos"
1213
utils "github.com/juggleim/commons/tools"
1314
apimodels "github.com/juggleim/jugglechat-server/apis/models"
1415
"github.com/juggleim/jugglechat-server/configures"
@@ -138,7 +139,7 @@ func UnActiveTelebotProxy(ctx context.Context, rel *TeleBotRel) {
138139

139140
func getBotConnectorHeaders(ctx context.Context) map[string]string {
140141
appkey := ctxs.GetAppKeyFromCtx(ctx)
141-
appinfo, exist := GetAppInfo(appkey)
142+
appinfo, exist := appinfos.GetAppInfo(appkey)
142143
if exist {
143144
nonce := fmt.Sprintf("%d", rand.Int31n(10000))
144145
timestamp := fmt.Sprintf("%d", time.Now().UnixMilli())

0 commit comments

Comments
 (0)