71 lines
1.8 KiB
Go
71 lines
1.8 KiB
Go
package smdl
|
|
|
|
import (
|
|
"admin/apps/game/domain/entity"
|
|
"admin/apps/game/model"
|
|
"admin/apps/game/model/dto"
|
|
"admin/internal/errcode"
|
|
"admin/lib/httpclient"
|
|
)
|
|
|
|
type ServerHook struct {
|
|
}
|
|
|
|
func (hook *ServerHook) List(projectInfo *entity.Project, resource string, pageNo, pageLen int, fields []*dto.CommonDtoFieldDesc, rows []dto.CommonDtoValues, extraQuery string, args ...any) (
|
|
[]*dto.CommonDtoFieldDesc, []dto.CommonDtoValues, error) {
|
|
alisrvAddr := projectInfo.GetApiAddr()
|
|
if alisrvAddr == "" {
|
|
return nil, nil, errcode.New(errcode.ServerError, "项目%v没有配置api服务器地址", projectInfo.ProjectPo.Name)
|
|
}
|
|
|
|
fields = append(fields, &dto.CommonDtoFieldDesc{
|
|
Name: "进程运行状态",
|
|
Key: "RunningStatus",
|
|
Type: "string",
|
|
HelpText: "进程运行状态:未知、运行中、停止",
|
|
Readonly: false,
|
|
Required: false,
|
|
Choices: make([]*dto.CommonDtoFieldChoice, 0),
|
|
MultiChoice: false,
|
|
Uneditable: true,
|
|
})
|
|
|
|
type ServerInfo struct {
|
|
ServerId string `json:"serverId"`
|
|
ServerName string `json:"serverName"`
|
|
}
|
|
|
|
type RspData struct {
|
|
Code int `json:"code"`
|
|
Msg string `json:"msg"`
|
|
Data struct {
|
|
List []*ServerInfo `json:"list"`
|
|
} `json:"data"`
|
|
}
|
|
|
|
rsp := &RspData{}
|
|
err := httpclient.Request(alisrvAddr+"/"+resource, "get", nil, rsp)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
for _, row := range rows {
|
|
findRunning := false
|
|
for _, curRunning := range rsp.Data.List {
|
|
et := (&entity.CommonResource{}).FromPo(&model.Server{}).FromDto(row)
|
|
if et.ToPo().(*model.Server).ServerConfID == curRunning.ServerId {
|
|
// 运行中,给描述信息添加运行信息
|
|
findRunning = true
|
|
break
|
|
}
|
|
}
|
|
if findRunning {
|
|
row["RunningStatus"] = "运行中"
|
|
} else {
|
|
row["RunningStatus"] = "未知"
|
|
}
|
|
}
|
|
|
|
return fields, rows, nil
|
|
}
|