diff --git a/Dockerfile b/Dockerfile index d742d2e9..830aec30 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ WORKDIR /mayfly COPY mayfly_go_web . -RUN yarn config set registry 'https://registry.npm.taobao.org' && \ +RUN yarn config set registry 'https://registry.npmmirror.com' && \ yarn install && \ yarn build diff --git a/mayfly_go_web/package.json b/mayfly_go_web/package.json index d3709965..a7d077b2 100644 --- a/mayfly_go_web/package.json +++ b/mayfly_go_web/package.json @@ -17,7 +17,7 @@ "countup.js": "^2.7.0", "cropperjs": "^1.5.11", "echarts": "^5.4.3", - "element-plus": "^2.5.2", + "element-plus": "^2.5.3", "js-base64": "^3.7.5", "jsencrypt": "^3.3.2", "lodash": "^4.17.21", diff --git a/server/internal/db/api/db_data_sync.go b/server/internal/db/api/db_data_sync.go index 735b86c4..b327a034 100644 --- a/server/internal/db/api/db_data_sync.go +++ b/server/internal/db/api/db_data_sync.go @@ -1,7 +1,6 @@ package api import ( - "context" "encoding/base64" "mayfly-go/internal/db/api/form" "mayfly-go/internal/db/api/vo" @@ -73,7 +72,7 @@ func (d *DataSyncTask) DeleteTask(rc *req.Ctx) { func (d *DataSyncTask) ChangeStatus(rc *req.Ctx) { form := &form.DataSyncTaskStatusForm{} task := ginx.BindJsonAndCopyTo[*entity.DataSyncTask](rc.GinCtx, form, new(entity.DataSyncTask)) - _ = d.DataSyncTaskApp.UpdateById(context.Background(), task) + _ = d.DataSyncTaskApp.UpdateById(rc.MetaCtx, task) if task.Status == entity.DataSyncTaskStatusEnable { task, err := d.DataSyncTaskApp.GetById(new(entity.DataSyncTask), task.Id) @@ -99,7 +98,7 @@ func (d *DataSyncTask) Stop(rc *req.Ctx) { task := new(entity.DataSyncTask) task.Id = taskId task.RunningState = entity.DataSyncTaskRunStateStop - _ = d.DataSyncTaskApp.UpdateById(context.Background(), task) + _ = d.DataSyncTaskApp.UpdateById(rc.MetaCtx, task) } func (d *DataSyncTask) GetTask(rc *req.Ctx) { diff --git a/server/internal/db/application/db.go b/server/internal/db/application/db.go index 8391af63..818bb26a 100644 --- a/server/internal/db/application/db.go +++ b/server/internal/db/application/db.go @@ -98,9 +98,13 @@ func (d *dbAppImpl) SaveDb(ctx context.Context, dbEntity *entity.Db, tagIds ...u // 比较新旧数据库列表,需要将移除的数据库相关联的信息删除 _, delDb, _ := collx.ArrayCompare(newDbs, oldDbs) - for _, v := range delDb { + // 先简单关闭可能存在的旧库连接(可能改了关联标签导致DbConn.Info.TagPath与修改后的标签不一致、导致操作权限校验出错) + for _, v := range oldDbs { // 关闭数据库连接 dbm.CloseDb(dbEntity.Id, v) + } + + for _, v := range delDb { // 删除该库关联的所有sql记录 d.DbSqlRepo.DeleteByCond(ctx, &entity.DbSql{DbId: dbId, Db: v}) } diff --git a/server/internal/db/dbm/dbi/conn.go b/server/internal/db/dbm/dbi/conn.go index 5ae1115b..b887490a 100644 --- a/server/internal/db/dbm/dbi/conn.go +++ b/server/internal/db/dbm/dbi/conn.go @@ -122,6 +122,11 @@ func (d *DbConn) GetDialect() Dialect { return d.Info.Meta.GetDialect(d) } +// 返回数据库连接状态 +func (d *DbConn) Stats(ctx context.Context, execSql string, args ...any) sql.DBStats { + return d.db.Stats() +} + // 关闭连接 func (d *DbConn) Close() { if d.db != nil { diff --git a/server/pkg/base/repo.go b/server/pkg/base/repo.go index e0cc273b..13b64a5f 100644 --- a/server/pkg/base/repo.go +++ b/server/pkg/base/repo.go @@ -197,9 +197,7 @@ func (br *RepoImpl[T]) GetModel() T { // 从上下文获取登录账号信息,并赋值至实体 func (br *RepoImpl[T]) fillBaseInfo(ctx context.Context, e T) T { - if la := contextx.GetLoginAccount(ctx); la != nil { - // 默认使用数据库id策略, 若要改变则实体结构体自行覆盖FillBaseInfo方法。可参考 sys/entity.Resource - e.FillBaseInfo(model.IdGenTypeNone, la) - } + // 默认使用数据库id策略, 若要改变则实体结构体自行覆盖FillBaseInfo方法。可参考 sys/entity.Resource + e.FillBaseInfo(model.IdGenTypeNone, contextx.GetLoginAccount(ctx)) return e }