From 56e7a8843b8d4127bf625b0f9b6d7c2d9a1100a8 Mon Sep 17 00:00:00 2001 From: "meilin.huang" <954537473@qq.com> Date: Tue, 17 May 2022 20:23:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9Emongo=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E4=B8=8E=E6=95=B0=E6=8D=AE=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go.mod | 22 +- mayfly_go_web/src/router/imports.ts | 4 + mayfly_go_web/src/router/index.ts | 42 +- .../src/views/ops/mongo/MongoDataOp.vue | 420 +++++++++++++++++ .../src/views/ops/mongo/MongoEdit.vue | 188 ++++++++ .../src/views/ops/mongo/MongoList.vue | 427 ++++++++++++++++++ mayfly_go_web/src/views/ops/mongo/api.ts | 14 + .../src/views/ops/redis/RedisEdit.vue | 2 +- server/devops/api/form/mongo.go | 40 ++ server/devops/api/mongo.go | 168 +++++++ server/devops/application/mongo_app.go | 133 ++++++ server/devops/domain/entity/mongo.go | 14 + server/devops/domain/repository/mongo.go | 25 + .../infrastructure/persistence/mongo_repo.go | 61 +++ server/devops/router/mongo.go | 86 ++++ server/initialize/router.go | 1 + server/mayfly-go.sql | 28 ++ 17 files changed, 1648 insertions(+), 27 deletions(-) create mode 100644 mayfly_go_web/src/views/ops/mongo/MongoDataOp.vue create mode 100644 mayfly_go_web/src/views/ops/mongo/MongoEdit.vue create mode 100644 mayfly_go_web/src/views/ops/mongo/MongoList.vue create mode 100644 mayfly_go_web/src/views/ops/mongo/api.ts create mode 100644 server/devops/api/form/mongo.go create mode 100644 server/devops/api/mongo.go create mode 100644 server/devops/application/mongo_app.go create mode 100644 server/devops/domain/entity/mongo.go create mode 100644 server/devops/domain/repository/mongo.go create mode 100644 server/devops/infrastructure/persistence/mongo_repo.go create mode 100644 server/devops/router/mongo.go diff --git a/go.mod b/go.mod index bb193d8d..fc793477 100644 --- a/go.mod +++ b/go.mod @@ -3,19 +3,16 @@ module mayfly-go go 1.17 require ( - // jwt - github.com/dgrijalva/jwt-go v3.2.0+incompatible + github.com/dgrijalva/jwt-go v3.2.0+incompatible // jwt github.com/gin-gonic/gin v1.7.7 github.com/go-redis/redis v6.15.9+incompatible github.com/gorilla/websocket v1.5.0 - // 验证码 - github.com/mojocn/base64Captcha v1.3.5 + github.com/mojocn/base64Captcha v1.3.5 // 验证码 github.com/pkg/sftp v1.13.4 - // 定时任务 - github.com/robfig/cron/v3 v3.0.1 + github.com/robfig/cron/v3 v3.0.1 // 定时任务 github.com/sirupsen/logrus v1.8.1 - // ssh - golang.org/x/crypto v0.0.0-20220314234724-5d542ad81a58 + go.mongodb.org/mongo-driver v1.9.1 // mongo + golang.org/x/crypto v0.0.0-20220314234724-5d542ad81a58 // ssh gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // gorm gorm.io/driver/mysql v1.3.2 @@ -28,11 +25,14 @@ require ( github.com/go-playground/universal-translator v0.18.0 // indirect github.com/go-playground/validator/v10 v10.10.1 // indirect github.com/go-sql-driver/mysql v1.6.0 // indirect + github.com/go-stack/stack v1.8.0 // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/snappy v0.0.1 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.4 // indirect github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/compress v1.13.6 // indirect github.com/kr/fs v0.1.0 // indirect github.com/leodido/go-urn v1.2.1 // indirect github.com/mattn/go-isatty v0.0.14 // indirect @@ -40,8 +40,14 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/onsi/ginkgo v1.16.5 // indirect github.com/onsi/gomega v1.18.1 // indirect + github.com/pkg/errors v0.9.1 // indirect github.com/ugorji/go/codec v1.2.7 // indirect + github.com/xdg-go/pbkdf2 v1.0.0 // indirect + github.com/xdg-go/scram v1.0.2 // indirect + github.com/xdg-go/stringprep v1.0.2 // indirect + github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect golang.org/x/image v0.0.0-20220302094943-723b81ca9867 // indirect + golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 // indirect golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5 // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/protobuf v1.27.1 // indirect diff --git a/mayfly_go_web/src/router/imports.ts b/mayfly_go_web/src/router/imports.ts index b8ac288e..325d7086 100644 --- a/mayfly_go_web/src/router/imports.ts +++ b/mayfly_go_web/src/router/imports.ts @@ -18,4 +18,8 @@ export const imports = { // redis "RedisList": () => import('@/views/ops/redis'), "DataOperation": () => import('@/views/ops/redis/DataOperation.vue'), + // mongo + "MongoDataOp": () => import('@/views/ops/mongo/MongoDataOp.vue'), + // redis + "MongoList": () => import('@/views/ops/mongo/MongoList.vue'), } \ No newline at end of file diff --git a/mayfly_go_web/src/router/index.ts b/mayfly_go_web/src/router/index.ts index 6ba0ba7f..78f500f9 100644 --- a/mayfly_go_web/src/router/index.ts +++ b/mayfly_go_web/src/router/index.ts @@ -221,26 +221,32 @@ router.beforeEach((to, from, next) => { if (to.path === '/login' && !token) { next(); NProgress.done(); - } else { - if (!token) { - next(`/login?redirect=${to.path}`); - clearSession(); - resetRoute(); - NProgress.done(); + return; + } + if (!token) { + next(`/login?redirect=${to.path}`); + clearSession(); + resetRoute(); + NProgress.done(); - if (SysWs) { - SysWs.close(); - SysWs = null; - } - } else if (token && to.path === '/login') { - next('/'); - NProgress.done(); - } else { - if (!SysWs) { - SysWs = sockets.sysMsgSocket(); - } - if (store.state.routesList.routesList.length > 0) next(); + if (SysWs) { + SysWs.close(); + SysWs = null; } + return; + } + if (token && to.path === '/login') { + next('/'); + NProgress.done(); + return; + } + + // 终端不需要连接系统websocket消息 + if (!SysWs && to.path != '/machine/terminal') { + SysWs = sockets.sysMsgSocket(); + } + if (store.state.routesList.routesList.length > 0) { + next(); } }); diff --git a/mayfly_go_web/src/views/ops/mongo/MongoDataOp.vue b/mayfly_go_web/src/views/ops/mongo/MongoDataOp.vue new file mode 100644 index 00000000..85a75eff --- /dev/null +++ b/mayfly_go_web/src/views/ops/mongo/MongoDataOp.vue @@ -0,0 +1,420 @@ + + + + + diff --git a/mayfly_go_web/src/views/ops/mongo/MongoEdit.vue b/mayfly_go_web/src/views/ops/mongo/MongoEdit.vue new file mode 100644 index 00000000..28d5cfef --- /dev/null +++ b/mayfly_go_web/src/views/ops/mongo/MongoEdit.vue @@ -0,0 +1,188 @@ + + + + diff --git a/mayfly_go_web/src/views/ops/mongo/MongoList.vue b/mayfly_go_web/src/views/ops/mongo/MongoList.vue new file mode 100644 index 00000000..8c94ea39 --- /dev/null +++ b/mayfly_go_web/src/views/ops/mongo/MongoList.vue @@ -0,0 +1,427 @@ + + + + + diff --git a/mayfly_go_web/src/views/ops/mongo/api.ts b/mayfly_go_web/src/views/ops/mongo/api.ts new file mode 100644 index 00000000..55976a2c --- /dev/null +++ b/mayfly_go_web/src/views/ops/mongo/api.ts @@ -0,0 +1,14 @@ +import Api from '@/common/Api'; + +export const mongoApi = { + mongoList : Api.create("/mongos", 'get'), + saveMongo : Api.create("/mongos", 'post'), + deleteMongo : Api.create("/mongos/{id}", 'delete'), + databases: Api.create("/mongos/{id}/databases", 'get'), + collections: Api.create("/mongos/{id}/collections", 'get'), + runCommand: Api.create("/mongos/{id}/run-command", 'post'), + findCommand: Api.create("/mongos/{id}/command/find", 'post'), + updateByIdCommand: Api.create("/mongos/{id}/command/update-by-id", 'post'), + deleteByIdCommand: Api.create("/mongos/{id}/command/delete-by-id", 'post'), + insertCommand: Api.create("/mongos/{id}/command/insert", 'post'), +} \ No newline at end of file diff --git a/mayfly_go_web/src/views/ops/redis/RedisEdit.vue b/mayfly_go_web/src/views/ops/redis/RedisEdit.vue index 2e8309db..06dcd376 100644 --- a/mayfly_go_web/src/views/ops/redis/RedisEdit.vue +++ b/mayfly_go_web/src/views/ops/redis/RedisEdit.vue @@ -1,6 +1,6 @@