完成flow,监控迁移

This commit is contained in:
xh
2025-06-24 19:09:04 +08:00
parent a974ef2a01
commit e84a1e75f1
33 changed files with 569 additions and 573 deletions

View File

@@ -62,7 +62,7 @@ func init() {
factory.RegisterService(constant.ClickWordCaptcha, service.NewClickWordCaptchaService(factory))
factory.RegisterService(constant.BlockPuzzleCaptcha, service.NewBlockPuzzleCaptchaService(factory))
}
func CaptchaRoute(rg *gin.RouterGroup) {
func RegisterRoute(rg *gin.RouterGroup) {
rg = rg.Group("/common/captcha")
rg.POST("/get", func(c *gin.Context) {

View File

@@ -1,127 +0,0 @@
package flow_apply
import (
"x_admin/config"
"x_admin/core/request"
"x_admin/core/response"
"x_admin/util"
"github.com/gin-gonic/gin"
)
type FlowApplyHandler struct{}
// @Summary 申请流程列表
// @Tags flow_apply-申请流程
// @Produce json
// @Param Token header string true "token"
// @Param PageNo query int true "页码"
// @Param PageSize query int true "每页数量"
// @Param templateId query int false "模板"
// @Param applyUserId query int false "申请人id"
// @Param applyUserNickname query string false "申请人昵称"
// @Param flowName query string false "流程名称"
// @Param flowGroup query int false "流程分类"
// @Param flowRemark query string false "流程描述"
// @Param flowFormData query string false "表单配置"
// @Param flowProcessData query string false "流程配置"
// @Param status query int false "状态1待提交2审批中3审批完成4审批失败"
// @Success 200 {object} response.Response{data=response.PageResp{lists=[]FlowApplyResp}} "成功"
// @Router /api/admin/flow/flow_apply/list [get]
func (hd FlowApplyHandler) List(c *gin.Context) {
var page request.PageReq
var listReq FlowApplyListReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &page)) {
return
}
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := Service.List(page, listReq)
response.CheckAndRespWithData(c, res, err)
}
// @Summary 申请流程详情
// @Tags flow_apply-申请流程
// @Produce json
// @Param Token header string true "token"
// @Param id query int false "申请id"
// @Success 200 {object} response.Response{data=FlowApplyResp} "成功"
// @Router /api/admin/flow/flow_apply/detail [get]
func (hd FlowApplyHandler) Detail(c *gin.Context) {
var detailReq FlowApplyDetailReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &detailReq)) {
return
}
res, err := Service.Detail(detailReq.Id)
response.CheckAndRespWithData(c, res, err)
}
// @Summary 申请流程新增
// @Tags flow_apply-申请流程
// @Produce json
// @Param Token header string true "token"
// @Param templateId body int false "模板"
// @Param applyUserId body int false "申请人id"
// @Param applyUserNickname body string false "申请人昵称"
// @Param flowName body string false "流程名称"
// @Param flowGroup body int false "流程分类"
// @Param flowRemark body string false "流程描述"
// @Param flowFormData body string false "表单配置"
// @Param flowProcessData body string false "流程配置"
// @Param status body int false "状态1待提交2审批中3审批完成4审批失败"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/flow/flow_apply/add [post]
func (hd FlowApplyHandler) Add(c *gin.Context) {
var addReq FlowApplyAddReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &addReq)) {
return
}
var Nickname = config.AdminConfig.GetNickname(c)
var AdminId = config.AdminConfig.GetAdminId(c)
addReq.ApplyUserNickname = Nickname
addReq.ApplyUserId = int(AdminId)
addReq.Status = 1
response.CheckAndResp(c, Service.Add(addReq))
}
// @Summary 申请流程编辑
// @Tags flow_apply-申请流程
// @Produce json
// @Param Token header string true "token"
// @Param id body int false "申请id"
// @Param templateId body int false "模板"
// @Param applyUserId body int false "申请人id"
// @Param applyUserNickname body string false "申请人昵称"
// @Param flowName body string false "流程名称"
// @Param flowGroup body int false "流程分类"
// @Param flowRemark body string false "流程描述"
// @Param flowFormData body string false "表单配置"
// @Param flowProcessData body string false "流程配置"
// @Param status body int false "状态1待提交2审批中3审批完成4审批失败"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/flow/flow_apply/edit [post]
func (hd FlowApplyHandler) Edit(c *gin.Context) {
var editReq FlowApplyEditReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &editReq)) {
return
}
response.CheckAndResp(c, Service.Edit(editReq))
}
// @Summary 申请流程删除
// @Tags flow_apply-申请流程
// @Produce json
// @Param Token header string true "token"
// @Param id body int false "申请id"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/flow/flow_apply/del [post]
func (hd FlowApplyHandler) Del(c *gin.Context) {
var delReq FlowApplyDelReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &delReq)) {
return
}
response.CheckAndResp(c, Service.Del(delReq.Id))
}

View File

