rename service

This commit is contained in:
liuzhihang1
2025-02-10 17:23:02 +08:00
parent 0eada0df2c
commit d04c5b4df8
22 changed files with 141 additions and 141 deletions

View File

@@ -10,9 +10,9 @@ import (
"github.com/lzh-1625/go_process_manager/config"
"github.com/lzh-1625/go_process_manager/internal/app/constants"
"github.com/lzh-1625/go_process_manager/internal/app/logic"
"github.com/lzh-1625/go_process_manager/internal/app/middle"
"github.com/lzh-1625/go_process_manager/internal/app/repository"
"github.com/lzh-1625/go_process_manager/internal/app/service"
"github.com/lzh-1625/go_process_manager/internal/app/termui"
logger "github.com/lzh-1625/go_process_manager/log"
"github.com/lzh-1625/go_process_manager/utils"
@@ -83,11 +83,11 @@ func initLog() {
}
func initEs() {
service.EsService.InitEs()
logic.EsLogic.InitEs()
}
func initProcess() {
service.ProcessCtlService.ProcessInit()
logic.ProcessCtlLogic.ProcessInit()
}
func initJwtSecret() {
@@ -101,7 +101,7 @@ func initJwtSecret() {
}
func initLogHanler() {
service.InitLog()
logic.InitLog()
}
func initTui() {
@@ -109,12 +109,12 @@ func initTui() {
}
func InitTask() {
service.TaskService.InitTaskJob()
logic.TaskLogic.InitTaskJob()
}
func initResetConfig() {
if len(os.Args) >= 2 && os.Args[1] == "reset" {
err := service.ConfigService.ResetSystemConfiguration()
err := logic.ConfigLogic.ResetSystemConfiguration()
if err != nil {
log.Panic(err)
}
@@ -128,7 +128,7 @@ func initListenKillSignal() {
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
<-sigs
service.ProcessCtlService.KillAllProcess()
logic.ProcessCtlLogic.KillAllProcess()
log.Print("已停止所有进程")
os.Exit(0)
}()
@@ -139,5 +139,5 @@ func initCondTiming() {
}
func initLogHandle() {
service.InitLogHandle()
logic.InitLogHandle()
}

View File

@@ -1,7 +1,7 @@
package api
import (
"github.com/lzh-1625/go_process_manager/internal/app/service"
"github.com/lzh-1625/go_process_manager/internal/app/logic"
"github.com/gin-gonic/gin"
)
@@ -11,16 +11,16 @@ type configApi struct{}
var ConfigApi = new(configApi)
func (c *configApi) GetSystemConfiguration(ctx *gin.Context) {
result := service.ConfigService.GetSystemConfiguration()
result := logic.ConfigLogic.GetSystemConfiguration()
rOk(ctx, "Operation successful!", result)
}
func (c *configApi) SetSystemConfiguration(ctx *gin.Context, req map[string]string) {
errCheck(ctx, service.ConfigService.SetSystemConfiguration(req) != nil, "Set config fail!")
errCheck(ctx, logic.ConfigLogic.SetSystemConfiguration(req) != nil, "Set config fail!")
rOk(ctx, "Operation successful!", nil)
}
func (c *configApi) EsConfigReload(ctx *gin.Context) {
errCheck(ctx, !service.EsService.InitEs(), "Incorrect username or password!")
errCheck(ctx, !logic.EsLogic.InitEs(), "Incorrect username or password!")
rOk(ctx, "Operation successful!", nil)
}

View File

@@ -1,7 +1,7 @@
package api
import (
"github.com/lzh-1625/go_process_manager/internal/app/service"
"github.com/lzh-1625/go_process_manager/internal/app/logic"
"github.com/gin-gonic/gin"
)
@@ -12,7 +12,7 @@ var FileApi = new(file)
func (f *file) FilePathHandler(ctx *gin.Context) {
path := getQueryString(ctx, "path")
rOk(ctx, "Operation successful!", service.FileService.GetFileAndDirByPath(path))
rOk(ctx, "Operation successful!", logic.FileLogic.GetFileAndDirByPath(path))
}
func (f *file) FileWriteHandler(ctx *gin.Context) {
@@ -20,14 +20,14 @@ func (f *file) FileWriteHandler(ctx *gin.Context) {
fi, err := ctx.FormFile("data")
errCheck(ctx, err != nil, "Read file data failed!")
fiReader, _ := fi.Open()
err = service.FileService.UpdateFileData(path, fiReader, fi.Size)
err = logic.FileLogic.UpdateFileData(path, fiReader, fi.Size)
errCheck(ctx, err != nil, "Update file data operation failed!")
rOk(ctx, "Operation successful!", nil)
}
func (f *file) FileReadHandler(ctx *gin.Context) {
path := getQueryString(ctx, "filePath")
bytes, err := service.FileService.ReadFileFromPath(path)
bytes, err := logic.FileLogic.ReadFileFromPath(path)
errCheck(ctx, err != nil, "Operation failed!")
rOk(ctx, "Operation successful!", string(bytes))
}

View File

@@ -4,9 +4,9 @@ import (
"slices"
"github.com/lzh-1625/go_process_manager/internal/app/constants"
"github.com/lzh-1625/go_process_manager/internal/app/logic"
"github.com/lzh-1625/go_process_manager/internal/app/model"
"github.com/lzh-1625/go_process_manager/internal/app/repository"
"github.com/lzh-1625/go_process_manager/internal/app/service"
"github.com/gin-gonic/gin"
)
@@ -17,7 +17,7 @@ var LogApi = new(logApi)
func (a *logApi) GetLog(ctx *gin.Context, req model.GetLogReq) {
if isAdmin(ctx) {
rOk(ctx, "Query successful!", service.LogServiceImpl.Search(req, req.FilterName...))
rOk(ctx, "Query successful!", logic.LogLogicImpl.Search(req, req.FilterName...))
} else {
processNameList := repository.PermissionRepository.GetProcessNameByPermission(getUserName(ctx), constants.OPERATION_LOG)
filterName := slices.DeleteFunc(req.FilterName, func(s string) bool {
@@ -27,10 +27,10 @@ func (a *logApi) GetLog(ctx *gin.Context, req model.GetLogReq) {
filterName = processNameList
}
errCheck(ctx, len(filterName) == 0, "No information found!")
rOk(ctx, "Query successful!", service.LogServiceImpl.Search(req, filterName...))
rOk(ctx, "Query successful!", logic.LogLogicImpl.Search(req, filterName...))
}
}
func (a *logApi) GetRunningLog(ctx *gin.Context) {
rOk(ctx, "Query successful!", service.Loghandler.GetRunning())
rOk(ctx, "Query successful!", logic.Loghandler.GetRunning())
}

View File

@@ -1,9 +1,9 @@
package api
import (
"github.com/lzh-1625/go_process_manager/internal/app/logic"
"github.com/lzh-1625/go_process_manager/internal/app/model"
"github.com/lzh-1625/go_process_manager/internal/app/repository"
"github.com/lzh-1625/go_process_manager/internal/app/service"
"github.com/gin-gonic/gin"
)
@@ -16,9 +16,9 @@ func (p *procApi) CreateNewProcess(ctx *gin.Context, req model.Process) {
index, err := repository.ProcessRepository.AddProcessConfig(req)
errCheck(ctx, err != nil, err)
req.Uuid = index
proc, err := service.ProcessCtlService.RunNewProcess(req)
proc, err := logic.ProcessCtlLogic.RunNewProcess(req)
errCheck(ctx, err != nil, err)
service.ProcessCtlService.AddProcess(req.Uuid, proc)
logic.ProcessCtlLogic.AddProcess(req.Uuid, proc)
rOk(ctx, "Operation successful!", gin.H{
"id": req.Uuid,
})
@@ -26,8 +26,8 @@ func (p *procApi) CreateNewProcess(ctx *gin.Context, req model.Process) {
func (p *procApi) DeleteNewProcess(ctx *gin.Context) {
uuid := getQueryInt(ctx, "uuid")
service.ProcessCtlService.KillProcess(uuid)
service.ProcessCtlService.DeleteProcess(uuid)
logic.ProcessCtlLogic.KillProcess(uuid)
logic.ProcessCtlLogic.DeleteProcess(uuid)
err := repository.ProcessRepository.DeleteProcessConfig(uuid)
errCheck(ctx, err != nil, err)
rOk(ctx, "Operation successful!", nil)
@@ -35,18 +35,18 @@ func (p *procApi) DeleteNewProcess(ctx *gin.Context) {
func (p *procApi) KillProcess(ctx *gin.Context) {
uuid := getQueryInt(ctx, "uuid")
err := service.ProcessCtlService.KillProcess(uuid)
err := logic.ProcessCtlLogic.KillProcess(uuid)
errCheck(ctx, err != nil, err)
rOk(ctx, "Operation successful!", nil)
}
func (p *procApi) StartProcess(ctx *gin.Context) {
uuid := getQueryInt(ctx, "uuid")
prod, err := service.ProcessCtlService.GetProcess(uuid)
prod, err := logic.ProcessCtlLogic.GetProcess(uuid)
if err != nil { // 进程不存在则创建
proc, err := service.ProcessCtlService.RunNewProcess(repository.ProcessRepository.GetProcessConfigById(uuid))
proc, err := logic.ProcessCtlLogic.RunNewProcess(repository.ProcessRepository.GetProcessConfigById(uuid))
errCheck(ctx, err != nil, err)
service.ProcessCtlService.AddProcess(uuid, proc)
logic.ProcessCtlLogic.AddProcess(uuid, proc)
rOk(ctx, "Operation successful!", nil)
return
}
@@ -59,32 +59,32 @@ func (p *procApi) StartProcess(ctx *gin.Context) {
func (p *procApi) StartAllProcess(ctx *gin.Context) {
if isAdmin(ctx) {
service.ProcessCtlService.ProcessStartAll()
logic.ProcessCtlLogic.ProcessStartAll()
} else {
service.ProcessCtlService.ProcesStartAllByUsername(getUserName(ctx))
logic.ProcessCtlLogic.ProcesStartAllByUsername(getUserName(ctx))
}
rOk(ctx, "Operation successful!", nil)
}
func (p *procApi) KillAllProcess(ctx *gin.Context) {
if isAdmin(ctx) {
service.ProcessCtlService.KillAllProcess()
logic.ProcessCtlLogic.KillAllProcess()
} else {
service.ProcessCtlService.KillAllProcessByUserName(getUserName(ctx))
logic.ProcessCtlLogic.KillAllProcessByUserName(getUserName(ctx))
}
rOk(ctx, "Operation successful!", nil)
}
func (p *procApi) GetProcessList(ctx *gin.Context) {
if isAdmin(ctx) {
rOk(ctx, "Query successful!", service.ProcessCtlService.GetProcessList())
rOk(ctx, "Query successful!", logic.ProcessCtlLogic.GetProcessList())
} else {
rOk(ctx, "Query successful!", service.ProcessCtlService.GetProcessListByUser(getUserName(ctx)))
rOk(ctx, "Query successful!", logic.ProcessCtlLogic.GetProcessListByUser(getUserName(ctx)))
}
}
func (p *procApi) UpdateProcessConfig(ctx *gin.Context, req model.Process) {
service.ProcessCtlService.UpdateProcessConfig(req)
logic.ProcessCtlLogic.UpdateProcessConfig(req)
err := repository.ProcessRepository.UpdateProcessConfig(req)
errCheck(ctx, err != nil, err)
rOk(ctx, "Operation successful!", nil)
@@ -100,7 +100,7 @@ func (p *procApi) GetProcessConfig(ctx *gin.Context) {
func (p *procApi) ProcessControl(ctx *gin.Context) {
user := getUserName(ctx)
uuid := getQueryInt(ctx, "uuid")
proc, err := service.ProcessCtlService.GetProcess(uuid)
proc, err := logic.ProcessCtlLogic.GetProcess(uuid)
errCheck(ctx, err != nil, err)
proc.ProcessControl(user)
rOk(ctx, "Operation successful!", nil)

View File

@@ -1,9 +1,9 @@
package api
import (
"github.com/lzh-1625/go_process_manager/internal/app/logic"
"github.com/lzh-1625/go_process_manager/internal/app/model"
"github.com/lzh-1625/go_process_manager/internal/app/repository"
"github.com/lzh-1625/go_process_manager/internal/app/service"
"github.com/gin-gonic/gin"
)
@@ -13,7 +13,7 @@ type taskApi struct{}
var TaskApi = new(taskApi)
func (t *taskApi) CreateTask(ctx *gin.Context, req model.Task) {
err := service.TaskService.CreateTask(req)
err := logic.TaskLogic.CreateTask(req)
errCheck(ctx, err != nil, err)
rOk(ctx, "Operation successful!", nil)
}
@@ -25,46 +25,46 @@ func (t *taskApi) GetTaskById(ctx *gin.Context) {
}
func (t *taskApi) GetTaskList(ctx *gin.Context) {
result := service.TaskService.GetAllTaskJob()
result := logic.TaskLogic.GetAllTaskJob()
rOk(ctx, "Operation successful!", result)
}
func (t *taskApi) DeleteTaskById(ctx *gin.Context) {
err := service.TaskService.DeleteTask(getQueryInt(ctx, "id"))
err := logic.TaskLogic.DeleteTask(getQueryInt(ctx, "id"))
errCheck(ctx, err != nil, err)
rOk(ctx, "Operation successful!", nil)
}
func (t *taskApi) StartTask(ctx *gin.Context) {
go service.TaskService.RunTaskById(getQueryInt(ctx, "id"))
go logic.TaskLogic.RunTaskById(getQueryInt(ctx, "id"))
rOk(ctx, "Operation successful!", nil)
}
func (t *taskApi) StopTask(ctx *gin.Context) {
errCheck(ctx, service.TaskService.StopTaskJob(getQueryInt(ctx, "id")) != nil, "Operation failed!")
errCheck(ctx, logic.TaskLogic.StopTaskJob(getQueryInt(ctx, "id")) != nil, "Operation failed!")
rOk(ctx, "Operation successful!", nil)
}
func (t *taskApi) EditTask(ctx *gin.Context, req model.Task) {
err := service.TaskService.EditTask(req)
err := logic.TaskLogic.EditTask(req)
errCheck(ctx, err != nil, err)
rOk(ctx, "Operation successful!", nil)
}
func (t *taskApi) EditTaskEnable(ctx *gin.Context, req model.Task) {
err := service.TaskService.EditTaskEnable(req.Id, req.Enable)
err := logic.TaskLogic.EditTaskEnable(req.Id, req.Enable)
errCheck(ctx, err != nil, err)
rOk(ctx, "Operation successful!", nil)
}
func (t *taskApi) RunTaskByKey(ctx *gin.Context) {
err := service.TaskService.RunTaskByKey(ctx.Param("key"))
err := logic.TaskLogic.RunTaskByKey(ctx.Param("key"))
errCheck(ctx, err != nil, err)
rOk(ctx, "Operation successful!", nil)
}
func (t *taskApi) CreateTaskApiKey(ctx *gin.Context) {
err := service.TaskService.CreateApiKey(getQueryInt(ctx, "id"))
err := logic.TaskLogic.CreateApiKey(getQueryInt(ctx, "id"))
errCheck(ctx, err != nil, err)
rOk(ctx, "Operation successful!", nil)
}

View File

@@ -5,8 +5,8 @@ import (
"time"
"github.com/lzh-1625/go_process_manager/internal/app/constants"
"github.com/lzh-1625/go_process_manager/internal/app/logic"
"github.com/lzh-1625/go_process_manager/internal/app/middle"
"github.com/lzh-1625/go_process_manager/internal/app/service"
"github.com/lzh-1625/go_process_manager/log"
"github.com/lzh-1625/go_process_manager/utils"
@@ -42,7 +42,7 @@ var upgrader = websocket.Upgrader{
func (w *wsApi) WebsocketHandle(ctx *gin.Context) {
reqUser := getUserName(ctx)
uuid := getQueryInt(ctx, "uuid")
proc, err := service.ProcessCtlService.GetProcess(uuid)
proc, err := logic.ProcessCtlLogic.GetProcess(uuid)
errCheck(ctx, err != nil, "Operation failed!")
errCheck(ctx, proc.HasWsConn(reqUser), "A connection already exists; unable to establish a new one!")
errCheck(ctx, proc.State.State != 1, "The process is currently running.")
@@ -83,7 +83,7 @@ func (w *wsApi) WebsocketHandle(ctx *gin.Context) {
conn.Close()
}
func (w *wsApi) startWsConnect(conn *websocket.Conn, proc service.Process, write bool) {
func (w *wsApi) startWsConnect(conn *websocket.Conn, proc logic.Process, write bool) {
log.Logger.Debugw("ws读取线程已启动")
go func() {
for {

View File

@@ -1,4 +1,4 @@
package service
package logic
import (
"reflect"
@@ -9,13 +9,13 @@ import (
"github.com/lzh-1625/go_process_manager/internal/app/repository"
)
type configService struct{}
type configLogic struct{}
var (
ConfigService = new(configService)
ConfigLogic = new(configLogic)
)
func (c *configService) GetSystemConfiguration() []model.SystemConfigurationVo {
func (c *configLogic) GetSystemConfiguration() []model.SystemConfigurationVo {
result := []model.SystemConfigurationVo{}
typeElem := reflect.TypeOf(config.CF).Elem()
valueElem := reflect.ValueOf(config.CF).Elem()
@@ -49,7 +49,7 @@ func (c *configService) GetSystemConfiguration() []model.SystemConfigurationVo {
return result
}
func (c *configService) SetSystemConfiguration(kv map[string]string) error {
func (c *configLogic) SetSystemConfiguration(kv map[string]string) error {
typeElem := reflect.TypeOf(config.CF).Elem()
valueElem := reflect.ValueOf(config.CF).Elem()
for i := 0; i < typeElem.NumField(); i++ {
@@ -96,7 +96,7 @@ func (c *configService) SetSystemConfiguration(kv map[string]string) error {
}
// reset system config to default
func (c *configService) ResetSystemConfiguration() error {
func (c *configLogic) ResetSystemConfiguration() error {
typeElem := reflect.TypeOf(config.CF).Elem()
valueElem := reflect.ValueOf(config.CF).Elem()
for i := 0; i < typeElem.NumField(); i++ {

View File

@@ -1,4 +1,4 @@
package service
package logic
import (
"context"
@@ -13,22 +13,22 @@ import (
"github.com/olivere/elastic/v7"
)
type esService struct {
type esLogic struct {
esClient *elastic.Client
}
var (
EsService = new(esService)
EsLogic = new(esLogic)
)
func (e *esService) InitEs() bool {
func (e *esLogic) InitEs() bool {
if !config.CF.EsEnable {
log.Logger.Debug("不使用es")
return false
}
var err error
EsService.esClient, err = elastic.NewClient(
EsLogic.esClient, err = elastic.NewClient(
elastic.SetURL(config.CF.EsUrl),
elastic.SetBasicAuth(config.CF.EsUsername, config.CF.EsPassword),
elastic.SetSniff(false),
@@ -38,11 +38,11 @@ func (e *esService) InitEs() bool {
log.Logger.Warnw("Failed to connect to es", "err", err)
return false
}
EsService.CreateIndexIfNotExists(config.CF.EsIndex)
EsLogic.CreateIndexIfNotExists(config.CF.EsIndex)
return true
}
func (e *esService) Insert(logContent string, processName string, using string, ts int64) {
func (e *esLogic) Insert(logContent string, processName string, using string, ts int64) {
data := model.ProcessLog{
Log: logContent,
Name: processName,
@@ -55,7 +55,7 @@ func (e *esService) Insert(logContent string, processName string, using string,
}
}
func (e *esService) CreateIndexIfNotExists(index string) error {
func (e *esLogic) CreateIndexIfNotExists(index string) error {
ctx := context.Background()
exists, err := e.esClient.IndexExists(index).Do(ctx)
@@ -76,7 +76,7 @@ func (e *esService) CreateIndexIfNotExists(index string) error {
return nil
}
func (e *esService) Search(req model.GetLogReq, filterProcessName ...string) model.LogResp {
func (e *esLogic) Search(req model.GetLogReq, filterProcessName ...string) model.LogResp {
// 检查 req 是否为 nil
if req.Page.From < 0 || req.Page.Size <= 0 {
log.Logger.Error("无效的分页请求参数")
@@ -144,7 +144,7 @@ func (e *esService) Search(req model.GetLogReq, filterProcessName ...string) mod
}
// 通过反射得到mapping
func (e *esService) structToJSON() string {
func (e *esLogic) structToJSON() string {
typ := reflect.TypeOf(model.ProcessLog{})
properties := make(map[string]map[string]string)
for i := 0; i < typ.NumField(); i++ {

View File

@@ -1,4 +1,4 @@
package service
package logic
import (
"fmt"
@@ -10,11 +10,11 @@ import (
"github.com/lzh-1625/go_process_manager/log"
)
type fileService struct{}
type fileLogic struct{}
var FileService = new(fileService)
var FileLogic = new(fileLogic)
func (f *fileService) ReadFileFromPath(path string) (result []byte, err error) {
func (f *fileLogic) ReadFileFromPath(path string) (result []byte, err error) {
fi, err := os.Open(path)
if err != nil {
return
@@ -36,7 +36,7 @@ func (f *fileService) ReadFileFromPath(path string) (result []byte, err error) {
return
}
func (f *fileService) UpdateFileData(filePath string, file io.Reader, size int64) error {
func (f *fileLogic) UpdateFileData(filePath string, file io.Reader, size int64) error {
if size := float64(size) / 1e6; size > config.CF.FileSizeLimit {
return fmt.Errorf("写入数据大小%vMB,超过%vMB限制", size, config.CF.FileSizeLimit)
}
@@ -52,7 +52,7 @@ func (f *fileService) UpdateFileData(filePath string, file io.Reader, size int64
return nil
}
func (f *fileService) GetFileAndDirByPath(srcPath string) []model.FileStruct {
func (f *fileLogic) GetFileAndDirByPath(srcPath string) []model.FileStruct {
result := []model.FileStruct{}
files, err := os.ReadDir(srcPath)
if err != nil {
@@ -67,11 +67,11 @@ func (f *fileService) GetFileAndDirByPath(srcPath string) []model.FileStruct {
return result
}
func (f *fileService) CreateNewDir(path string, name string) error {
func (f *fileLogic) CreateNewDir(path string, name string) error {
_, err := os.Create(path + name)
return err
}
func (f *fileService) CreateNewFile(path string, name string) error {
func (f *fileLogic) CreateNewFile(path string, name string) error {
return os.MkdirAll(path+name, os.ModeDir)
}

View File

@@ -1,4 +1,4 @@
package service
package logic
import (
"time"
@@ -26,7 +26,7 @@ func InitLogHandle() {
func (l *loghandler) AddLog(data model.ProcessLog) {
if err := l.antsPool.Submit(func() {
LogServiceImpl.Insert(data.Log, data.Name, data.Using, data.Time)
LogLogicImpl.Insert(data.Log, data.Name, data.Using, data.Time)
}); err != nil {
log.Logger.Warnw("协程池添加任务失败", "err", err, "当前运行数量", l.antsPool.Running())
}

View File

@@ -1,4 +1,4 @@
package service
package logic
import (
"github.com/lzh-1625/go_process_manager/config"
@@ -6,18 +6,18 @@ import (
"github.com/lzh-1625/go_process_manager/internal/app/repository"
)
type LogService interface {
type LogLogic interface {
Search(req model.GetLogReq, filterProcessName ...string) model.LogResp
Insert(log string, processName string, using string, ts int64)
}
var LogServiceImpl LogService
var LogLogicImpl LogLogic
func InitLog() {
if config.CF.EsEnable {
LogServiceImpl = LogEs
LogLogicImpl = LogEs
} else {
LogServiceImpl = LogSqlite
LogLogicImpl = LogSqlite
}
}
@@ -48,9 +48,9 @@ type logEs struct{}
var LogEs = new(logEs)
func (l *logEs) Search(req model.GetLogReq, filterProcessName ...string) model.LogResp {
return EsService.Search(req, filterProcessName...)
return EsLogic.Search(req, filterProcessName...)
}
func (l *logEs) Insert(log string, processName string, using string, ts int64) {
EsService.Insert(log, processName, using, ts)
EsLogic.Insert(log, processName, using, ts)
}

View File

@@ -1,4 +1,4 @@
package service
package logic
import (
"fmt"
@@ -151,7 +151,7 @@ func (p *ProcessBase) SetState(state constants.ProcessState, fn ...func() bool)
}
p.State.State = state
middle.ProcessWaitCond.Trigger()
go TaskService.RunTaskByTriggerEvent(p.Name, state)
go TaskLogic.RunTaskByTriggerEvent(p.Name, state)
return true
}
@@ -237,7 +237,7 @@ func (p *ProcessBase) push(message string) {
"{$message}": message,
"{$status}": strconv.Itoa(int(p.State.State)),
}
PushService.Push(p.Config.PushIds, messagePlaceholders)
PushLogic.Push(p.Config.PushIds, messagePlaceholders)
}
}

View File

@@ -1,4 +1,4 @@
package service
package logic
import (
"errors"
@@ -13,19 +13,19 @@ import (
"github.com/lzh-1625/go_process_manager/utils"
)
type processCtlService struct {
type processCtlLogic struct {
processMap sync.Map
}
var (
ProcessCtlService = new(processCtlService)
ProcessCtlLogic = new(processCtlLogic)
)
func (p *processCtlService) AddProcess(uuid int, process *ProcessBase) {
func (p *processCtlLogic) AddProcess(uuid int, process *ProcessBase) {
p.processMap.Store(uuid, process)
}
func (p *processCtlService) KillProcess(uuid int) error {
func (p *processCtlLogic) KillProcess(uuid int) error {
value, ok := p.processMap.Load(uuid)
if !ok {
return errors.New("进程不存在")
@@ -41,7 +41,7 @@ func (p *processCtlService) KillProcess(uuid int) error {
return result.Kill()
}
func (p *processCtlService) GetProcess(uuid int) (*ProcessBase, error) {
func (p *processCtlLogic) GetProcess(uuid int) (*ProcessBase, error) {
process, ok := p.processMap.Load(uuid)
if !ok {
return nil, errors.New("进程获取失败")
@@ -54,7 +54,7 @@ func (p *processCtlService) GetProcess(uuid int) (*ProcessBase, error) {
return result, nil
}
func (p *processCtlService) KillAllProcess() {
func (p *processCtlLogic) KillAllProcess() {
wg := sync.WaitGroup{}
p.processMap.Range(func(key, value any) bool {
process := value.(*ProcessBase)
@@ -72,7 +72,7 @@ func (p *processCtlService) KillAllProcess() {
wg.Wait()
}
func (p *processCtlService) KillAllProcessByUserName(userName string) {
func (p *processCtlLogic) KillAllProcessByUserName(userName string) {
stopPermissionProcess := repository.PermissionRepository.GetProcessNameByPermission(userName, constants.OPERATION_STOP)
wg := sync.WaitGroup{}
p.processMap.Range(func(key, value any) bool {
@@ -90,21 +90,21 @@ func (p *processCtlService) KillAllProcessByUserName(userName string) {
wg.Wait()
}
func (p *processCtlService) DeleteProcess(uuid int) {
func (p *processCtlLogic) DeleteProcess(uuid int) {
p.processMap.Delete(uuid)
}
func (p *processCtlService) GetProcessList() []model.ProcessInfo {
func (p *processCtlLogic) GetProcessList() []model.ProcessInfo {
processConfiglist := repository.ProcessRepository.GetAllProcessConfig()
return p.getProcessInfoList(processConfiglist)
}
func (p *processCtlService) GetProcessListByUser(username string) []model.ProcessInfo {
func (p *processCtlLogic) GetProcessListByUser(username string) []model.ProcessInfo {
processConfiglist := repository.ProcessRepository.GetProcessConfigByUser(username)
return p.getProcessInfoList(processConfiglist)
}
func (p *processCtlService) getProcessInfoList(processConfiglist []model.Process) []model.ProcessInfo {
func (p *processCtlLogic) getProcessInfoList(processConfiglist []model.Process) []model.ProcessInfo {
processInfoList := []model.ProcessInfo{}
for _, v := range processConfiglist {
pi := model.ProcessInfo{
@@ -130,7 +130,7 @@ func (p *processCtlService) getProcessInfoList(processConfiglist []model.Process
return processInfoList
}
func (p *processCtlService) ProcessStartAll() {
func (p *processCtlLogic) ProcessStartAll() {
p.processMap.Range(func(key, value any) bool {
process := value.(*ProcessBase)
err := process.Start()
@@ -141,7 +141,7 @@ func (p *processCtlService) ProcessStartAll() {
})
}
func (p *processCtlService) RunPrcessById(id int) (*ProcessBase, error) {
func (p *processCtlLogic) RunPrcessById(id int) (*ProcessBase, error) {
config := repository.ProcessRepository.GetProcessConfigById(id)
proc, err := p.RunNewProcess(config)
if err != nil {
@@ -152,7 +152,7 @@ func (p *processCtlService) RunPrcessById(id int) (*ProcessBase, error) {
return proc, nil
}
func (p *processCtlService) ProcessInit() {
func (p *processCtlLogic) ProcessInit() {
config := repository.ProcessRepository.GetAllProcessConfig()
for _, v := range config {
@@ -172,7 +172,7 @@ func (p *processCtlService) ProcessInit() {
}
}
func (p *processCtlService) ProcesStartAllByUsername(userName string) {
func (p *processCtlLogic) ProcesStartAllByUsername(userName string) {
startPermissionProcess := repository.PermissionRepository.GetProcessNameByPermission(userName, constants.OPERATION_START)
p.processMap.Range(func(key, value any) bool {
process := value.(*ProcessBase)
@@ -187,7 +187,7 @@ func (p *processCtlService) ProcesStartAllByUsername(userName string) {
})
}
func (p *processCtlService) UpdateProcessConfig(config model.Process) error {
func (p *processCtlLogic) UpdateProcessConfig(config model.Process) error {
process, ok := p.processMap.Load(config.Uuid)
if !ok {
return errors.New("进程获取失败")
@@ -213,7 +213,7 @@ func (p *processCtlService) UpdateProcessConfig(config model.Process) error {
return nil
}
func (p *processCtlService) RunNewProcess(config model.Process) (proc *ProcessBase, err error) {
func (p *processCtlLogic) RunNewProcess(config model.Process) (proc *ProcessBase, err error) {
switch config.TermType {
case constants.TERMINAL_STD:
proc, err = RunNewProcessStd(config)
@@ -225,7 +225,7 @@ func (p *processCtlService) RunNewProcess(config model.Process) (proc *ProcessBa
return
}
func (p *processCtlService) NewProcess(config model.Process) (proc *ProcessBase, err error) {
func (p *processCtlLogic) NewProcess(config model.Process) (proc *ProcessBase, err error) {
switch config.TermType {
case constants.TERMINAL_STD:
proc = NewProcessStd(config)

View File

@@ -1,4 +1,4 @@
package service
package logic
import (
"bytes"

View File

@@ -1,4 +1,4 @@
package service
package logic
import (
"bytes"

View File

@@ -1,4 +1,4 @@
package service
package logic
import (
"bufio"

View File

@@ -1,4 +1,4 @@
package service
package logic
import (
"net/http"
@@ -9,11 +9,11 @@ import (
"github.com/levigross/grequests"
)
type pushService struct{}
type pushLogic struct{}
var PushService = new(pushService)
var PushLogic = new(pushLogic)
func (p *pushService) Push(ids []int, placeholders map[string]string) {
func (p *pushLogic) Push(ids []int, placeholders map[string]string) {
pl := repository.PushRepository.GetPushConfigByIds(ids)
for _, v := range pl {
if v.Enable {
@@ -29,7 +29,7 @@ func (p *pushService) Push(ids []int, placeholders map[string]string) {
}
}
func (p *pushService) getReplaceMessage(placeholders map[string]string, message string) string {
func (p *pushLogic) getReplaceMessage(placeholders map[string]string, message string) string {
for k, v := range placeholders {
message = strings.ReplaceAll(message, k, v)
}

View File

@@ -1,4 +1,4 @@
package service
package logic
import (
"context"
@@ -12,7 +12,7 @@ import (
"github.com/lzh-1625/go_process_manager/log"
)
func (t *taskService) RunTaskById(id int) error {
func (t *taskLogic) RunTaskById(id int) error {
v, ok := t.taskJobMap.Load(id)
if !ok {
return errors.New("don't exist task id")
@@ -28,7 +28,7 @@ func (t *taskService) RunTaskById(id int) error {
return nil
}
func (t *taskService) run(ctx context.Context, data *model.TaskJob) {
func (t *taskLogic) run(ctx context.Context, data *model.TaskJob) {
data.Running = true
middle.TaskWaitCond.Trigger()
defer func() {
@@ -42,7 +42,7 @@ func (t *taskService) run(ctx context.Context, data *model.TaskJob) {
if data.Task.Condition == constants.PASS {
ok = true
} else {
proc, err := ProcessCtlService.GetProcess(data.Task.OperationTarget)
proc, err := ProcessCtlLogic.GetProcess(data.Task.OperationTarget)
if err != nil {
return
}
@@ -53,7 +53,7 @@ func (t *taskService) run(ctx context.Context, data *model.TaskJob) {
return
}
proc, err := ProcessCtlService.GetProcess(data.Task.OperationTarget)
proc, err := ProcessCtlLogic.GetProcess(data.Task.OperationTarget)
if err != nil {
log.Logger.Debugw("不存在该进程,结束任务")
return

View File

@@ -1,4 +1,4 @@
package service
package logic
import (
"context"
@@ -15,13 +15,13 @@ import (
"github.com/robfig/cron/v3"
)
type taskService struct {
type taskLogic struct {
taskJobMap sync.Map
}
var TaskService taskService
var TaskLogic taskLogic
func (t *taskService) InitTaskJob() {
func (t *taskLogic) InitTaskJob() {
for _, v := range repository.TaskRepository.GetAllTask() {
tj := &model.TaskJob{
Task: &v,
@@ -43,7 +43,7 @@ func (t *taskService) InitTaskJob() {
}
}
func (t *taskService) cronHandle(data *model.TaskJob) func() {
func (t *taskLogic) cronHandle(data *model.TaskJob) func() {
return func() {
log.Logger.AddAdditionalInfo("id", data.Task.Id)
defer log.Logger.DeleteAdditionalInfo(1)
@@ -60,7 +60,7 @@ func (t *taskService) cronHandle(data *model.TaskJob) func() {
}
}
func (t *taskService) StopTaskJob(id int) error {
func (t *taskLogic) StopTaskJob(id int) error {
c, ok := t.taskJobMap.Load(id)
if !ok {
return errors.New("id不存在")
@@ -72,7 +72,7 @@ func (t *taskService) StopTaskJob(id int) error {
return nil
}
func (t *taskService) StartTaskJob(id int) error {
func (t *taskLogic) StartTaskJob(id int) error {
c, ok := t.taskJobMap.Load(id)
if !ok {
return errors.New("id不存在")
@@ -82,7 +82,7 @@ func (t *taskService) StartTaskJob(id int) error {
return nil
}
func (t *taskService) GetAllTaskJob() []model.TaskVo {
func (t *taskLogic) GetAllTaskJob() []model.TaskVo {
result := repository.TaskRepository.GetAllTaskWithProcessName()
for i, v := range result {
item, ok := t.taskJobMap.Load(v.Id)
@@ -97,7 +97,7 @@ func (t *taskService) GetAllTaskJob() []model.TaskVo {
return result
}
func (t *taskService) DeleteTask(id int) (err error) {
func (t *taskLogic) DeleteTask(id int) (err error) {
t.StopTaskJob(id)
t.EditTaskEnable(id, false)
t.taskJobMap.Delete(id)
@@ -108,7 +108,7 @@ func (t *taskService) DeleteTask(id int) (err error) {
return
}
func (t *taskService) CreateTask(data model.Task) error {
func (t *taskLogic) CreateTask(data model.Task) error {
tj := &model.TaskJob{
Task: &data,
StartTime: time.Now(),
@@ -132,7 +132,7 @@ func (t *taskService) CreateTask(data model.Task) error {
return nil
}
func (t *taskService) EditTask(data model.Task) error {
func (t *taskLogic) EditTask(data model.Task) error {
if data.Cron != nil {
if _, err := cron.ParseStandard(*data.Cron); err != nil {
return err
@@ -147,7 +147,7 @@ func (t *taskService) EditTask(data model.Task) error {
return repository.TaskRepository.EditTask(data)
}
func (t *taskService) EditTaskEnable(id int, status bool) error {
func (t *taskLogic) EditTaskEnable(id int, status bool) error {
v, ok := t.taskJobMap.Load(id)
if !ok {
return errors.New("don't exist this task id")
@@ -165,7 +165,7 @@ func (t *taskService) EditTaskEnable(id int, status bool) error {
return nil
}
func (t *taskService) CreateApiKey(id int) error {
func (t *taskLogic) CreateApiKey(id int) error {
data, err := repository.TaskRepository.GetTaskById(id)
if err != nil {
return err
@@ -176,7 +176,7 @@ func (t *taskService) CreateApiKey(id int) error {
return nil
}
func (t *taskService) RunTaskByKey(key string) error {
func (t *taskLogic) RunTaskByKey(key string) error {
data, err := repository.TaskRepository.GetTaskByKey(key)
if err != nil {
return errors.New("don't exist key")
@@ -185,7 +185,7 @@ func (t *taskService) RunTaskByKey(key string) error {
return nil
}
func (t *taskService) RunTaskByTriggerEvent(processName string, event constants.ProcessState) {
func (t *taskLogic) RunTaskByTriggerEvent(processName string, event constants.ProcessState) {
taskList := repository.TaskRepository.GetTriggerTask(processName, event)
if len(taskList) == 0 {
return

View File

@@ -7,7 +7,7 @@ import (
"github.com/lzh-1625/go_process_manager/config"
"github.com/lzh-1625/go_process_manager/internal/app/constants"
"github.com/lzh-1625/go_process_manager/internal/app/service"
"github.com/lzh-1625/go_process_manager/internal/app/logic"
"github.com/lzh-1625/go_process_manager/log"
"github.com/lzh-1625/go_process_manager/utils"
@@ -44,7 +44,7 @@ func (t *tui) TermuiInit() {
func (t *tui) drawProcessList() {
t.app = tview.NewApplication()
list := tview.NewList()
for i, v := range service.ProcessCtlService.GetProcessList() {
for i, v := range logic.ProcessCtlLogic.GetProcessList() {
if i >= 'r' {
i++
}
@@ -67,7 +67,7 @@ func (t *tui) drawProcessList() {
}
func (t *tui) teminal(uuid int) {
p, err := service.ProcessCtlService.GetProcess(uuid)
p, err := logic.ProcessCtlLogic.GetProcess(uuid)
if err != nil {
log.Logger.Error("不存在uuid", "uuid", uuid)
}
@@ -89,7 +89,7 @@ func (t *tui) teminal(uuid int) {
log.Logger.Info("tui quit")
}
func (t *tui) startConnect(p service.Process, ctx context.Context, cancel context.CancelFunc) {
func (t *tui) startConnect(p logic.Process, ctx context.Context, cancel context.CancelFunc) {
switch p.Type() {
case constants.TERMINAL_PTY:
{
@@ -102,7 +102,7 @@ func (t *tui) startConnect(p service.Process, ctx context.Context, cancel contex
}
}
func (t *tui) ptyConnect(p service.Process, ctx context.Context, cancel context.CancelFunc) {
func (t *tui) ptyConnect(p logic.Process, ctx context.Context, cancel context.CancelFunc) {
buf := make([]byte, 1024)
for {
select {
@@ -124,7 +124,7 @@ func (t *tui) ptyConnect(p service.Process, ctx context.Context, cancel context.
}
}
func (t *tui) stdConnect(p service.Process, ctx context.Context, cancel context.CancelFunc) {
func (t *tui) stdConnect(p logic.Process, ctx context.Context, cancel context.CancelFunc) {
buf := make([]byte, 1024)
var line string
for {

View File

@@ -6,8 +6,8 @@ import (
_ "github.com/lzh-1625/go_process_manager/boot"
"github.com/lzh-1625/go_process_manager/internal/app/constants"
"github.com/lzh-1625/go_process_manager/internal/app/logic"
"github.com/lzh-1625/go_process_manager/internal/app/model"
"github.com/lzh-1625/go_process_manager/internal/app/service"
"github.com/containerd/cgroups/v3/cgroup1"
"github.com/opencontainers/runtime-spec/specs-go"
@@ -28,7 +28,7 @@ func TestCgroup(t *testing.T) {
panic(err)
}
defer control.Delete()
p, err := service.ProcessCtlService.RunNewProcess(model.Process{
p, err := logic.ProcessCtlLogic.RunNewProcess(model.Process{
Name: "test",
Cmd: "bash",
Cwd: `/root`,