houyaf 3 년 전
부모
커밋
42564e7072

+ 6 - 0
go.mod

@@ -24,6 +24,7 @@ require (
 	github.com/blang/semver/v4 v4.0.0 // indirect
 	github.com/cespare/xxhash/v2 v2.2.0 // indirect
 	github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
+	github.com/dustin/go-humanize v1.0.1 // indirect
 	github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385 // indirect
 	github.com/fatih/structs v1.1.0 // indirect
 	github.com/flosch/pongo2/v4 v4.0.2 // indirect
@@ -49,16 +50,21 @@ require (
 	github.com/kataras/sitemap v0.0.6 // indirect
 	github.com/kataras/tunnel v0.0.4 // indirect
 	github.com/klauspost/compress v1.16.3 // indirect
+	github.com/klauspost/cpuid/v2 v2.2.4 // indirect
 	github.com/leodido/go-urn v1.2.2 // indirect
 	github.com/mailgun/raymond/v2 v2.0.48 // indirect
 	github.com/mailru/easyjson v0.7.7 // indirect
 	github.com/mediocregopher/radix/v3 v3.8.1 // indirect
 	github.com/microcosm-cc/bluemonday v1.0.23 // indirect
+	github.com/minio/md5-simd v1.1.2 // indirect
+	github.com/minio/minio-go/v7 v7.0.52 // indirect
+	github.com/minio/sha256-simd v1.0.0 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.2 // indirect
 	github.com/nats-io/nats.go v1.23.0 // indirect
 	github.com/nats-io/nkeys v0.3.0 // indirect
 	github.com/nats-io/nuid v1.0.1 // indirect
+	github.com/rs/xid v1.4.0 // indirect
 	github.com/russross/blackfriday/v2 v2.1.0 // indirect
 	github.com/schollz/closestmatch v2.1.0+incompatible // indirect
 	github.com/sirupsen/logrus v1.9.0 // indirect

+ 14 - 4
repositories/biz_object_oam_mapping_repo.go

@@ -58,10 +58,15 @@ func (d *BizObjectOAMMappingRepo) GetById(bizId, objectId, oamId, orId int64) (*
                               B.object_title,
                               B.object_code,
                               C.oam_title,
-                              C.oam_code   `
+                              C.oam_code,
+                              E.model_title  AS mapping_model_title,
+                              F.object_title AS mapping_object_title,
+                              F.object_code  AS mapping_object_code    `
     sqlFrom    := ` FROM      biz_object_oam_mapping AS A
                     LEFT JOIN biz_object             AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
-                    LEFT JOIN biz_object_oam         AS C ON (A.biz_id = C.biz_id AND A.object_id = C.object_id AND A.oam_id = C.oam_id)`
+                    LEFT JOIN biz_object_oam         AS C ON (A.biz_id = C.biz_id AND A.object_id = C.object_id AND A.oam_id = C.oam_id)
+                    LEFT JOIN ds_model               AS E ON (A.mapping_model_id = E.model_id)
+                    LEFT JOIN ds_object              AS F ON (A.mapping_model_id = F.model_id AND A.mapping_object_id = F.object_id)`
     sqlWhere   := ` WHERE 1=1    `
     sqlWhere   += fmt.Sprintf(" AND A.biz_id    = %d ", bizId)
     sqlWhere   += fmt.Sprintf(" AND A.object_id = %d ", objectId)
@@ -82,10 +87,15 @@ func (d *BizObjectOAMMappingRepo) GetListById(bizId, objectId, oamId int64) ([]v
                               B.object_title,
                               B.object_code,
                               C.oam_title,
-                              C.oam_code   `
+                              C.oam_code,
+                              E.model_title  AS mapping_model_title,
+                              F.object_title AS mapping_object_title,
+                              F.object_code  AS mapping_object_code    `
     sqlFrom    := ` FROM      biz_object_oam_mapping AS A
                     LEFT JOIN biz_object             AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
-                    LEFT JOIN biz_object_oam         AS C ON (A.biz_id = C.biz_id AND A.object_id = C.object_id AND A.oam_id = C.oam_id)`
+                    LEFT JOIN biz_object_oam         AS C ON (A.biz_id = C.biz_id AND A.object_id = C.object_id AND A.oam_id = C.oam_id)
+                    LEFT JOIN ds_model               AS E ON (A.mapping_model_id = E.model_id)
+                    LEFT JOIN ds_object              AS F ON (A.mapping_model_id = F.model_id AND A.mapping_object_id = F.object_id)`
     sqlWhere   := ` WHERE 1=1     `
     sqlWhere   += fmt.Sprintf(" AND A.biz_id    = %d ", bizId)
     sqlWhere   += fmt.Sprintf(" AND A.object_id = %d ", objectId)

+ 13 - 0
repositories/dashboard_repo.go

@@ -0,0 +1,13 @@
+package repositories
+
+import "xorm.io/xorm"
+
+type DashboardRepo struct {
+    engine *xorm.Engine
+}
+
+func NewDashboardRepo(engine *xorm.Engine) *DashboardRepo {
+    return &DashboardRepo{
+        engine: engine,
+    }
+}

+ 63 - 0
repositories/db_repo.go

@@ -1 +1,64 @@
 package repositories
+
+import (
+    "fmt"
+    "math"
+    "strconv"
+    "xorm.io/xorm"
+    "xps/viewmodels"
+)
+
+type DbRepo struct {
+    engine *xorm.Engine
+}
+
+func NewDbRepo(engine *xorm.Engine) *DbRepo {
+    return &DbRepo{
+        engine: engine,
+    }
+}
+
+func (d *DbRepo) GetPage(tableCode string) (*viewmodels.PageResult, error) {
+    limit     := 100
+    page      := 1
+    sqlStatement := ` SELECT A.*                `
+    sqlFrom      := fmt.Sprintf(" FROM  %s AS A ", tableCode)
+    sqlWhere     := ` WHERE  1 = 1 `
+    
+    sqlCount  := ` SELECT COUNT(*)           `
+    res, err1 := d.engine.Query(sqlCount + sqlWhere)
+    if err1 != nil {
+        return nil, err1
+    }
+    
+    total := int64(0)
+    for _, v := range res[0] {
+        total, _ = strconv.ParseInt(string(v), 10, 64)
+    }
+    
+    pageStart  := (page - 1) * limit
+    sqlLimit   := fmt.Sprintf(" LIMIT %d OFFSET %d ", limit, pageStart)
+    
+    results, err2 := d.engine.QueryInterface(sqlStatement + sqlFrom + sqlWhere + sqlLimit)
+    if err2 != nil {
+        return nil, err2
+    }
+    
+    pageResult := &viewmodels.PageResult{}
+    pageResult.Data     = results
+    pageResult.Total    = total
+    pageResult.PageSize = limit
+    pageResult.Page     = page
+    pageResult.TotalPage= int64(math.Ceil(float64(total / int64(limit))))
+    return pageResult, nil
+}
+
+func (d *DbRepo) GetList(tableCode string) ([]map[string]interface{}, error) {
+    sqlStatement := fmt.Sprintf(" SELECT * FROM %s ", tableCode)
+    sqlWhere     := ` WHERE  1 = 1 `
+    results, err := d.engine.QueryInterface(sqlStatement + sqlWhere)
+    if err != nil {
+        return nil, err
+    }
+    return results, nil
+}

+ 21 - 0
service/dashboard_service.go

@@ -0,0 +1,21 @@
+package service
+
+import (
+    "xps/datasource"
+    "xps/repositories"
+)
+
+type DashboardService interface {
+    
+
+}
+
+type dashboardService struct {
+    dashboardRepo *repositories.DashboardRepo
+}
+
+func NewDashboardService() DashboardService {
+    return &dashboardService{
+        dashboardRepo: repositories.NewDashboardRepo(datasource.InstanceMaster()),
+    }
+}

+ 0 - 1
service/db_bus_service.go

@@ -1 +0,0 @@
-package service

+ 30 - 0
service/db_service.go

@@ -0,0 +1,30 @@
+package service
+
+import (
+    "xps/datasource"
+    "xps/repositories"
+    "xps/viewmodels"
+)
+
+type DbService interface {
+    GetList(objectCode string) ([]map[string]interface{}, error)
+    GetPage(objectCode string) (*viewmodels.PageResult, error)
+}
+
+type dbService struct {
+    repo *repositories.DbRepo
+}
+
+func NewDbService() DbService {
+    return &dbService{
+        repo: repositories.NewDbRepo(datasource.InstanceMaster()),
+    }
+}
+
+func (s *dbService) GetList(objectCode string) ([]map[string]interface{}, error) {
+    return s.repo.GetList(objectCode)
+}
+
+func (s *dbService) GetPage(objectCode string) (*viewmodels.PageResult, error) {
+    return s.repo.GetPage(objectCode)
+}

+ 0 - 0
web/controllers/db_bus_controller.go → web/controllers/dashboard_controller.go


+ 34 - 0
web/controllers/db_controller.go

@@ -0,0 +1,34 @@
+package controllers
+
+import (
+    "github.com/kataras/iris/v12/mvc"
+    "xps/service"
+)
+
+type DbController struct {
+    Base
+    Service service.DbService
+}
+
+func (c *DbController) BeforeActivation(b mvc.BeforeActivation) {
+    b.Handle("GET",         "/{objectCode:string}",     "GetList"    )
+    b.Handle("GET",         "/{objectCode:string}/page","GetPage"    )
+}
+
+func (c *DbController) GetList(objectCode string) *JsonResult {
+    data, err := c.Service.GetList(objectCode)
+    if err != nil {
+        return ResultErr(err.Error(), nil)
+    } else {
+        return ResultOk("获取成功", data)
+    }
+}
+
+func (c *DbController) GetPage(objectCode string) *JsonResult {
+    data, err := c.Service.GetPage(objectCode)
+    if err != nil {
+        return ResultErr(err.Error(), nil)
+    } else {
+        return ResultOk("获取成功", data)
+    }
+}

+ 1 - 1
web/router/routes.go

@@ -219,7 +219,7 @@ func Configure(b *bootstrap.Bootstrapper) {
 	}
 	
 	// database
-	databaseParty := b.Party("/database", crs).AllowMethods(iris.MethodOptions)
+	databaseParty := b.Party("/db", crs).AllowMethods(iris.MethodOptions)
 	{
 		databaseParty.Use(middleware.AuthToken)
 		databaseTypeService := service.NewDbTypeService()