@@ -12,22 +12,21 @@ import (
)
var {{{ toUpperCamelCase .EntityName }}}Service=New{{{ toUpperCamelCase .EntityName }}}Service()
var cacheUtil = util.CacheUtil{
Name: {{{ toUpperCamelCase .EntityName }}}Service.Name,
}
// New{{{ toUpperCamelCase .EntityName }}}Service 初始化
func New{{{ toUpperCamelCase .EntityName }}}Service() *{{{ toCamelCase .EntityName }}}Service {
return &{{{ toCamelCase .EntityName }}}Service{
db: core.GetDB(),
Name: "{{{ toCamelCase .EntityName }}}",
CacheUtil util.CacheUtil{
Name: "{{{ toCamelCase .EntityName }}}",
}
}
}
//{{{ toCamelCase .EntityName }}}Service {{{ .FunctionName }}}服务实现类
type {{{ toCamelCase .EntityName }}}Service struct {
db *gorm.DB
Name string
CacheUtil util.CacheUtil
}
@@ -108,7 +107,7 @@ func (service {{{ toCamelCase .EntityName }}}Service) ListAll(listReq {{{ toUppe
// Detail {{{ .FunctionName }}}详情
func (service {{{ toCamelCase .EntityName }}}Service) Detail({{{ toUpperCamelCase .PrimaryKey }}} int) (res {{{ toUpperCamelCase .EntityName }}}Resp, e error) {
var obj = model.{{{ toUpperCamelCase .EntityName }}}{}
err := cacheUtil.GetCache({{{ toUpperCamelCase .PrimaryKey }}}, &obj)
err := service.CacheUtil.GetCache({{{ toUpperCamelCase .PrimaryKey }}}, &obj)
if err != nil {
err := service.db.Where("{{{ $.PrimaryKey }}} = ?{{{ if contains .AllFields "is_delete" }}} AND is_delete = ?{{{ end }}}", {{{ toUpperCamelCase .PrimaryKey }}}{{{ if contains .AllFields "is_delete" }}}, 0{{{ end }}}).Limit(1).First(&obj).Error
if e = response.CheckErrDBNotRecord(err, "数据不存在!"); e != nil {
@@ -123,7 +122,7 @@ func (service {{{ toCamelCase .EntityName }}}Service) Detail({{{ toUpperCamelCas
res.Avatar = util.UrlUtil.ToAbsoluteUrl(res.Avatar)
{{{- end }}}
{{{- end }}}
cacheUtil.SetCache(obj.{{{ toUpperCamelCase .PrimaryKey }}}, obj)
service.CacheUtil.SetCache(obj.{{{ toUpperCamelCase .PrimaryKey }}}, obj)
}
convert_util.Copy(&res, obj)
@@ -139,7 +138,7 @@ func (service {{{ toCamelCase .EntityName }}}Service) Add(addReq {{{ toUpperCame
if e != nil {
return 0,e
}
cacheUtil.SetCache(obj.{{{ toUpperCamelCase .PrimaryKey }}}, obj)
service.CacheUtil.SetCache(obj.{{{ toUpperCamelCase .PrimaryKey }}}, obj)
createId = obj.{{{ toUpperCamelCase .PrimaryKey }}}
return
}
@@ -161,7 +160,7 @@ func (service {{{ toCamelCase .EntityName }}}Service) Edit(editReq {{{ toUpperCa
if e = response.CheckErr(err, "编辑失败"); e != nil {
return
}
cacheUtil.RemoveCache(obj.Id)
service.CacheUtil.RemoveCache(obj.Id)
service.Detail(obj.Id)
return
}
@@ -189,7 +188,7 @@ func (service {{{ toCamelCase .EntityName }}}Service) Del({{{ toUpperCamelCase .
err = service.db.Delete(&obj).Error
e = response.CheckErr(err, "删除失败")
{{{- end }}}
cacheUtil.RemoveCache(obj.{{{ toUpperCamelCase .PrimaryKey }}})
service.CacheUtil.RemoveCache(obj.{{{ toUpperCamelCase .PrimaryKey }}})
return
}
@@ -201,7 +200,7 @@ func (service {{{ toCamelCase .EntityName }}}Service) DelBatch(Ids []string) (e
return err
}
//
cacheUtil.RemoveCache(Ids)
service.CacheUtil.RemoveCache(Ids)
return nil
}

View File

@@ -1,219 +0,0 @@
package monitor_project
import (
"net/http"
"strconv"
"strings"
"time"
"x_admin/core/request"
"x_admin/core/response"
"x_admin/util"
"x_admin/util/excel2"
"github.com/gin-gonic/gin"
"golang.org/x/sync/singleflight"
)
type MonitorProjectHandler struct {
requestGroup singleflight.Group
}
// @Summary 监控项目列表
// @Tags monitor_project-监控项目
// @Produce json
// @Param Token header string true "token"
// @Param PageNo query int true "页码"
// @Param PageSize query int true "每页数量"
// @Param ProjectKey query string false "项目uuid"
// @Param ProjectName query string false "项目名称"
// @Param ProjectType query string false "项目类型go java web node php 等"
// @Param Status query number false "是否启用: 0=否, 1=是"
// @Param CreateTimeStart query string false "创建时间"
// @Param CreateTimeEnd query string false "创建时间"
// @Param UpdateTimeStart query string false "更新时间"
// @Param UpdateTimeEnd query string false "更新时间"
//
// @Success 200 {object} response.Response{ data=response.PageResp{ lists=[]MonitorProjectResp}} "成功"
// @Router /api/admin/monitor_project/list [get]
func (hd *MonitorProjectHandler) List(c *gin.Context) {
var page request.PageReq
var listReq MonitorProjectListReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &page)) {
return
}
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := MonitorProjectService.List(page, listReq)
response.CheckAndRespWithData(c, res, err)
}
// @Summary 监控项目列表-所有
// @Tags monitor_project-监控项目
// @Produce json
// @Param ProjectKey query string false "项目uuid"
// @Param ProjectName query string false "项目名称"
// @Param ProjectType query string false "项目类型go java web node php 等"
// @Param Status query number false "是否启用: 0=否, 1=是"
// @Param CreateTimeStart query string false "创建时间"
// @Param CreateTimeEnd query string false "创建时间"
// @Param UpdateTimeStart query string false "更新时间"
// @Param UpdateTimeEnd query string false "更新时间"
// @Success 200 {object} response.Response{ data=[]MonitorProjectResp} "成功"
// @Router /api/admin/monitor_project/listAll [get]
func (hd *MonitorProjectHandler) ListAll(c *gin.Context) {
var listReq MonitorProjectListReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := MonitorProjectService.ListAll(listReq)
response.CheckAndRespWithData(c, res, err)
}
// @Summary 监控项目详情
// @Tags monitor_project-监控项目
// @Produce json
// @Param Token header string true "token"
// @Param Id query number false "项目id"
// @Success 200 {object} response.Response{ data=MonitorProjectResp} "成功"
// @Router /api/admin/monitor_project/detail [get]
func (hd *MonitorProjectHandler) Detail(c *gin.Context) {
var detailReq MonitorProjectDetailReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &detailReq)) {
return
}
res, err, _ := hd.requestGroup.Do("MonitorProject:Detail:"+strconv.Itoa(detailReq.Id), func() (any, error) {
v, err := MonitorProjectService.Detail(detailReq.Id)
return v, err
})
response.CheckAndRespWithData(c, res, err)
}
// @Summary 监控项目新增
// @Tags monitor_project-监控项目
// @Produce json
// @Param Token header string true "token"
// @Param ProjectKey body string false "项目uuid"
// @Param ProjectName body string false "项目名称"
// @Param ProjectType body string false "项目类型go java web node php 等"
// @Param Status body number false "是否启用: 0=否, 1=是"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/monitor_project/add [post]
func (hd *MonitorProjectHandler) Add(c *gin.Context) {
var addReq MonitorProjectAddReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &addReq)) {
return
}
createId, e := MonitorProjectService.Add(addReq)
response.CheckAndRespWithData(c, createId, e)
}
// @Summary 监控项目编辑
// @Tags monitor_project-监控项目
// @Produce json
// @Param Token header string true "token"
// @Param Id body number false "项目id"
// @Param ProjectKey body string false "项目uuid"
// @Param ProjectName body string false "项目名称"
// @Param ProjectType body string false "项目类型go java web node php 等"
// @Param Status body number false "是否启用: 0=否, 1=是"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/monitor_project/edit [post]
func (hd *MonitorProjectHandler) Edit(c *gin.Context) {
var editReq MonitorProjectEditReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &editReq)) {
return
}
response.CheckAndRespWithData(c, editReq.Id, MonitorProjectService.Edit(editReq))
}
// @Summary 监控项目删除
// @Tags monitor_project-监控项目
// @Produce json
// @Param Token header string true "token"
// @Param Id body number false "项目id"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/monitor_project/del [post]
func (hd *MonitorProjectHandler) Del(c *gin.Context) {
var delReq MonitorProjectDelReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &delReq)) {
return
}
response.CheckAndResp(c, MonitorProjectService.Del(delReq.Id))
}
// @Summary 监控项目删除-批量
// @Tags monitor_project-监控项目
//
// @Produce json
// @Param Token header string true "token"
// @Param Ids body string false "逗号分割的id"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/monitor_project/delBatch [post]
func (hd *MonitorProjectHandler) DelBatch(c *gin.Context) {
var delReq MonitorProjectDelBatchReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &delReq)) {
return
}
if delReq.Ids == "" {
response.FailWithMsg(c, response.SystemError, "请选择要删除的数据")
return
}
var Ids = strings.Split(delReq.Ids, ",")
response.CheckAndResp(c, MonitorProjectService.DelBatch(Ids))
}
// @Summary 监控项目导出
// @Tags monitor_project-监控项目
// @Produce json
// @Param Token header string true "token"
// @Param ProjectKey query string false "项目uuid"
// @Param ProjectName query string false "项目名称"
// @Param ProjectType query string false "项目类型go java web node php 等"
// @Param Status query number false "是否启用: 0=否, 1=是"
// @Param CreateTimeStart query string false "创建时间"
// @Param CreateTimeEnd query string false "创建时间"
// @Param UpdateTimeStart query string false "更新时间"
// @Param UpdateTimeEnd query string false "更新时间"
// @Router /api/admin/monitor_project/ExportFile [get]
func (hd *MonitorProjectHandler) ExportFile(c *gin.Context) {
var listReq MonitorProjectListReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := MonitorProjectService.ExportFile(listReq)
if err != nil {
response.FailWithMsg(c, response.SystemError, "查询信息失败")
return
}
f, err := excel2.Export(res, MonitorProjectService.GetExcelCol(), "Sheet1", "监控项目")
if err != nil {
response.FailWithMsg(c, response.SystemError, "导出失败")
return
}
excel2.DownLoadExcel("监控项目"+time.Now().Format("20060102-150405"), c.Writer, f)
}
// @Summary 监控项目导入
// @Tags monitor_project-监控项目
// @Produce json
// @Router /api/admin/monitor_project/ImportFile [post]
func (hd *MonitorProjectHandler) ImportFile(c *gin.Context) {
file, _, err := c.Request.FormFile("file")
if err != nil {
c.String(http.StatusInternalServerError, "文件不存在")
return
}
defer file.Close()
importList := []MonitorProjectResp{}
err = excel2.GetExcelData(file, &importList, MonitorProjectService.GetExcelCol())
if err != nil {
c.String(http.StatusInternalServerError, err.Error())
return
}
err = MonitorProjectService.ImportFile(importList)
response.CheckAndResp(c, err)
}

View File

@@ -1,62 +0,0 @@
package monitor_project
import (
"x_admin/core"
)
//MonitorProjectListReq 监控项目列表参数
type MonitorProjectListReq struct {
ProjectKey *string // 项目uuid
ProjectName *string // 项目名称
ProjectType *string // 项目类型go java web node php 等
Status *int // 是否启用: 0=否, 1=是
CreateTimeStart *string // 开始创建时间
CreateTimeEnd *string // 结束创建时间
UpdateTimeStart *string // 开始更新时间
UpdateTimeEnd *string // 结束更新时间
}
//MonitorProjectAddReq 监控项目新增参数
type MonitorProjectAddReq struct {
ProjectKey *string // 项目uuid
ProjectName *string // 项目名称
ProjectType *string // 项目类型go java web node php 等
Status core.NullInt // 是否启用: 0=否, 1=是
}
//MonitorProjectEditReq 监控项目编辑参数
type MonitorProjectEditReq struct {
Id int // 项目id
ProjectKey *string // 项目uuid
ProjectName *string // 项目名称
ProjectType *string // 项目类型go java web node php 等
Status core.NullInt // 是否启用: 0=否, 1=是
}
//MonitorProjectDetailReq 监控项目详情参数
type MonitorProjectDetailReq struct {
Id int // 项目id
}
//MonitorProjectDelReq 监控项目删除参数
type MonitorProjectDelReq struct {
Id int // 项目id
}
//MonitorProjectDelReq 监控项目批量删除参数
type MonitorProjectDelBatchReq struct {
Ids string
}
//MonitorProjectResp 监控项目返回信息
type MonitorProjectResp struct {
Id int // 项目id
ProjectKey string // 项目uuid
ProjectName string // 项目名称
ProjectType string // 项目类型go java web node php 等
Status core.NullInt // 是否启用: 0=否, 1=是
CreateTime core.NullTime // 创建时间
UpdateTime core.NullTime // 更新时间
}

View File

@@ -0,0 +1,129 @@
package flowController
import (
"x_admin/config"
"x_admin/core/request"
"x_admin/core/response"
. "x_admin/schema/flowSchema"
"x_admin/service/flowService"
"x_admin/util"
"github.com/gin-gonic/gin"
)
type FlowApplyHandler struct{}
// @Summary 申请流程列表
// @Tags flow_apply-申请流程
// @Produce json
// @Param Token header string true "token"
// @Param PageNo query int true "页码"
// @Param PageSize query int true "每页数量"
// @Param templateId query int false "模板"
// @Param applyUserId query int false "申请人id"
// @Param applyUserNickname query string false "申请人昵称"
// @Param flowName query string false "流程名称"
// @Param flowGroup query int false "流程分类"
// @Param flowRemark query string false "流程描述"
// @Param flowFormData query string false "表单配置"
// @Param flowProcessData query string false "流程配置"
// @Param status query int false "状态1待提交2审批中3审批完成4审批失败"
// @Success 200 {object} response.Response{data=response.PageResp{lists=[]FlowApplyResp}} "成功"
// @Router /api/admin/flow/flow_apply/list [get]
func (hd FlowApplyHandler) List(c *gin.Context) {
var page request.PageReq
var listReq FlowApplyListReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &page)) {
return
}
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := flowService.ApplyService.List(page, listReq)
response.CheckAndRespWithData(c, res, err)
}
// @Summary 申请流程详情
// @Tags flow_apply-申请流程
// @Produce json
// @Param Token header string true "token"
// @Param id query int false "申请id"
// @Success 200 {object} response.Response{data=FlowApplyResp} "成功"
// @Router /api/admin/flow/flow_apply/detail [get]
func (hd FlowApplyHandler) Detail(c *gin.Context) {
var detailReq FlowApplyDetailReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &detailReq)) {
return
}
res, err := flowService.ApplyService.Detail(detailReq.Id)
response.CheckAndRespWithData(c, res, err)
}
// @Summary 申请流程新增
// @Tags flow_apply-申请流程
// @Produce json
// @Param Token header string true "token"
// @Param templateId body int false "模板"
// @Param applyUserId body int false "申请人id"
// @Param applyUserNickname body string false "申请人昵称"
// @Param flowName body string false "流程名称"
// @Param flowGroup body int false "流程分类"
// @Param flowRemark body string false "流程描述"
// @Param flowFormData body string false "表单配置"
// @Param flowProcessData body string false "流程配置"
// @Param status body int false "状态1待提交2审批中3审批完成4审批失败"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/flow/flow_apply/add [post]
func (hd FlowApplyHandler) Add(c *gin.Context) {
var addReq FlowApplyAddReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &addReq)) {
return
}
var Nickname = config.AdminConfig.GetNickname(c)
var AdminId = config.AdminConfig.GetAdminId(c)
addReq.ApplyUserNickname = Nickname
addReq.ApplyUserId = int(AdminId)
addReq.Status = 1
response.CheckAndResp(c, flowService.ApplyService.Add(addReq))
}
// @Summary 申请流程编辑
// @Tags flow_apply-申请流程
// @Produce json
// @Param Token header string true "token"
// @Param id body int false "申请id"
// @Param templateId body int false "模板"
// @Param applyUserId body int false "申请人id"
// @Param applyUserNickname body string false "申请人昵称"
// @Param flowName body string false "流程名称"
// @Param flowGroup body int false "流程分类"
// @Param flowRemark body string false "流程描述"
// @Param flowFormData body string false "表单配置"
// @Param flowProcessData body string false "流程配置"
// @Param status body int false "状态1待提交2审批中3审批完成4审批失败"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/flow/flow_apply/edit [post]
func (hd FlowApplyHandler) Edit(c *gin.Context) {
var editReq FlowApplyEditReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &editReq)) {
return
}
response.CheckAndResp(c, flowService.ApplyService.Edit(editReq))
}
// @Summary 申请流程删除
// @Tags flow_apply-申请流程
// @Produce json
// @Param Token header string true "token"
// @Param id body int false "申请id"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/flow/flow_apply/del [post]
func (hd FlowApplyHandler) Del(c *gin.Context) {
var delReq FlowApplyDelReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &delReq)) {
return
}
response.CheckAndResp(c, flowService.ApplyService.Del(delReq.Id))
}

