From 8f9771d927e5a7ef9f38bee7566b5c833f473a2d Mon Sep 17 00:00:00 2001 From: Yuan Si Date: Wed, 7 Jun 2023 07:36:36 +0800 Subject: [PATCH] as: Move some tables to common database Signed-off-by: Yuan Si --- assets/main.db | Bin 4317184 -> 4390912 bytes router/router.go | 22 ++++++++-------------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/assets/main.db b/assets/main.db index 8f156cc54a70772d2f97887f09e2d95a77ace2ee..d48d9a65563a330e5a6f364e69b26935a775a5c7 100644 GIT binary patch delta 54641 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 diff --git a/router/router.go b/router/router.go index b6ff7e6..1184670 100644 --- a/router/router.go +++ b/router/router.go @@ -27,8 +27,14 @@ import ( var ( sessionKey = "12345678123456781234567812345678" + + mEng *xorm.Engine ) +func init() { + mEng = config.MainEng +} + func SifRouter(r *gin.Engine) { // Static r.Static("/static", "static") @@ -650,22 +656,10 @@ func AsRouter(r *gin.Engine) { reqBody := gjson.Parse(ctx.GetString("reqBody")).Array()[0] // fmt.Println(reqBody.String()) - mEng, err := xorm.NewEngine("sqlite", "assets/masterdata.db") - CheckErr(err) - err = mEng.Ping() - CheckErr(err) - defer mEng.Close() - - dEng, err := xorm.NewEngine("sqlite", "assets/dictionary_zh_k.db") - CheckErr(err) - err = dEng.Ping() - CheckErr(err) - defer dEng.Close() - req := model.AsSaveDeckReq{} decoder := json.NewDecoder(strings.NewReader(reqBody.String())) decoder.UseNumber() - err = decoder.Decode(&req) + err := decoder.Decode(&req) CheckErr(err) // fmt.Println("Raw:", req.SquadDict) @@ -792,7 +786,7 @@ func AsRouter(r *gin.Engine) { } var realPartyName string - _, err = dEng.Table("m_dictionary").Where("id = ?", strings.ReplaceAll(partyName, "k.", "")).Cols("message").Get(&realPartyName) + _, err = mEng.Table("m_dictionary").Where("id = ?", strings.ReplaceAll(partyName, "k.", "")).Cols("message").Get(&realPartyName) CheckErr(err) partyInfo := model.AsPartyInfo{