mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-09-20 17:57:54 +00:00
refactor🎨 api数据初始化调整
This commit is contained in:
+10
-19
@@ -26,7 +26,6 @@ type SysApi struct {
|
||||
// @Param title query string false "标题"
|
||||
// @Param path query string false "地址"
|
||||
// @Param action query string false "类型"
|
||||
// @Param parentId query string false "按钮id"
|
||||
// @Param pageSize query int false "页条数"
|
||||
// @Param pageIndex query int false "页码"
|
||||
// @Success 200 {object} response.Response{data=response.Page{list=[]models.SysApi}} "{"code": 200, "data": [...]}"
|
||||
@@ -77,34 +76,26 @@ func (e SysApi) GetSysApiList(c *gin.Context) {
|
||||
// @Router /api/v1/sys_api/{id} [get]
|
||||
// @Security Bearer
|
||||
func (e SysApi) GetSysApi(c *gin.Context) {
|
||||
e.MakeContext(c)
|
||||
log := e.GetLogger()
|
||||
db, err := e.GetOrm()
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
control := new(dto.SysApiById)
|
||||
|
||||
//查看详情
|
||||
err = e.Bind(control)
|
||||
s := new(service.SysApi)
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(control).
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
log.Warnf("request body bind error, %s", err.Error())
|
||||
e.Error(http.StatusUnprocessableEntity, err, "参数验证失败")
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
var object models.SysApi
|
||||
|
||||
//数据权限检查
|
||||
p := actions.GetPermissionFromContext(c)
|
||||
|
||||
serviceSysApi := service.SysApi{}
|
||||
serviceSysApi.Log = log
|
||||
serviceSysApi.Orm = db
|
||||
err = serviceSysApi.GetSysApi(control, p, &object)
|
||||
err = s.GetSysApi(control, p, &object).Error
|
||||
if err != nil {
|
||||
log.Errorf("Get SysApi error, %s", err.Error())
|
||||
e.Logger.Errorf("Get SysApi error, %s", err.Error())
|
||||
e.Error(http.StatusInternalServerError, err, "查询失败")
|
||||
return
|
||||
}
|
||||
|
||||
+56
-109
@@ -18,31 +18,24 @@ type SysConfig struct {
|
||||
}
|
||||
|
||||
func (e SysConfig) GetSysConfigList(c *gin.Context) {
|
||||
e.MakeContext(c)
|
||||
log := e.GetLogger()
|
||||
s := service.SysConfig{}
|
||||
d := new(dto.SysConfigSearch)
|
||||
db, err := e.GetOrm()
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(d, binding.Query).
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
return
|
||||
}
|
||||
err = e.Bind(d, binding.Query)
|
||||
//查询列表
|
||||
//err = d.Bind(c)
|
||||
if err != nil {
|
||||
log.Errorf("参数验证失败, error:%s", err)
|
||||
e.Error(500, err, "参数验证失败")
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
list := make([]models.SysConfig, 0)
|
||||
var count int64
|
||||
s := service.SysConfig{}
|
||||
s.Log = log
|
||||
s.Orm = db
|
||||
err = s.GetSysConfigPage(d, &list, &count)
|
||||
if err != nil {
|
||||
log.Errorf("GetSysConfigPage 查询失败, error:%s", err)
|
||||
e.Logger.Errorf("GetSysConfigPage 查询失败, error:%s", err)
|
||||
e.Error(500, err, "查询失败")
|
||||
return
|
||||
}
|
||||
@@ -51,31 +44,24 @@ func (e SysConfig) GetSysConfigList(c *gin.Context) {
|
||||
|
||||
// GetSysConfigBySysApp 获取系统配置信息,主要注意这里不在验证数据权限
|
||||
func (e SysConfig) GetSysConfigBySysApp(c *gin.Context) {
|
||||
e.Context = c
|
||||
log := e.GetLogger()
|
||||
d := new(dto.SysConfigSearch)
|
||||
db, err := e.GetOrm()
|
||||
s := service.SysConfig{}
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(d, nil).
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
return
|
||||
}
|
||||
err = e.Bind(d, binding.Query)
|
||||
if err != nil {
|
||||
log.Errorf("参数验证失败, error:%s", err)
|
||||
e.Error(500, err, "参数验证失败")
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
// 控制只读前台的数据
|
||||
d.IsFrontend = 1
|
||||
|
||||
list := make([]models.SysConfig, 0)
|
||||
s := service.SysConfig{}
|
||||
s.Log = log
|
||||
s.Orm = db
|
||||
err = s.GetSysConfigByKey(d, &list)
|
||||
if err != nil {
|
||||
log.Errorf("GetSysConfigPage 查询失败, error:%s", err)
|
||||
e.Logger.Errorf("GetSysConfigPage 查询失败, error:%s", err)
|
||||
e.Error(500, err, "查询失败")
|
||||
return
|
||||
}
|
||||
@@ -90,32 +76,23 @@ func (e SysConfig) GetSysConfigBySysApp(c *gin.Context) {
|
||||
}
|
||||
|
||||
func (e SysConfig) GetSysConfig(c *gin.Context) {
|
||||
e.Context = c
|
||||
log := e.GetLogger()
|
||||
control := new(dto.SysConfigById)
|
||||
db, err := e.GetOrm()
|
||||
s := service.SysConfig{}
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(control).
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
return
|
||||
}
|
||||
//查看详情
|
||||
err = e.Bind(control)
|
||||
err = control.Bind(c)
|
||||
if err != nil {
|
||||
e.Error(http.StatusUnprocessableEntity, err, "参数验证失败")
|
||||
log.Errorf("Orm获取失败, error:%s", err)
|
||||
e.Error(500, err, "Orm获取失败")
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
var object models.SysConfig
|
||||
|
||||
serviceSysLoginLog := service.SysConfig{}
|
||||
serviceSysLoginLog.Log = log
|
||||
serviceSysLoginLog.Orm = db
|
||||
err = serviceSysLoginLog.GetSysConfig(control, &object)
|
||||
err = s.GetSysConfig(control, &object)
|
||||
if err != nil {
|
||||
e.Error(http.StatusUnprocessableEntity, err, "查询失败")
|
||||
log.Errorf("Orm获取失败, error:%s", err)
|
||||
e.Logger.Errorf("Orm获取失败, error:%s", err)
|
||||
e.Error(500, err, "Orm获取失败")
|
||||
return
|
||||
}
|
||||
@@ -124,123 +101,93 @@ func (e SysConfig) GetSysConfig(c *gin.Context) {
|
||||
}
|
||||
|
||||
func (e SysConfig) InsertSysConfig(c *gin.Context) {
|
||||
e.Context = c
|
||||
log := e.GetLogger()
|
||||
s := service.SysConfig{}
|
||||
control := new(dto.SysConfigControl)
|
||||
db, err := e.GetOrm()
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(control).
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
//新增操作
|
||||
err = e.Bind(control, binding.JSON)
|
||||
if err != nil {
|
||||
e.Error(http.StatusUnprocessableEntity, err, "参数验证失败")
|
||||
log.Errorf("Orm获取失败, error:%s", err)
|
||||
e.Error(500, err, "Orm获取失败")
|
||||
return
|
||||
}
|
||||
object, err := control.Generate()
|
||||
if err != nil {
|
||||
e.Error(http.StatusInternalServerError, err, "模型生成失败")
|
||||
log.Errorf("Orm获取失败, error:%s", err)
|
||||
e.Error(500, err, "Orm获取失败")
|
||||
e.Logger.Errorf("Orm获取失败, error:%s", err)
|
||||
return
|
||||
}
|
||||
// 设置创建人
|
||||
object.SetCreateBy(user.GetUserId(c))
|
||||
|
||||
serviceSysLoginLog := service.SysConfig{}
|
||||
serviceSysLoginLog.Orm = db
|
||||
serviceSysLoginLog.Log = log
|
||||
err = serviceSysLoginLog.InsertSysConfig(object)
|
||||
err = s.InsertSysConfig(object)
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
e.Logger.Error(err)
|
||||
e.Error(http.StatusInternalServerError, err, "创建失败")
|
||||
log.Errorf("Orm获取失败, error:%s", err)
|
||||
e.Error(500, err, "Orm获取失败")
|
||||
return
|
||||
}
|
||||
|
||||
e.OK(object.GetId(), "创建成功")
|
||||
}
|
||||
|
||||
func (e SysConfig) UpdateSysConfig(c *gin.Context) {
|
||||
e.Context = c
|
||||
log := e.GetLogger()
|
||||
s := service.SysConfig{}
|
||||
control := new(dto.SysConfigControl)
|
||||
db, err := e.GetOrm()
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(control).
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
//更新操作
|
||||
err = e.Bind(control, binding.JSON)
|
||||
|
||||
if err != nil {
|
||||
e.Error(http.StatusUnprocessableEntity, err, "参数验证失败")
|
||||
log.Errorf("Orm获取失败, error:%s", err)
|
||||
e.Error(500, err, "Orm获取失败")
|
||||
return
|
||||
}
|
||||
object, err := control.Generate()
|
||||
if err != nil {
|
||||
e.Error(http.StatusInternalServerError, err, "模型生成失败")
|
||||
log.Errorf("Orm获取失败, error:%s", err)
|
||||
e.Error(500, err, "Orm获取失败")
|
||||
e.Logger.Errorf("Orm获取失败, error:%s", err)
|
||||
return
|
||||
}
|
||||
object.SetUpdateBy(user.GetUserId(c))
|
||||
|
||||
serviceSysLoginLog := service.SysConfig{}
|
||||
serviceSysLoginLog.Orm = db
|
||||
serviceSysLoginLog.Log = log
|
||||
err = serviceSysLoginLog.UpdateSysConfig(object)
|
||||
err = s.UpdateSysConfig(object)
|
||||
if err != nil {
|
||||
e.Error(http.StatusUnprocessableEntity, err, "更新失败")
|
||||
log.Errorf("Orm获取失败, error:%s", err)
|
||||
e.Error(500, err, "Orm获取失败")
|
||||
e.Logger.Errorf("Orm获取失败, error:%s", err)
|
||||
return
|
||||
}
|
||||
e.OK(object.GetId(), "更新成功")
|
||||
}
|
||||
|
||||
func (e SysConfig) DeleteSysConfig(c *gin.Context) {
|
||||
e.Context = c
|
||||
log := e.GetLogger()
|
||||
s := service.SysConfig{}
|
||||
control := new(dto.SysConfigById)
|
||||
db, err := e.GetOrm()
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(control).
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
//删除操作
|
||||
err = e.Bind(control, binding.JSON)
|
||||
if err != nil {
|
||||
log.Errorf("Bind error: %s", err)
|
||||
e.Error(http.StatusUnprocessableEntity, err, "参数验证失败")
|
||||
return
|
||||
}
|
||||
object, err := control.GenerateM()
|
||||
if err != nil {
|
||||
e.Error(http.StatusInternalServerError, err, "模型生成失败")
|
||||
log.Errorf("Orm获取失败, error:%s", err)
|
||||
e.Logger.Errorf("Orm获取失败, error:%s", err)
|
||||
return
|
||||
}
|
||||
|
||||
// 设置编辑人
|
||||
object.SetUpdateBy(user.GetUserId(c))
|
||||
|
||||
serviceSysLoginLog := service.SysConfig{}
|
||||
serviceSysLoginLog.Orm = db
|
||||
serviceSysLoginLog.Log = log
|
||||
err = serviceSysLoginLog.RemoveSysConfig(control, object)
|
||||
err = s.RemoveSysConfig(control, object)
|
||||
if err != nil {
|
||||
e.Error(http.StatusUnprocessableEntity, err, "删除失败")
|
||||
log.Errorf("Orm获取失败, error:%s", err)
|
||||
e.Logger.Errorf("Orm获取失败, error:%s", err)
|
||||
return
|
||||
}
|
||||
e.OK(object.GetId(), "删除成功")
|
||||
|
||||
@@ -113,27 +113,20 @@ func (e SysMenu) GetSysMenu(c *gin.Context) {
|
||||
// @Security Bearer
|
||||
func (e SysMenu) InsertSysMenu(c *gin.Context) {
|
||||
control := new(dto.SysMenuControl)
|
||||
s := new(service.SysMenu)
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(control).
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
e.Error(http.StatusInternalServerError, err, err.Error())
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
// 绑定数据
|
||||
err = e.Bind(control)
|
||||
if err != nil {
|
||||
e.Error(http.StatusUnprocessableEntity, err, "参数验证失败")
|
||||
return
|
||||
}
|
||||
|
||||
// 设置创建人
|
||||
control.SetCreateBy(user.GetUserId(c))
|
||||
|
||||
serviceSysMenu := service.SysMenu{}
|
||||
err = serviceSysMenu.MakeLog(e.Logger).MakeOrm(e.Orm).InsertSysMenu(control).Error
|
||||
err = s.InsertSysMenu(control).Error
|
||||
if err != nil {
|
||||
e.Logger.Error(err)
|
||||
e.Error(http.StatusInternalServerError, err, "创建失败")
|
||||
@@ -156,28 +149,19 @@ func (e SysMenu) InsertSysMenu(c *gin.Context) {
|
||||
// @Security Bearer
|
||||
func (e SysMenu) UpdateSysMenu(c *gin.Context) {
|
||||
control := new(dto.SysMenuControl)
|
||||
s := new(service.SysMenu)
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(control).
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
// 绑定数据
|
||||
err = e.Bind(control)
|
||||
if err != nil {
|
||||
e.Error(http.StatusUnprocessableEntity, err, "参数验证失败")
|
||||
return
|
||||
}
|
||||
control.SetUpdateBy(user.GetUserId(c))
|
||||
|
||||
serviceSysMenu := service.SysMenu{}
|
||||
err = serviceSysMenu.
|
||||
MakeOrm(e.Orm).
|
||||
MakeLog(e.Logger).
|
||||
UpdateSysMenu(control).Error
|
||||
|
||||
err = s.UpdateSysMenu(control).Error
|
||||
if err != nil {
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
|
||||
@@ -3,6 +3,11 @@ package models
|
||||
import (
|
||||
// "gorm.io/gorm"
|
||||
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/go-admin-team/go-admin-core/sdk"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/runtime"
|
||||
"github.com/go-admin-team/go-admin-core/storage"
|
||||
"go-admin/common/models"
|
||||
)
|
||||
|
||||
@@ -32,3 +37,32 @@ func (e *SysApi) Generate() models.ActiveRecord {
|
||||
func (e *SysApi) GetId() interface{} {
|
||||
return e.Id
|
||||
}
|
||||
|
||||
func SaveSysApi(message storage.Messager) (err error) {
|
||||
var rb []byte
|
||||
rb, err = json.Marshal(message.GetValues())
|
||||
if err != nil {
|
||||
fmt.Errorf("json Marshal error, %s", err.Error())
|
||||
return err
|
||||
}
|
||||
|
||||
var l runtime.Routers
|
||||
err = json.Unmarshal(rb, &l)
|
||||
if err != nil {
|
||||
fmt.Errorf("json Unmarshal error, %s", err.Error())
|
||||
return err
|
||||
}
|
||||
dbList := sdk.Runtime.GetDb()
|
||||
for _, d := range dbList {
|
||||
for _, v := range l.List {
|
||||
err := d.Debug().Where(SysApi{Path: v.RelativePath, Action: v.HttpMethod}).
|
||||
Attrs(SysApi{Handle: v.Handler}).
|
||||
FirstOrCreate(&SysApi{}).Error
|
||||
if err != nil {
|
||||
err := fmt.Errorf("Models SaveSysApi error: %s \r\n ", err.Error())
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -39,7 +39,7 @@ func (e *SysApi) GetSysApiPage(c *dto.SysApiSearch, p *actions.DataPermission, l
|
||||
}
|
||||
|
||||
// GetSysApi 获取SysApi对象
|
||||
func (e *SysApi) GetSysApi(d *dto.SysApiById, p *actions.DataPermission, model *models.SysApi) error {
|
||||
func (e *SysApi) GetSysApi(d *dto.SysApiById, p *actions.DataPermission, model *models.SysApi) *SysApi {
|
||||
var data models.SysApi
|
||||
|
||||
err := e.Orm.Model(&data).
|
||||
@@ -50,11 +50,13 @@ func (e *SysApi) GetSysApi(d *dto.SysApiById, p *actions.DataPermission, model *
|
||||
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
err = errors.New("查看对象不存在或无权查看")
|
||||
e.Log.Errorf("Service GetSysApi error:%s", err)
|
||||
return err
|
||||
e.AddError(err)
|
||||
return e
|
||||
}
|
||||
if err != nil {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
return err
|
||||
e.AddError(err)
|
||||
return e
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -62,7 +64,9 @@ func (e *SysApi) GetSysApi(d *dto.SysApiById, p *actions.DataPermission, model *
|
||||
// InsertSysApi 创建SysApi对象
|
||||
func (e *SysApi) CheckStorageSysApi(c *[]runtime.Router) error {
|
||||
for _, v := range *c {
|
||||
err := e.Orm.Debug().Where(models.SysApi{Path: v.RelativePath, Action: v.HttpMethod}).Attrs(models.SysApi{Handle: v.Handler}).FirstOrCreate(&models.SysApi{}).Error
|
||||
err := e.Orm.Debug().Where(models.SysApi{Path: v.RelativePath, Action: v.HttpMethod}).
|
||||
Attrs(models.SysApi{Handle: v.Handler}).
|
||||
FirstOrCreate(&models.SysApi{}).Error
|
||||
if err != nil {
|
||||
err := fmt.Errorf("Service CheckStorageSysApi error: %s \r\n ", err.Error())
|
||||
return err
|
||||
|
||||
+12
-23
@@ -1,36 +1,25 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"github.com/go-admin-team/go-admin-core/sdk"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/config"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
log "github.com/go-admin-team/go-admin-core/logger"
|
||||
"github.com/go-admin-team/go-admin-core/tools/transfer"
|
||||
"github.com/prometheus/client_golang/prometheus/promhttp"
|
||||
)
|
||||
|
||||
func Monitor() {
|
||||
var r *gin.Engine
|
||||
h := sdk.Runtime.GetEngine()
|
||||
if h == nil {
|
||||
h = gin.New()
|
||||
sdk.Runtime.SetEngine(h)
|
||||
}
|
||||
switch h.(type) {
|
||||
case *gin.Engine:
|
||||
r = h.(*gin.Engine)
|
||||
//开发环境启动监控指标
|
||||
setHandle(r)
|
||||
default:
|
||||
log.Fatal("not support other engine")
|
||||
}
|
||||
func init() {
|
||||
routerNoCheckRole = append(routerNoCheckRole, registerMonitorRouter)
|
||||
}
|
||||
|
||||
func setHandle(r *gin.Engine) {
|
||||
r.GET("/metrics", transfer.Handler(promhttp.Handler()))
|
||||
//健康检查
|
||||
r.GET("/health", func(c *gin.Context) {
|
||||
c.Status(http.StatusOK)
|
||||
})
|
||||
// 需认证的路由代码
|
||||
func registerMonitorRouter(v1 *gin.RouterGroup) {
|
||||
if config.ApplicationConfig.Mode == "dev" {
|
||||
v1.GET("/metrics", transfer.Handler(promhttp.Handler()))
|
||||
//健康检查
|
||||
v1.GET("/health", func(c *gin.Context) {
|
||||
c.Status(http.StatusOK)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
package router
|
||||
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
|
||||
|
||||
+28
-14
@@ -3,10 +3,6 @@ package api
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/runtime"
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service"
|
||||
router2 "go-admin/app/other/router"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
@@ -20,8 +16,10 @@ import (
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/captcha"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/logger"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/runtime"
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/router"
|
||||
"go-admin/app/jobs"
|
||||
"go-admin/common/database"
|
||||
@@ -31,6 +29,7 @@ import (
|
||||
|
||||
var (
|
||||
configYml string
|
||||
apiCheck bool
|
||||
StartCmd = &cobra.Command{
|
||||
Use: "server",
|
||||
Short: "Start API server",
|
||||
@@ -49,6 +48,7 @@ var AppRouters = make([]func(), 0)
|
||||
|
||||
func init() {
|
||||
StartCmd.PersistentFlags().StringVarP(&configYml, "config", "c", "config/settings.yml", "Start server with provided configuration file")
|
||||
StartCmd.PersistentFlags().BoolVarP(&apiCheck, "api", "a", false, "Start server with check api data")
|
||||
|
||||
//注册路由 fixme 其他应用的路由,在本目录新建文件放在init方法
|
||||
AppRouters = append(AppRouters, router.InitRouter)
|
||||
@@ -105,6 +105,7 @@ func setup() {
|
||||
queue := sdk.Runtime.GetMemoryQueue("")
|
||||
queue.Register(global.LoginLog, models.SaveLoginLog)
|
||||
queue.Register(global.OperateLog, models.SaveOperaLog)
|
||||
queue.Register(global.ApiCheck, models.SaveSysApi)
|
||||
go queue.Run()
|
||||
}
|
||||
|
||||
@@ -119,11 +120,6 @@ func run() error {
|
||||
engine = gin.New()
|
||||
}
|
||||
|
||||
if config.ApplicationConfig.Mode == "dev" {
|
||||
//监控
|
||||
AppRouters = append(AppRouters, router2.Monitor)
|
||||
}
|
||||
|
||||
for _, f := range AppRouters {
|
||||
f()
|
||||
}
|
||||
@@ -137,11 +133,29 @@ func run() error {
|
||||
jobs.Setup(sdk.Runtime.GetDb())
|
||||
|
||||
}()
|
||||
|
||||
serviceApi := service.SysApi{}
|
||||
serviceApi.Orm = sdk.Runtime.GetDb()["*"]
|
||||
var routers = sdk.Runtime.GetRouter()
|
||||
serviceApi.CheckStorageSysApi(&routers)
|
||||
if apiCheck {
|
||||
var routers = sdk.Runtime.GetRouter()
|
||||
q := sdk.Runtime.GetMemoryQueue("")
|
||||
mp := make(map[string]interface{}, 0)
|
||||
mp["List"] = routers
|
||||
message, err := sdk.Runtime.GetStreamMessage("", global.ApiCheck, mp)
|
||||
if err != nil {
|
||||
log.Printf("GetStreamMessage error, %s \n", err.Error())
|
||||
//日志报错错误,不中断请求
|
||||
} else {
|
||||
err = q.Append(message)
|
||||
if err != nil {
|
||||
log.Printf("Append message error, %s \n", err.Error())
|
||||
}
|
||||
}
|
||||
}
|
||||
//serviceApi := service.SysApi{}
|
||||
//serviceApi.Orm = sdk.Runtime.GetDb()["*"]
|
||||
//var routers = sdk.Runtime.GetRouter()
|
||||
//err := serviceApi.CheckStorageSysApi(&routers)
|
||||
//if err != nil {
|
||||
// log.Println("Server check api data :", err)
|
||||
//}
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
+11
-4
@@ -4,6 +4,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"go-admin/common/service"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -21,7 +22,7 @@ type Api struct {
|
||||
Errors error
|
||||
}
|
||||
|
||||
func (e *Api) AddError(err error) {
|
||||
func (e *Api) AddError(err error) {
|
||||
if e.Errors == nil {
|
||||
e.Errors = err
|
||||
} else if err != nil {
|
||||
@@ -44,7 +45,7 @@ func (e Api) GetLogger() *logger.Logger {
|
||||
return api.GetRequestLogger(e.Context)
|
||||
}
|
||||
|
||||
func (e Api) Bind(d interface{}, bindings ...binding.Binding) error {
|
||||
func (e *Api) Bind(d interface{}, bindings ...binding.Binding) *Api {
|
||||
var err error
|
||||
if len(bindings) == 0 {
|
||||
bindings = append(bindings, binding.JSON, nil)
|
||||
@@ -75,10 +76,10 @@ func (e Api) Bind(d interface{}, bindings ...binding.Binding) error {
|
||||
err = e.Context.ShouldBindUri(d)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
e.AddError(err)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
return e
|
||||
}
|
||||
|
||||
// GetOrm 获取Orm DB
|
||||
@@ -109,6 +110,12 @@ func (e *Api) MakeOrm() *Api {
|
||||
return e
|
||||
}
|
||||
|
||||
func (e *Api) MakeService(c *service.Service) *Api {
|
||||
c.Log = e.Logger
|
||||
c.Orm = e.Orm
|
||||
return e
|
||||
}
|
||||
|
||||
// Error 通常错误数据处理
|
||||
func (e Api) Error(code int, err error, msg string) {
|
||||
response.Error(e.Context, code, err, msg)
|
||||
|
||||
@@ -3,4 +3,5 @@ package global
|
||||
const (
|
||||
LoginLog = "login_log_queue"
|
||||
OperateLog = "operate_log_queue"
|
||||
ApiCheck = "api_check_queue"
|
||||
)
|
||||
Reference in New Issue
Block a user