View File

@@ -1,9 +1,11 @@
package flow_history
package flowController
import (
"fmt"
"x_admin/core/request"
"x_admin/core/response"
. "x_admin/schema/flowSchema"
"x_admin/service/flowService"
"x_admin/util"
"github.com/gin-gonic/gin"
@@ -41,7 +43,7 @@ func (hd FlowHistoryHandler) List(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := Service.List(page, listReq)
res, err := flowService.HistoryService.List(page, listReq)
response.CheckAndRespWithData(c, res, err)
}
@@ -55,7 +57,7 @@ func (hd FlowHistoryHandler) ListAll(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := Service.ListAll(listReq)
res, err := flowService.HistoryService.ListAll(listReq)
response.CheckAndRespWithData(c, res, err)
}
@@ -71,7 +73,7 @@ func (hd FlowHistoryHandler) Detail(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &detailReq)) {
return
}
res, err := Service.Detail(detailReq.Id)
res, err := flowService.HistoryService.Detail(detailReq.Id)
response.CheckAndRespWithData(c, res, err)
}
@@ -96,7 +98,7 @@ func (hd FlowHistoryHandler) Add(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &addReq)) {
return
}
response.CheckAndResp(c, Service.Add(addReq))
response.CheckAndResp(c, flowService.HistoryService.Add(addReq))
}
// @Summary 流程历史编辑
@@ -121,7 +123,7 @@ func (hd FlowHistoryHandler) Edit(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &editReq)) {
return
}
response.CheckAndResp(c, Service.Edit(editReq))
response.CheckAndResp(c, flowService.HistoryService.Edit(editReq))
}
// @Summary 流程历史删除
@@ -136,7 +138,7 @@ func (hd FlowHistoryHandler) Del(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &delReq)) {
return
}
response.CheckAndResp(c, Service.Del(delReq.Id))
response.CheckAndResp(c, flowService.HistoryService.Del(delReq.Id))
}
// 提交申请,通过审批
@@ -149,7 +151,7 @@ func (hd FlowHistoryHandler) Pass(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &pass)) {
return
}
err := Service.Pass(pass)
err := flowService.HistoryService.Pass(pass)
response.CheckAndResp(c, err)
}
@@ -164,7 +166,7 @@ func (hd FlowHistoryHandler) Back(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &back)) {
return
}
err := Service.Back(back)
err := flowService.HistoryService.Back(back)
fmt.Println(err)
response.CheckAndResp(c, err)
}
@@ -175,7 +177,7 @@ func (hd FlowHistoryHandler) NextNode(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &nextNode)) {
return
}
res, _, _, err := Service.GetNextNode(nextNode.ApplyId)
res, _, _, err := flowService.HistoryService.GetNextNode(nextNode.ApplyId)
response.CheckAndRespWithData(c, res, err)
}
@@ -186,7 +188,7 @@ func (hd FlowHistoryHandler) GetApprover(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &nextNode)) {
return
}
res, err := Service.GetApprover(nextNode.ApplyId)
res, err := flowService.HistoryService.GetApprover(nextNode.ApplyId)
if err != nil {
response.FailWithMsg(c, response.Failed, err.Error())
return

View File

@@ -1,8 +1,10 @@
package flow_template
package flowController
import (
"x_admin/core/request"
"x_admin/core/response"
. "x_admin/schema/flowSchema"
"x_admin/service/flowService"
"x_admin/util"
"github.com/gin-gonic/gin"
@@ -33,7 +35,7 @@ func (hd FlowTemplateHandler) List(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := Service.List(page, listReq)
res, err := flowService.TemplateService.List(page, listReq)
response.CheckAndRespWithData(c, res, err)
}
@@ -41,7 +43,7 @@ func (hd FlowTemplateHandler) List(c *gin.Context) {
// @Tags flow_template-流程模板
// @Router /api/admin/flow/flow_template/listAll [get]
func (hd FlowTemplateHandler) ListAll(c *gin.Context) {
res, err := Service.ListAll()
res, err := flowService.TemplateService.ListAll()
response.CheckAndRespWithData(c, res, err)
}
@@ -57,7 +59,7 @@ func (hd FlowTemplateHandler) Detail(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &detailReq)) {
return
}
res, err := Service.Detail(detailReq.Id)
res, err := flowService.TemplateService.Detail(detailReq.Id)
response.CheckAndRespWithData(c, res, err)
}
@@ -77,7 +79,7 @@ func (hd FlowTemplateHandler) Add(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &addReq)) {
return
}
response.CheckAndResp(c, Service.Add(addReq))
response.CheckAndResp(c, flowService.TemplateService.Add(addReq))
}
// @Summary 流程模板编辑
@@ -97,7 +99,7 @@ func (hd FlowTemplateHandler) Edit(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &editReq)) {
return
}
response.CheckAndResp(c, Service.Edit(editReq))
response.CheckAndResp(c, flowService.TemplateService.Edit(editReq))
}
// @Summary 流程模板删除
@@ -112,5 +114,5 @@ func (hd FlowTemplateHandler) Del(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyBody(c, &delReq)) {
return
}
response.CheckAndResp(c, Service.Del(delReq.Id))
response.CheckAndResp(c, flowService.TemplateService.Del(delReq.Id))
}

