mirror of
https://gitee.com/dromara/mayfly-go
synced 2026-01-05 06:05:48 +08:00
refactor: db/redis/mongo连接代码包独立
This commit is contained in:
@@ -74,18 +74,20 @@ func (m *Mongo) DeleteMongo(rc *req.Ctx) {
|
||||
}
|
||||
|
||||
func (m *Mongo) Databases(rc *req.Ctx) {
|
||||
cli := m.MongoApp.GetMongoInst(m.GetMongoId(rc.GinCtx)).Cli
|
||||
res, err := cli.ListDatabases(context.TODO(), bson.D{})
|
||||
conn, err := m.MongoApp.GetMongoConn(m.GetMongoId(rc.GinCtx))
|
||||
biz.ErrIsNil(err)
|
||||
res, err := conn.Cli.ListDatabases(context.TODO(), bson.D{})
|
||||
biz.ErrIsNilAppendErr(err, "获取mongo所有库信息失败: %s")
|
||||
rc.ResData = res
|
||||
}
|
||||
|
||||
func (m *Mongo) Collections(rc *req.Ctx) {
|
||||
cli := m.MongoApp.GetMongoInst(m.GetMongoId(rc.GinCtx)).Cli
|
||||
conn, err := m.MongoApp.GetMongoConn(m.GetMongoId(rc.GinCtx))
|
||||
biz.ErrIsNil(err)
|
||||
db := rc.GinCtx.Query("database")
|
||||
biz.NotEmpty(db, "database不能为空")
|
||||
ctx := context.TODO()
|
||||
res, err := cli.Database(db).ListCollectionNames(ctx, bson.D{})
|
||||
res, err := conn.Cli.Database(db).ListCollectionNames(ctx, bson.D{})
|
||||
biz.ErrIsNilAppendErr(err, "获取库集合信息失败: %s")
|
||||
rc.ResData = res
|
||||
}
|
||||
@@ -94,8 +96,9 @@ func (m *Mongo) RunCommand(rc *req.Ctx) {
|
||||
commandForm := new(form.MongoRunCommand)
|
||||
ginx.BindJsonAndValid(rc.GinCtx, commandForm)
|
||||
|
||||
inst := m.MongoApp.GetMongoInst(m.GetMongoId(rc.GinCtx))
|
||||
rc.ReqParam = collx.Kvs("mongo", inst.Info, "cmd", commandForm)
|
||||
conn, err := m.MongoApp.GetMongoConn(m.GetMongoId(rc.GinCtx))
|
||||
biz.ErrIsNil(err)
|
||||
rc.ReqParam = collx.Kvs("mongo", conn.Info, "cmd", commandForm)
|
||||
|
||||
// 顺序执行
|
||||
commands := bson.D{}
|
||||
@@ -110,7 +113,7 @@ func (m *Mongo) RunCommand(rc *req.Ctx) {
|
||||
|
||||
ctx := context.TODO()
|
||||
var bm bson.M
|
||||
err := inst.Cli.Database(commandForm.Database).RunCommand(
|
||||
err = conn.Cli.Database(commandForm.Database).RunCommand(
|
||||
ctx,
|
||||
commands,
|
||||
).Decode(&bm)
|
||||
@@ -121,10 +124,13 @@ func (m *Mongo) RunCommand(rc *req.Ctx) {
|
||||
|
||||
func (m *Mongo) FindCommand(rc *req.Ctx) {
|
||||
g := rc.GinCtx
|
||||
cli := m.MongoApp.GetMongoInst(m.GetMongoId(g)).Cli
|
||||
commandForm := new(form.MongoFindCommand)
|
||||
ginx.BindJsonAndValid(g, commandForm)
|
||||
|
||||
conn, err := m.MongoApp.GetMongoConn(m.GetMongoId(g))
|
||||
biz.ErrIsNil(err)
|
||||
cli := conn.Cli
|
||||
|
||||
limit := commandForm.Limit
|
||||
if limit != 0 {
|
||||
biz.IsTrue(limit <= 100, "limit不能超过100")
|
||||
@@ -157,8 +163,9 @@ func (m *Mongo) UpdateByIdCommand(rc *req.Ctx) {
|
||||
commandForm := new(form.MongoUpdateByIdCommand)
|
||||
ginx.BindJsonAndValid(g, commandForm)
|
||||
|
||||
inst := m.MongoApp.GetMongoInst(m.GetMongoId(g))
|
||||
rc.ReqParam = collx.Kvs("mongo", inst.Info, "cmd", commandForm)
|
||||
conn, err := m.MongoApp.GetMongoConn(m.GetMongoId(g))
|
||||
biz.ErrIsNil(err)
|
||||
rc.ReqParam = collx.Kvs("mongo", conn.Info, "cmd", commandForm)
|
||||
|
||||
// 解析docId文档id,如果为string类型则使用ObjectId解析,解析失败则为普通字符串
|
||||
docId := commandForm.DocId
|
||||
@@ -170,7 +177,7 @@ func (m *Mongo) UpdateByIdCommand(rc *req.Ctx) {
|
||||
}
|
||||
}
|
||||
|
||||
res, err := inst.Cli.Database(commandForm.Database).Collection(commandForm.Collection).UpdateByID(context.TODO(), docId, commandForm.Update)
|
||||
res, err := conn.Cli.Database(commandForm.Database).Collection(commandForm.Collection).UpdateByID(context.TODO(), docId, commandForm.Update)
|
||||
biz.ErrIsNilAppendErr(err, "命令执行失败: %s")
|
||||
|
||||
rc.ResData = res
|
||||
@@ -181,8 +188,9 @@ func (m *Mongo) DeleteByIdCommand(rc *req.Ctx) {
|
||||
commandForm := new(form.MongoUpdateByIdCommand)
|
||||
ginx.BindJsonAndValid(g, commandForm)
|
||||
|
||||
inst := m.MongoApp.GetMongoInst(m.GetMongoId(g))
|
||||
rc.ReqParam = collx.Kvs("mongo", inst.Info, "cmd", commandForm)
|
||||
conn, err := m.MongoApp.GetMongoConn(m.GetMongoId(g))
|
||||
biz.ErrIsNil(err)
|
||||
rc.ReqParam = collx.Kvs("mongo", conn.Info, "cmd", commandForm)
|
||||
|
||||
// 解析docId文档id,如果为string类型则使用ObjectId解析,解析失败则为普通字符串
|
||||
docId := commandForm.DocId
|
||||
@@ -194,7 +202,7 @@ func (m *Mongo) DeleteByIdCommand(rc *req.Ctx) {
|
||||
}
|
||||
}
|
||||
|
||||
res, err := inst.Cli.Database(commandForm.Database).Collection(commandForm.Collection).DeleteOne(context.TODO(), bson.D{{Key: "_id", Value: docId}})
|
||||
res, err := conn.Cli.Database(commandForm.Database).Collection(commandForm.Collection).DeleteOne(context.TODO(), bson.D{{Key: "_id", Value: docId}})
|
||||
biz.ErrIsNilAppendErr(err, "命令执行失败: %s")
|
||||
rc.ResData = res
|
||||
}
|
||||
@@ -204,10 +212,11 @@ func (m *Mongo) InsertOneCommand(rc *req.Ctx) {
|
||||
commandForm := new(form.MongoInsertCommand)
|
||||
ginx.BindJsonAndValid(g, commandForm)
|
||||
|
||||
inst := m.MongoApp.GetMongoInst(m.GetMongoId(g))
|
||||
rc.ReqParam = collx.Kvs("mongo", inst.Info, "cmd", commandForm)
|
||||
conn, err := m.MongoApp.GetMongoConn(m.GetMongoId(g))
|
||||
biz.ErrIsNil(err)
|
||||
rc.ReqParam = collx.Kvs("mongo", conn.Info, "cmd", commandForm)
|
||||
|
||||
res, err := inst.Cli.Database(commandForm.Database).Collection(commandForm.Collection).InsertOne(context.TODO(), commandForm.Doc)
|
||||
res, err := conn.Cli.Database(commandForm.Database).Collection(commandForm.Collection).InsertOne(context.TODO(), commandForm.Doc)
|
||||
biz.ErrIsNilAppendErr(err, "命令执行失败: %s")
|
||||
rc.ResData = res
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user