View File

@@ -1,4 +1,4 @@
package monitor
package monitorController
import (
"strings"
@@ -9,7 +9,7 @@ import (
"github.com/gin-gonic/gin"
)
func MonitorRoute(rg *gin.RouterGroup) {
func RegisterRoute(rg *gin.RouterGroup) {
handle := monitorHandler{}
rg = rg.Group("/monitor", middleware.TokenAuth())

View File

@@ -1,4 +1,4 @@
package monitor_client
package monitorController
import (
"encoding/json"
@@ -11,6 +11,8 @@ import (
"x_admin/core"
"x_admin/core/request"
"x_admin/core/response"
. "x_admin/schema/monitorSchema"
"x_admin/service/monitorService"
"x_admin/util"
"x_admin/util/excel2"
"x_admin/util/img_util"
@@ -56,7 +58,7 @@ func (hd *MonitorClientHandler) List(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := MonitorClientService.List(page, listReq)
res, err := monitorService.MonitorClientService.List(page, listReq)
response.CheckAndRespWithData(c, res, err)
}
@@ -85,7 +87,7 @@ func (hd *MonitorClientHandler) ListAll(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := MonitorClientService.ListAll(listReq)
res, err := monitorService.MonitorClientService.ListAll(listReq)
response.CheckAndRespWithData(c, res, err)
}
@@ -94,7 +96,7 @@ func (hd *MonitorClientHandler) ErrorUsers(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &Req)) {
return
}
res, err := MonitorClientService.ErrorUsers(Req.Id)
res, err := monitorService.MonitorClientService.ErrorUsers(Req.Id)
response.CheckAndRespWithData(c, res, err)
}
@@ -111,7 +113,7 @@ func (hd *MonitorClientHandler) Detail(c *gin.Context) {
return
}
res, err, _ := hd.requestGroup.Do("MonitorClient:Detail:"+strconv.Itoa(detailReq.Id), func() (any, error) {
v, err := MonitorClientService.Detail(detailReq.Id)
v, err := monitorService.MonitorClientService.Detail(detailReq.Id)
return v, err
})
@@ -146,7 +148,7 @@ func (hd *MonitorClientHandler) Add(c *gin.Context) {
var addReq MonitorClientAddReq
json.Unmarshal([]byte(data), &addReq)
lastClient, err := MonitorClientService.DetailByClientId(*addReq.ClientId)
lastClient, err := monitorService.MonitorClientService.DetailByClientId(*addReq.ClientId)
uaStr := c.GetHeader("user-agent")
ip := c.ClientIP()
@@ -161,7 +163,8 @@ func (hd *MonitorClientHandler) Add(c *gin.Context) {
return
} else {
// 新建的话需要清除lastClient对应的缓存
cacheUtil.RemoveCache("ClientId:" + lastClient.ClientId)
monitorService.MonitorClientService.CacheUtil.RemoveCache("ClientId:" + lastClient.ClientId)
}
}
@@ -182,7 +185,7 @@ func (hd *MonitorClientHandler) Add(c *gin.Context) {
addReq.Province = &regionInfo.Province
}
MonitorClientService.Add(addReq)
monitorService.MonitorClientService.Add(addReq)
c.Data(200, "image/gif", img_util.EmptyGif())
}
@@ -199,7 +202,7 @@ func (hd *MonitorClientHandler) Del(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &delReq)) {
return
}
response.CheckAndResp(c, MonitorClientService.Del(delReq.Id))
response.CheckAndResp(c, monitorService.MonitorClientService.Del(delReq.Id))
}
// @Summary 监控-客户端信息删除-批量
@@ -221,7 +224,7 @@ func (hd *MonitorClientHandler) DelBatch(c *gin.Context) {
}
var Ids = strings.Split(delReq.Ids, ",")
response.CheckAndResp(c, MonitorClientService.DelBatch(Ids))
response.CheckAndResp(c, monitorService.MonitorClientService.DelBatch(Ids))
}
// @Summary 监控-客户端信息导出
@@ -249,12 +252,12 @@ func (hd *MonitorClientHandler) ExportFile(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := MonitorClientService.ExportFile(listReq)
res, err := monitorService.MonitorClientService.ExportFile(listReq)
if err != nil {
response.FailWithMsg(c, response.SystemError, "查询信息失败")
return
}
f, err := excel2.Export(res, MonitorClientService.GetExcelCol(), "Sheet1", "监控-客户端信息")
f, err := excel2.Export(res, monitorService.MonitorClientService.GetExcelCol(), "Sheet1", "监控-客户端信息")
if err != nil {
response.FailWithMsg(c, response.SystemError, "导出失败")
return
@@ -274,12 +277,12 @@ func (hd *MonitorClientHandler) ImportFile(c *gin.Context) {
}
defer file.Close()
importList := []MonitorClientResp{}
err = excel2.GetExcelData(file, &importList, MonitorClientService.GetExcelCol())
err = excel2.GetExcelData(file, &importList, monitorService.MonitorClientService.GetExcelCol())
if err != nil {
c.String(http.StatusInternalServerError, err.Error())
return
}
err = MonitorClientService.ImportFile(importList)
err = monitorService.MonitorClientService.ImportFile(importList)
response.CheckAndResp(c, err)
}

View File

@@ -1,4 +1,4 @@
package monitor_error
package monitorController
import (
"encoding/json"
@@ -9,6 +9,8 @@ import (
"time"
"x_admin/core/request"
"x_admin/core/response"
. "x_admin/schema/monitorSchema"
"x_admin/service/monitorService"
"x_admin/util"
"x_admin/util/excel2"
"x_admin/util/img_util"
@@ -47,7 +49,7 @@ func (hd *MonitorErrorHandler) List(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := MonitorErrorService.List(page, listReq)
res, err := monitorService.MonitorErrorService.List(page, listReq)
response.CheckAndRespWithData(c, res, err)
}
@@ -69,7 +71,7 @@ func (hd *MonitorErrorHandler) ListAll(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := MonitorErrorService.ListAll(listReq)
res, err := monitorService.MonitorErrorService.ListAll(listReq)
response.CheckAndRespWithData(c, res, err)
}
@@ -86,7 +88,7 @@ func (hd *MonitorErrorHandler) Detail(c *gin.Context) {
return
}
res, err, _ := hd.requestGroup.Do("MonitorError:Detail:"+strconv.Itoa(detailReq.Id), func() (any, error) {
v, err := MonitorErrorService.Detail(detailReq.Id)
v, err := monitorService.MonitorErrorService.Detail(detailReq.Id)
return v, err
})
@@ -119,7 +121,7 @@ func (hd *MonitorErrorHandler) Add(c *gin.Context) {
// return
// }
for i := 0; i < len(addReq); i++ {
MonitorErrorService.Add(addReq[i])
monitorService.MonitorErrorService.Add(addReq[i])
}
c.Data(200, "image/gif", img_util.EmptyGif())
}
@@ -136,7 +138,7 @@ func (hd *MonitorErrorHandler) Del(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &delReq)) {
return
}
response.CheckAndResp(c, MonitorErrorService.Del(delReq.Id))
response.CheckAndResp(c, monitorService.MonitorErrorService.Del(delReq.Id))
}
// @Summary 监控-错误列删除-批量
@@ -158,7 +160,7 @@ func (hd *MonitorErrorHandler) DelBatch(c *gin.Context) {
}
var Ids = strings.Split(delReq.Ids, ",")
response.CheckAndResp(c, MonitorErrorService.DelBatch(Ids))
response.CheckAndResp(c, monitorService.MonitorErrorService.DelBatch(Ids))
}
// @Summary 监控-错误列导出
@@ -179,12 +181,12 @@ func (hd *MonitorErrorHandler) ExportFile(c *gin.Context) {
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := MonitorErrorService.ExportFile(listReq)
res, err := monitorService.MonitorErrorService.ExportFile(listReq)
if err != nil {
response.FailWithMsg(c, response.SystemError, "查询信息失败")
return
}
f, err := excel2.Export(res, MonitorErrorService.GetExcelCol(), "Sheet1", "监控-错误列")
f, err := excel2.Export(res, monitorService.MonitorErrorService.GetExcelCol(), "Sheet1", "监控-错误列")
if err != nil {
response.FailWithMsg(c, response.SystemError, "导出失败")
return
@@ -204,12 +206,12 @@ func (hd *MonitorErrorHandler) ImportFile(c *gin.Context) {
}
defer file.Close()
importList := []MonitorErrorResp{}
err = excel2.GetExcelData(file, &importList, MonitorErrorService.GetExcelCol())
err = excel2.GetExcelData(file, &importList, monitorService.MonitorErrorService.GetExcelCol())
if err != nil {
c.String(http.StatusInternalServerError, err.Error())
return
}
err = MonitorErrorService.ImportFile(importList)
err = monitorService.MonitorErrorService.ImportFile(importList)
response.CheckAndResp(c, err)
}

View File

@@ -0,0 +1,221 @@
package monitorController
import (
"net/http"
"strconv"
"strings"
"time"
"x_admin/core/request"
"x_admin/core/response"
. "x_admin/schema/monitorSchema"
"x_admin/service/monitorService"
"x_admin/util"
"x_admin/util/excel2"
"github.com/gin-gonic/gin"
"golang.org/x/sync/singleflight"
)
type MonitorProjectHandler struct {
requestGroup singleflight.Group
}
// @Summary 监控项目列表
// @Tags monitor_project-监控项目
// @Produce json
// @Param Token header string true "token"
// @Param PageNo query int true "页码"
// @Param PageSize query int true "每页数量"
// @Param ProjectKey query string false "项目uuid"
// @Param ProjectName query string false "项目名称"
// @Param ProjectType query string false "项目类型go java web node php 等"
// @Param Status query number false "是否启用: 0=否, 1=是"
// @Param CreateTimeStart query string false "创建时间"
// @Param CreateTimeEnd query string false "创建时间"
// @Param UpdateTimeStart query string false "更新时间"
// @Param UpdateTimeEnd query string false "更新时间"
//
// @Success 200 {object} response.Response{ data=response.PageResp{ lists=[]MonitorProjectResp}} "成功"
// @Router /api/admin/monitor_project/list [get]
func (hd *MonitorProjectHandler) List(c *gin.Context) {
var page request.PageReq
var listReq MonitorProjectListReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &page)) {
return
}
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := monitorService.MonitorProjectService.List(page, listReq)
response.CheckAndRespWithData(c, res, err)
}
// @Summary 监控项目列表-所有
// @Tags monitor_project-监控项目
// @Produce json
// @Param ProjectKey query string false "项目uuid"
// @Param ProjectName query string false "项目名称"
// @Param ProjectType query string false "项目类型go java web node php 等"
// @Param Status query number false "是否启用: 0=否, 1=是"
// @Param CreateTimeStart query string false "创建时间"
// @Param CreateTimeEnd query string false "创建时间"
// @Param UpdateTimeStart query string false "更新时间"
// @Param UpdateTimeEnd query string false "更新时间"
// @Success 200 {object} response.Response{ data=[]MonitorProjectResp} "成功"
// @Router /api/admin/monitor_project/listAll [get]
func (hd *MonitorProjectHandler) ListAll(c *gin.Context) {
var listReq MonitorProjectListReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := monitorService.MonitorProjectService.ListAll(listReq)
response.CheckAndRespWithData(c, res, err)
}
// @Summary 监控项目详情
// @Tags monitor_project-监控项目
// @Produce json
// @Param Token header string true "token"
// @Param Id query number false "项目id"
// @Success 200 {object} response.Response{ data=MonitorProjectResp} "成功"
// @Router /api/admin/monitor_project/detail [get]
func (hd *MonitorProjectHandler) Detail(c *gin.Context) {
var detailReq MonitorProjectDetailReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &detailReq)) {
return
}
res, err, _ := hd.requestGroup.Do("MonitorProject:Detail:"+strconv.Itoa(detailReq.Id), func() (any, error) {
v, err := monitorService.MonitorProjectService.Detail(detailReq.Id)
return v, err
})
response.CheckAndRespWithData(c, res, err)
}
// @Summary 监控项目新增
// @Tags monitor_project-监控项目
// @Produce json
// @Param Token header string true "token"
// @Param ProjectKey body string false "项目uuid"
// @Param ProjectName body string false "项目名称"
// @Param ProjectType body string false "项目类型go java web node php 等"
// @Param Status body number false "是否启用: 0=否, 1=是"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/monitor_project/add [post]
func (hd *MonitorProjectHandler) Add(c *gin.Context) {
var addReq MonitorProjectAddReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &addReq)) {
return
}
createId, e := monitorService.MonitorProjectService.Add(addReq)
response.CheckAndRespWithData(c, createId, e)
}
// @Summary 监控项目编辑
// @Tags monitor_project-监控项目
// @Produce json
// @Param Token header string true "token"
// @Param Id body number false "项目id"
// @Param ProjectKey body string false "项目uuid"
// @Param ProjectName body string false "项目名称"
// @Param ProjectType body string false "项目类型go java web node php 等"
// @Param Status body number false "是否启用: 0=否, 1=是"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/monitor_project/edit [post]
func (hd *MonitorProjectHandler) Edit(c *gin.Context) {
var editReq MonitorProjectEditReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &editReq)) {
return
}
response.CheckAndRespWithData(c, editReq.Id, monitorService.MonitorProjectService.Edit(editReq))
}
// @Summary 监控项目删除
// @Tags monitor_project-监控项目
// @Produce json
// @Param Token header string true "token"
// @Param Id body number false "项目id"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/monitor_project/del [post]
func (hd *MonitorProjectHandler) Del(c *gin.Context) {
var delReq MonitorProjectDelReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &delReq)) {
return
}
response.CheckAndResp(c, monitorService.MonitorProjectService.Del(delReq.Id))
}
// @Summary 监控项目删除-批量
// @Tags monitor_project-监控项目
//
// @Produce json
// @Param Token header string true "token"
// @Param Ids body string false "逗号分割的id"
// @Success 200 {object} response.Response "成功"
// @Router /api/admin/monitor_project/delBatch [post]
func (hd *MonitorProjectHandler) DelBatch(c *gin.Context) {
var delReq MonitorProjectDelBatchReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyJSON(c, &delReq)) {
return
}
if delReq.Ids == "" {
response.FailWithMsg(c, response.SystemError, "请选择要删除的数据")
return
}
var Ids = strings.Split(delReq.Ids, ",")
response.CheckAndResp(c, monitorService.MonitorProjectService.DelBatch(Ids))
}
// @Summary 监控项目导出
// @Tags monitor_project-监控项目
// @Produce json
// @Param Token header string true "token"
// @Param ProjectKey query string false "项目uuid"
// @Param ProjectName query string false "项目名称"
// @Param ProjectType query string false "项目类型go java web node php 等"
// @Param Status query number false "是否启用: 0=否, 1=是"
// @Param CreateTimeStart query string false "创建时间"
// @Param CreateTimeEnd query string false "创建时间"
// @Param UpdateTimeStart query string false "更新时间"
// @Param UpdateTimeEnd query string false "更新时间"
// @Router /api/admin/monitor_project/ExportFile [get]
func (hd *MonitorProjectHandler) ExportFile(c *gin.Context) {
var listReq MonitorProjectListReq
if response.IsFailWithResp(c, util.VerifyUtil.VerifyQuery(c, &listReq)) {
return
}
res, err := monitorService.MonitorProjectService.ExportFile(listReq)
if err != nil {
response.FailWithMsg(c, response.SystemError, "查询信息失败")
return
}
f, err := excel2.Export(res, monitorService.MonitorProjectService.GetExcelCol(), "Sheet1", "监控项目")
if err != nil {
response.FailWithMsg(c, response.SystemError, "导出失败")
return
}
excel2.DownLoadExcel("监控项目"+time.Now().Format("20060102-150405"), c.Writer, f)
}
// @Summary 监控项目导入
// @Tags monitor_project-监控项目
// @Produce json
// @Router /api/admin/monitor_project/ImportFile [post]
func (hd *MonitorProjectHandler) ImportFile(c *gin.Context) {
file, _, err := c.Request.FormFile("file")
if err != nil {
c.String(http.StatusInternalServerError, "文件不存在")
return
}
defer file.Close()
importList := []MonitorProjectResp{}
err = excel2.GetExcelData(file, &importList, monitorService.MonitorProjectService.GetExcelCol())
if err != nil {
c.String(http.StatusInternalServerError, err.Error())
return
}
err = monitorService.MonitorProjectService.ImportFile(importList)
response.CheckAndResp(c, err)
}

View File

@@ -53,7 +53,7 @@ func initRouter() *gin.Engine {
// 注册路由
apiGroup := r.Group("/api")
router.RegisterGroup(apiGroup, r)
router.RegisterRoute(apiGroup, r)
return r
}

View File

@@ -1,9 +1,7 @@
package flow
package admin
import (
"x_admin/admin/flow/flow_apply"
"x_admin/admin/flow/flow_history"
"x_admin/admin/flow/flow_template"
"x_admin/controller/admin/flowController"
"x_admin/middleware"
"github.com/gin-gonic/gin"
@@ -18,7 +16,7 @@ import (
func FlowApplyRoute(rg *gin.RouterGroup) {
handle := flow_apply.FlowApplyHandler{}
handle := flowController.FlowApplyHandler{}
rg = rg.Group("/flow", middleware.TokenAuth())
rg.GET("/flow_apply/list", handle.List)
@@ -42,7 +40,7 @@ flow_history:detail
// FlowHistoryRoute(rg)
func FlowHistoryRoute(rg *gin.RouterGroup) {
handle := flow_history.FlowHistoryHandler{}
handle := flowController.FlowHistoryHandler{}
rg = rg.Group("/flow", middleware.TokenAuth())
rg.GET("/flow_history/list", handle.List)
@@ -73,7 +71,7 @@ flow_template:detail
// FlowTemplateRoute(rg)
func FlowTemplateRoute(rg *gin.RouterGroup) {
handle := flow_template.FlowTemplateHandler{}
handle := flowController.FlowTemplateHandler{}
rg = rg.Group("/flow", middleware.TokenAuth())
rg.GET("/flow_template/list", handle.List)

View File

@@ -1,7 +1,7 @@
package admin
import (
"x_admin/admin/monitor_client"
"x_admin/controller/admin/monitorController"
"x_admin/middleware"
"github.com/gin-gonic/gin"
@@ -44,7 +44,7 @@ INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_sh
// MonitorClientRoute(rg)
func MonitorClientRoute(rg *gin.RouterGroup) {
handle := monitor_client.MonitorClientHandler{}
handle := monitorController.MonitorClientHandler{}
rg.GET("/monitor_client/add", middleware.RecordLog("监控-客户端信息新增"), handle.Add)
r := rg.Group("/", middleware.TokenAuth())

View File

@@ -1,7 +1,7 @@
package admin
import (
"x_admin/admin/monitor_error"
"x_admin/controller/admin/monitorController"
"x_admin/middleware"
"github.com/gin-gonic/gin"
@@ -44,7 +44,7 @@ INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_sh
// MonitorErrorRoute(rg)
func MonitorErrorRoute(rg *gin.RouterGroup) {
handle := monitor_error.MonitorErrorHandler{}
handle := monitorController.MonitorErrorHandler{}
rg.GET("/monitor_error/add", middleware.RecordLog("监控-错误列新增"), handle.Add)
r := rg.Group("/", middleware.TokenAuth())

View File

@@ -1,9 +1,10 @@
package admin
import (
"github.com/gin-gonic/gin"
"x_admin/controller/admin/monitorController"
"x_admin/middleware"
"x_admin/admin/monitor_project"
"github.com/gin-gonic/gin"
)
/**
@@ -41,22 +42,21 @@ INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_sh
INSERT INTO x_system_auth_menu (pid, menu_type, menu_name, perms,is_cache, is_show, is_disable, create_time, update_time) VALUES (0, 'A', '监控项目导入excel','admin:monitor_project:ImportFile', 0, 1, 0, now(), now());
*/
// MonitorProjectRoute(rg)
func MonitorProjectRoute(rg *gin.RouterGroup) {
handle := monitor_project.MonitorProjectHandler{}
handle := monitorController.MonitorProjectHandler{}
r := rg.Group("/", middleware.TokenAuth())
r.GET("/monitor_project/list", handle.List)
r.GET("/monitor_project/listAll", handle.ListAll)
r.GET("/monitor_project/detail", handle.Detail)
r.POST("/monitor_project/add",middleware.RecordLog("监控项目新增"), handle.Add)
r.POST("/monitor_project/edit",middleware.RecordLog("监控项目编辑"), handle.Edit)
r.POST("/monitor_project/add", middleware.RecordLog("监控项目新增"), handle.Add)
r.POST("/monitor_project/edit", middleware.RecordLog("监控项目编辑"), handle.Edit)
r.POST("/monitor_project/del", middleware.RecordLog("监控项目删除"), handle.Del)
r.POST("/monitor_project/delBatch", middleware.RecordLog("监控项目删除-批量"), handle.DelBatch)
r.GET("/monitor_project/ExportFile", middleware.RecordLog("监控项目导出"), handle.ExportFile)
r.POST("/monitor_project/ImportFile", handle.ImportFile)
r.POST("/monitor_project/ImportFile", handle.ImportFile)
}

View File

@@ -4,17 +4,16 @@ import (
"x_admin/admin/common/album"
"x_admin/admin/common/index"
"x_admin/admin/common/upload"
"x_admin/admin/flow"
"x_admin/admin/generator"
"x_admin/admin/monitor"
"x_admin/controller/admin/monitorController"
"x_admin/controller/admin/settingController"
"x_admin/controller/admin/systemController"
"github.com/gin-gonic/gin"
)
func RegisterGroup(rg *gin.RouterGroup) {
func RegisterRoute(rg *gin.RouterGroup) {
rg = rg.Group("/admin")
// 所有子路由需要加上前缀 /api/admin
@@ -23,7 +22,7 @@ func RegisterGroup(rg *gin.RouterGroup) {
album.AlbumRoute(rg)
index.IndexRoute(rg)
monitor.MonitorRoute(rg)
monitorController.RegisterRoute(rg)
settingController.CopyrightRoute(rg)
settingController.DictDataRoute(rg)
@@ -39,9 +38,9 @@ func RegisterGroup(rg *gin.RouterGroup) {
systemController.RoleRoute(rg)
systemController.LogRoute(rg)
flow.FlowTemplateRoute(rg)
flow.FlowApplyRoute(rg)
flow.FlowHistoryRoute(rg)
FlowTemplateRoute(rg)
FlowApplyRoute(rg)
FlowHistoryRoute(rg)
generator.RegisterGroup(rg)

View File

@@ -9,7 +9,7 @@ import (
"github.com/gin-gonic/gin"
)
func RegisterGroup(api *gin.RouterGroup, rootRouter *gin.Engine) {
func RegisterRoute(api *gin.RouterGroup, rootRouter *gin.Engine) {
// /api/admin/apiList 获取所有接口
api.GET("/admin/apiList", middleware.TokenAuth(), func(ctx *gin.Context) {
@@ -22,7 +22,7 @@ func RegisterGroup(api *gin.RouterGroup, rootRouter *gin.Engine) {
})
// /api/admin
admin.RegisterGroup(api)
admin.RegisterRoute(api)
// /api/common/captcha 验证码
captcha.CaptchaRoute(api)
captcha.RegisterRoute(api)
}

View File

@@ -1,4 +1,4 @@
package flow_apply
package flowSchema
import "x_admin/core"

View File

@@ -1,4 +1,4 @@
package flow_history
package flowSchema
import "x_admin/core"

View File

@@ -1,4 +1,4 @@
package flow_template
package flowSchema
//FlowTemplateListReq 流程模板列表参数
type FlowTemplateListReq struct {

View File

@@ -1,4 +1,4 @@
package monitor_client
package monitorSchema
import (
"x_admin/core"

View File

@@ -1,4 +1,4 @@
package monitor_error_list
package monitorSchema
import (
"x_admin/core"

View File

@@ -1,4 +1,4 @@
package monitor_error
package monitorSchema
import (
"x_admin/core"

View File

@@ -0,0 +1,60 @@
package monitorSchema
import (
"x_admin/core"
)
// MonitorProjectListReq 监控项目列表参数
type MonitorProjectListReq struct {
ProjectKey *string // 项目uuid
ProjectName *string // 项目名称
ProjectType *string // 项目类型go java web node php 等
Status *int // 是否启用: 0=否, 1=是
CreateTimeStart *string // 开始创建时间
CreateTimeEnd *string // 结束创建时间
UpdateTimeStart *string // 开始更新时间
UpdateTimeEnd *string // 结束更新时间
}
// MonitorProjectAddReq 监控项目新增参数
type MonitorProjectAddReq struct {
ProjectKey *string // 项目uuid
ProjectName *string // 项目名称
ProjectType *string // 项目类型go java web node php 等
Status core.NullInt // 是否启用: 0=否, 1=是
}
// MonitorProjectEditReq 监控项目编辑参数
type MonitorProjectEditReq struct {
Id int // 项目id
ProjectKey *string // 项目uuid
ProjectName *string // 项目名称
ProjectType *string // 项目类型go java web node php 等
Status core.NullInt // 是否启用: 0=否, 1=是
}
// MonitorProjectDetailReq 监控项目详情参数
type MonitorProjectDetailReq struct {
Id int // 项目id
}
// MonitorProjectDelReq 监控项目删除参数
type MonitorProjectDelReq struct {
Id int // 项目id
}
// MonitorProjectDelReq 监控项目批量删除参数
type MonitorProjectDelBatchReq struct {
Ids string
}
// MonitorProjectResp 监控项目返回信息
type MonitorProjectResp struct {
Id int // 项目id
ProjectKey string // 项目uuid
ProjectName string // 项目名称
ProjectType string // 项目类型go java web node php 等
Status core.NullInt // 是否启用: 0=否, 1=是
CreateTime core.NullTime // 创建时间
UpdateTime core.NullTime // 更新时间
}

View File

@@ -1,27 +1,20 @@
package flow_apply
package flowService
import (
"errors"
"x_admin/admin/flow/flow_template"
"x_admin/core"
"x_admin/core/request"
"x_admin/core/response"
"x_admin/model"
. "x_admin/schema/flowSchema"
"x_admin/util"
"x_admin/util/convert_util"
"gorm.io/gorm"
)
type IFlowApplyService interface {
List(page request.PageReq, listReq FlowApplyListReq) (res response.PageResp, e error)
Detail(id int) (res FlowApplyResp, e error)
Add(addReq FlowApplyAddReq) (e error)
Edit(editReq FlowApplyEditReq) (e error)
Del(id int) (e error)
}
var Service = NewFlowApplyService()
var ApplyService = NewFlowApplyService()
// NewFlowApplyService 初始化
func NewFlowApplyService() *flowApplyService {
@@ -108,7 +101,7 @@ func (service flowApplyService) Detail(id int) (res FlowApplyResp, e error) {
// Add 申请流程新增
func (service flowApplyService) Add(addReq FlowApplyAddReq) (e error) {
var obj model.FlowApply
var flow_template_resp, err = flow_template.Service.Detail(addReq.TemplateId)
var flow_template_resp, err = TemplateService.Detail(addReq.TemplateId)
if e = response.CheckErrDBNotRecord(err, "模板不存在!"); e != nil {
return
}

View File

@@ -1,16 +1,17 @@
package flow_history
package flowService
import (
"encoding/json"
"errors"
"fmt"
"strconv"
"x_admin/admin/flow/flow_apply"
"x_admin/core"
"x_admin/core/request"
"x_admin/core/response"
"x_admin/model"
"x_admin/model/system_model"
. "x_admin/schema/flowSchema"
"x_admin/schema/systemSchema"
"x_admin/service/systemService"
"x_admin/util"
@@ -19,7 +20,7 @@ import (
"gorm.io/gorm"
)
var Service = NewFlowHistoryService()
var HistoryService = NewFlowHistoryService()
// NewFlowHistoryService 初始化
func NewFlowHistoryService() *flowHistoryService {
@@ -376,7 +377,7 @@ func (service flowHistoryService) Back(back BackReq) (e error) {
// 驳回到申请人,最后一条改驳回状态,驳回备注,新加一条
if back.HistoryId == 0 {
var applyDetail, err = flow_apply.Service.Detail(back.ApplyId)
var applyDetail, err = ApplyService.Detail(back.ApplyId)
if err != nil {
return err
}
@@ -465,8 +466,8 @@ func (service flowHistoryService) Back(back BackReq) (e error) {
/**
* 获取下一批流程直到审批或结束节点
*/
func (service flowHistoryService) GetNextNode(ApplyId int) (res []FlowTree, apply flow_apply.FlowApplyResp, LastHistory model.FlowHistory, e error) {
var applyDetail, err = flow_apply.Service.Detail(ApplyId)
func (service flowHistoryService) GetNextNode(ApplyId int) (res []FlowTree, apply FlowApplyResp, LastHistory model.FlowHistory, e error) {
var applyDetail, err = ApplyService.Detail(ApplyId)
if e = response.CheckErr(err, "获取审批申请失败"); e != nil {
return

View File

@@ -1,25 +1,17 @@
package flow_template
package flowService
import (
"x_admin/core"
"x_admin/core/request"
"x_admin/core/response"
"x_admin/model"
. "x_admin/schema/flowSchema"
"x_admin/util/convert_util"
"gorm.io/gorm"
)
type IFlowTemplateService interface {
List(page request.PageReq, listReq FlowTemplateListReq) (res response.PageResp, e error)
ListAll() (res []FlowTemplateResp, e error)
Detail(id int) (res FlowTemplateResp, e error)
Add(addReq FlowTemplateAddReq) (e error)
Edit(editReq FlowTemplateEditReq) (e error)
Del(id int) (e error)
}
var Service = NewFlowTemplateService()
var TemplateService = NewFlowTemplateService()
// NewFlowTemplateService 初始化
func NewFlowTemplateService() *flowTemplateService {

View File

@@ -1,4 +1,4 @@
package monitor_client
package monitorService
import (
"errors"
@@ -6,6 +6,7 @@ import (
"x_admin/core/request"
"x_admin/core/response"
"x_admin/model"
. "x_admin/schema/monitorSchema"
"x_admin/util"
"x_admin/util/convert_util"
"x_admin/util/excel2"
@@ -14,22 +15,22 @@ import (
)
var MonitorClientService = NewMonitorClientService()
var cacheUtil = util.CacheUtil{
Name: MonitorClientService.Name,
}
// NewMonitorClientService 初始化
func NewMonitorClientService() *monitorClientService {
return &monitorClientService{
db: core.GetDB(),
Name: "monitorClient",
db: core.GetDB(),
CacheUtil: util.CacheUtil{
Name: "monitorClient",
},
}
}
// monitorClientService 监控-客户端信息服务实现类
type monitorClientService struct {
db *gorm.DB
Name string
db *gorm.DB
Name string
CacheUtil util.CacheUtil
}
// List 监控-客户端信息列表
@@ -132,7 +133,7 @@ func (service monitorClientService) DetailByClientId(ClientId string) (res Monit
return res, errors.New("ClientId不能为空")
}
var obj = model.MonitorClient{}
err := cacheUtil.GetCache("ClientId:"+ClientId, &obj)
err := service.CacheUtil.GetCache("ClientId:"+ClientId, &obj)
if err != nil {
err := service.db.Where("client_id = ?", ClientId).Order("id DESC").Limit(1).First(&obj).Error
if e = response.CheckErrDBNotRecord(err, "数据不存在!"); e != nil {
@@ -141,8 +142,8 @@ func (service monitorClientService) DetailByClientId(ClientId string) (res Monit
if e = response.CheckErr(err, "获取详情失败"); e != nil {
return
}
cacheUtil.SetCache(obj.Id, obj)
cacheUtil.SetCache("ClientId:"+obj.ClientId, obj)
service.CacheUtil.SetCache(obj.Id, obj)
service.CacheUtil.SetCache("ClientId:"+obj.ClientId, obj)
}
convert_util.Copy(&res, obj)
@@ -152,7 +153,7 @@ func (service monitorClientService) DetailByClientId(ClientId string) (res Monit
// Detail 监控-客户端信息详情
func (service monitorClientService) Detail(Id int) (res MonitorClientResp, e error) {
var obj = model.MonitorClient{}
err := cacheUtil.GetCache(Id, &obj)
err := service.CacheUtil.GetCache(Id, &obj)
if err != nil {
err := service.db.Where("id = ?", Id).Limit(1).First(&obj).Error
if e = response.CheckErrDBNotRecord(err, "数据不存在!"); e != nil {
@@ -161,8 +162,8 @@ func (service monitorClientService) Detail(Id int) (res MonitorClientResp, e err
if e = response.CheckErr(err, "获取详情失败"); e != nil {
return
}
cacheUtil.SetCache(obj.Id, obj)
cacheUtil.SetCache("ClientId:"+obj.ClientId, obj)
service.CacheUtil.SetCache(obj.Id, obj)
service.CacheUtil.SetCache("ClientId:"+obj.ClientId, obj)
}
convert_util.Copy(&res, obj)
return
@@ -186,8 +187,8 @@ func (service monitorClientService) Add(addReq MonitorClientAddReq) (createId in
if e != nil {
return 0, e
}
cacheUtil.SetCache(obj.Id, obj)
cacheUtil.SetCache("ClientId:"+obj.ClientId, obj)
service.CacheUtil.SetCache(obj.Id, obj)
service.CacheUtil.SetCache("ClientId:"+obj.ClientId, obj)
createId = obj.Id
return
}
@@ -206,8 +207,8 @@ func (service monitorClientService) Del(Id int) (e error) {
// 删除
err = service.db.Delete(&obj).Error
e = response.CheckErr(err, "删除失败")
cacheUtil.RemoveCache(obj.Id)
cacheUtil.RemoveCache("ClientId:" + obj.ClientId)
service.CacheUtil.RemoveCache(obj.Id)
service.CacheUtil.RemoveCache("ClientId:" + obj.ClientId)
return
}
@@ -233,8 +234,8 @@ func (service monitorClientService) DelBatch(Ids []string) (e error) {
}
// 删除缓存
cacheUtil.RemoveCache(Ids)
cacheUtil.RemoveCache(Clients)
service.CacheUtil.RemoveCache(Ids)
service.CacheUtil.RemoveCache(Clients)
return nil
}

View File

@@ -1,9 +1,10 @@
package monitor_error_list
package monitorService
import (
"x_admin/core"
"x_admin/core/response"
"x_admin/model"
. "x_admin/schema/monitorSchema"
"x_admin/util/convert_util"
"gorm.io/gorm"

View File

@@ -1,14 +1,14 @@
package monitor_error
package monitorService
import (
"errors"
"strconv"
"x_admin/admin/monitor_client"
"x_admin/admin/monitor_error_list"
"x_admin/core"
"x_admin/core/request"
"x_admin/core/response"
"x_admin/model"
. "x_admin/schema/monitorSchema"
"x_admin/util"
"x_admin/util/convert_util"
"x_admin/util/excel2"
@@ -174,12 +174,12 @@ func (service monitorErrorService) Add(addReq MonitorErrorAddReq) (createId int,
} else {
createId = errorDetails.Id
}
client, err := monitor_client.MonitorClientService.DetailByClientId(addReq.ClientId)
client, err := MonitorClientService.DetailByClientId(addReq.ClientId)
if err != nil {
return 0, err
}
_, err = monitor_error_list.MonitorErrorListService.Add(monitor_error_list.MonitorErrorListAddReq{
_, err = MonitorErrorListService.Add(MonitorErrorListAddReq{
Eid: strconv.Itoa(createId),
Cid: strconv.Itoa(client.Id),
// ClientId: addReq.ClientId,

View File

@@ -1,10 +1,11 @@
package monitor_project
package monitorService
import (
"x_admin/core"
"x_admin/core/request"
"x_admin/core/response"
"x_admin/model"
. "x_admin/schema/monitorSchema"
"x_admin/util"
"x_admin/util/convert_util"
"x_admin/util/excel2"
@@ -13,22 +14,22 @@ import (
)
var MonitorProjectService = NewMonitorProjectService()
var cacheUtil = util.CacheUtil{
Name: MonitorProjectService.Name,
}
// NewMonitorProjectService 初始化
func NewMonitorProjectService() *monitorProjectService {
return &monitorProjectService{
db: core.GetDB(),
Name: "monitorProject",
db: core.GetDB(),
CacheUtil: util.CacheUtil{
Name: "monitorProject",
},
}
}
// monitorProjectService 监控项目服务实现类
type monitorProjectService struct {
db *gorm.DB
Name string
db *gorm.DB
Name string
CacheUtil util.CacheUtil
}
// List 监控项目列表
@@ -108,7 +109,7 @@ func (service monitorProjectService) ListAll(listReq MonitorProjectListReq) (res
// Detail 监控项目详情
func (service monitorProjectService) Detail(Id int) (res MonitorProjectResp, e error) {
var obj = model.MonitorProject{}
err := cacheUtil.GetCache(Id, &obj)
err := service.CacheUtil.GetCache(Id, &obj)
if err != nil {
err := service.db.Where("id = ? AND is_delete = ?", Id, 0).Limit(1).First(&obj).Error
if e = response.CheckErrDBNotRecord(err, "数据不存在!"); e != nil {
@@ -117,7 +118,7 @@ func (service monitorProjectService) Detail(Id int) (res MonitorProjectResp, e e
if e = response.CheckErr(err, "获取详情失败"); e != nil {
return
}
cacheUtil.SetCache(obj.Id, obj)
service.CacheUtil.SetCache(obj.Id, obj)
}
convert_util.Copy(&res, obj)
@@ -134,7 +135,7 @@ func (service monitorProjectService) Add(addReq MonitorProjectAddReq) (createId
if e != nil {
return 0, e
}
cacheUtil.SetCache(obj.Id, obj)
service.CacheUtil.SetCache(obj.Id, obj)
createId = obj.Id
return
}
@@ -156,7 +157,7 @@ func (service monitorProjectService) Edit(editReq MonitorProjectEditReq) (e erro
if e = response.CheckErr(err, "编辑失败"); e != nil {
return
}
cacheUtil.RemoveCache(obj.Id)
service.CacheUtil.RemoveCache(obj.Id)
service.Detail(obj.Id)
return
}
@@ -177,7 +178,7 @@ func (service monitorProjectService) Del(Id int) (e error) {
obj.DeleteTime = util.NullTimeUtil.Now()
err = service.db.Save(&obj).Error
e = response.CheckErr(err, "删除失败")
cacheUtil.RemoveCache(obj.Id)
service.CacheUtil.RemoveCache(obj.Id)
return
}
@@ -190,9 +191,9 @@ func (service monitorProjectService) DelBatch(Ids []string) (e error) {
}
// 删除缓存
// for _, v := range Ids {
// cacheUtil.RemoveCache(v)
// service.CacheUtil.RemoveCache(v)
// }
cacheUtil.RemoveCache(Ids)
service.CacheUtil.RemoveCache(Ids)
return nil
}