Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zentaoatf
提交
f76f80ca
Z
zentaoatf
项目概览
易企天创
/
zentaoatf
11 个月 前同步成功
通知
11
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
3
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zentaoatf
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
3
Issue
3
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f76f80ca
编写于
3月 14, 2022
作者:
aaronchen2k2k
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
zentao site admin
上级
184a4907
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
306 addition
and
0 deletion
+306
-0
internal/server/modules/v1/controller/site.go
internal/server/modules/v1/controller/site.go
+72
-0
internal/server/modules/v1/index.go
internal/server/modules/v1/index.go
+3
-0
internal/server/modules/v1/index/site.go
internal/server/modules/v1/index/site.go
+28
-0
internal/server/modules/v1/model/models.go
internal/server/modules/v1/model/models.go
+1
-0
internal/server/modules/v1/model/site.go
internal/server/modules/v1/model/site.go
+16
-0
internal/server/modules/v1/repo/site.go
internal/server/modules/v1/repo/site.go
+134
-0
internal/server/modules/v1/service/site.go
internal/server/modules/v1/service/site.go
+52
-0
未找到文件。
internal/server/modules/v1/controller/site.go
0 → 100644
浏览文件 @
f76f80ca
package
controller
import
(
commConsts
"github.com/aaronchen2k/deeptest/internal/comm/consts"
serverDomain
"github.com/aaronchen2k/deeptest/internal/server/modules/v1/domain"
"github.com/aaronchen2k/deeptest/internal/server/modules/v1/service"
"github.com/kataras/iris/v12"
)
type
SiteCtrl
struct
{
SiteService
*
service
.
SiteService
`inject:""`
BaseCtrl
}
func
NewSiteCtrl
()
*
SiteCtrl
{
return
&
SiteCtrl
{}
}
// List 分页列表
func
(
c
*
SiteCtrl
)
List
(
ctx
iris
.
Context
)
{
projectPath
:=
ctx
.
URLParam
(
"currProject"
)
if
projectPath
==
""
{
ctx
.
JSON
(
c
.
SuccessResp
(
make
([]
serverDomain
.
TestReportSummary
,
0
)))
return
}
data
,
err
:=
c
.
SiteService
.
List
(
projectPath
)
if
err
!=
nil
{
ctx
.
JSON
(
c
.
ErrResp
(
commConsts
.
Failure
,
err
.
Error
()))
return
}
ctx
.
JSON
(
c
.
SuccessResp
(
data
))
}
// Get 详情
func
(
c
*
SiteCtrl
)
Get
(
ctx
iris
.
Context
)
{
projectPath
:=
ctx
.
URLParam
(
"currProject"
)
seq
:=
ctx
.
Params
()
.
Get
(
"seq"
)
if
seq
==
""
{
c
.
ErrResp
(
commConsts
.
ParamErr
,
"seq"
)
return
}
exec
,
err
:=
c
.
SiteService
.
Get
(
projectPath
,
seq
)
if
err
!=
nil
{
ctx
.
JSON
(
c
.
ErrResp
(
commConsts
.
Failure
,
err
.
Error
()))
return
}
ctx
.
JSON
(
c
.
SuccessResp
(
exec
))
}
// Delete 删除
func
(
c
*
SiteCtrl
)
Delete
(
ctx
iris
.
Context
)
{
projectPath
:=
ctx
.
URLParam
(
"currProject"
)
seq
:=
ctx
.
Params
()
.
Get
(
"seq"
)
if
seq
==
""
{
c
.
ErrResp
(
commConsts
.
ParamErr
,
"seq"
)
return
}
err
:=
c
.
SiteService
.
Delete
(
projectPath
,
seq
)
if
err
!=
nil
{
ctx
.
JSON
(
c
.
ErrResp
(
commConsts
.
Failure
,
err
.
Error
()))
return
}
ctx
.
JSON
(
c
.
SuccessResp
(
nil
))
}
internal/server/modules/v1/index.go
浏览文件 @
f76f80ca
...
...
@@ -13,6 +13,8 @@ import (
type
IndexModule
struct
{
FileModule
*
index
.
FileModule
`inject:""`
SiteModule
*
index
.
SiteModule
`inject:""`
ZentaoModule
*
index
.
ZentaoModule
`inject:""`
ConfigModule
*
index
.
ConfigModule
`inject:""`
SyncModule
*
index
.
SyncModule
`inject:""`
...
...
@@ -42,6 +44,7 @@ func (m *IndexModule) Party() module.WebModule {
modules
:=
[]
module
.
WebModule
{
m
.
FileModule
.
Party
(),
m
.
SiteModule
.
Party
(),
m
.
ZentaoModule
.
Party
(),
m
.
ConfigModule
.
Party
(),
m
.
SyncModule
.
Party
(),
...
...
internal/server/modules/v1/index/site.go
0 → 100644
浏览文件 @
f76f80ca
package
index
import
(
"github.com/aaronchen2k/deeptest/internal/server/core/module"
"github.com/aaronchen2k/deeptest/internal/server/middleware"
"github.com/aaronchen2k/deeptest/internal/server/modules/v1/controller"
"github.com/kataras/iris/v12"
)
type
SiteModule
struct
{
SiteCtrl
*
controller
.
SiteCtrl
`inject:""`
}
func
NewSiteModule
()
*
SiteModule
{
return
&
SiteModule
{}
}
// Party 执行
func
(
m
*
SiteModule
)
Party
()
module
.
WebModule
{
handler
:=
func
(
index
iris
.
Party
)
{
index
.
Use
(
middleware
.
InitCheck
())
index
.
Get
(
"/"
,
m
.
SiteCtrl
.
List
)
.
Name
=
"执行列表"
index
.
Get
(
"/{seq:string}"
,
m
.
SiteCtrl
.
Get
)
.
Name
=
"执行详情"
index
.
Delete
(
"/{seq:string}"
,
m
.
SiteCtrl
.
Delete
)
.
Name
=
"删除执行"
}
return
module
.
NewModule
(
"/sites"
,
handler
)
}
internal/server/modules/v1/model/models.go
浏览文件 @
f76f80ca
...
...
@@ -3,5 +3,6 @@ package model
var
(
Models
=
[]
interface
{}{
&
Project
{},
&
Site
{},
}
)
internal/server/modules/v1/model/site.go
0 → 100644
浏览文件 @
f76f80ca
package
model
type
Site
struct
{
BaseModel
Name
string
`json:"name"`
Url
string
`json:"url"`
Username
string
`json:"username"`
Password
string
`json:"password"`
IsDefault
bool
`json:"isDefault"`
}
func
(
Site
)
TableName
()
string
{
return
"biz_site"
}
internal/server/modules/v1/repo/site.go
0 → 100644
浏览文件 @
f76f80ca
package
repo
import
(
"errors"
"fmt"
logUtils
"github.com/aaronchen2k/deeptest/internal/pkg/lib/log"
"github.com/aaronchen2k/deeptest/internal/server/modules/v1/model"
"github.com/fatih/color"
"gorm.io/gorm"
)
type
SiteRepo
struct
{
DB
*
gorm
.
DB
`inject:""`
}
func
NewSiteRepo
()
*
SiteRepo
{
return
&
SiteRepo
{}
}
func
(
r
*
SiteRepo
)
List
()
(
sites
[]
model
.
Site
,
err
error
)
{
err
=
r
.
DB
.
Model
(
&
model
.
Site
{})
.
Where
(
"NOT deleted"
)
.
Find
(
&
sites
)
.
Error
return
}
func
(
r
*
SiteRepo
)
FindById
(
id
uint
)
(
po
model
.
Site
,
err
error
)
{
err
=
r
.
DB
.
Model
(
&
model
.
Site
{})
.
Where
(
"id = ?"
,
id
)
.
Where
(
"NOT deleted"
)
.
First
(
&
po
)
.
Error
if
err
!=
nil
{
logUtils
.
Errorf
(
color
.
RedString
(
"find site by id failed, error: %s."
,
err
.
Error
()))
return
}
return
}
func
(
r
*
SiteRepo
)
Create
(
project
model
.
Site
)
(
id
uint
,
err
error
)
{
po
,
err
:=
r
.
FindDuplicate
(
project
.
Name
,
project
.
Url
,
0
)
if
po
.
ID
!=
0
{
return
0
,
errors
.
New
(
fmt
.
Sprintf
(
"站点%s(%s)已存在"
,
project
.
Name
,
project
.
Url
))
}
err
=
r
.
DB
.
Model
(
&
model
.
Site
{})
.
Create
(
&
project
)
.
Error
if
err
!=
nil
{
logUtils
.
Errorf
(
color
.
RedString
(
"create project failed, error: %s."
,
err
.
Error
()))
return
0
,
err
}
id
=
project
.
ID
return
}
func
(
r
*
SiteRepo
)
Update
(
id
uint
,
project
model
.
Site
)
error
{
po
,
err
:=
r
.
FindDuplicate
(
project
.
Name
,
project
.
Url
,
id
)
if
po
.
ID
!=
0
{
return
errors
.
New
(
fmt
.
Sprintf
(
"站点%s(%s)已存在"
,
project
.
Name
,
project
.
Url
))
}
err
=
r
.
DB
.
Model
(
&
model
.
Site
{})
.
Where
(
"id = ?"
,
id
)
.
Updates
(
&
project
)
.
Error
if
err
!=
nil
{
logUtils
.
Errorf
(
color
.
RedString
(
"update project failed, error: %s."
,
err
.
Error
()))
return
err
}
return
nil
}
func
(
r
*
SiteRepo
)
DeleteByPath
(
pth
string
)
(
err
error
)
{
err
=
r
.
DB
.
Where
(
"path = ?"
,
pth
)
.
Delete
(
&
model
.
Site
{})
.
Error
if
err
!=
nil
{
logUtils
.
Errorf
(
color
.
RedString
(
"delete project failed, error: %s."
,
err
.
Error
()))
return
}
return
}
func
(
r
*
SiteRepo
)
FindDuplicate
(
name
,
url
string
,
id
uint
)
(
po
model
.
Site
,
err
error
)
{
db
:=
r
.
DB
.
Model
(
&
model
.
Site
{})
.
Where
(
"NOT deleted"
)
.
Where
(
"name = ? OR url = ?"
,
name
,
url
)
if
id
!=
0
{
db
.
Where
(
"id != ?"
,
id
)
}
err
=
db
.
First
(
&
po
)
.
Error
return
}
func
(
r
*
SiteRepo
)
GetCurrSiteByUser
()
(
currSite
model
.
Site
,
err
error
)
{
err
=
r
.
DB
.
Model
(
&
model
.
Site
{})
.
Where
(
"is_default"
)
.
Where
(
"NOT deleted"
)
.
First
(
&
currSite
)
.
Error
return
}
func
(
r
*
SiteRepo
)
RemoveDefaultTag
()
(
err
error
)
{
err
=
r
.
DB
.
Model
(
&
model
.
Site
{})
.
Where
(
"true"
)
.
Update
(
"is_default"
,
false
)
.
Error
return
err
}
func
(
r
*
SiteRepo
)
SetCurrSite
(
id
uint
)
(
err
error
)
{
r
.
RemoveDefaultTag
()
if
id
==
0
{
po
:=
model
.
Site
{}
err
:=
r
.
DB
.
Model
(
&
model
.
Site
{})
.
Where
(
"NOT deleted"
)
.
Order
(
"id DESC"
)
.
First
(
&
po
)
.
Error
if
err
==
nil
{
id
=
po
.
ID
}
}
err
=
r
.
DB
.
Model
(
&
model
.
Site
{})
.
Where
(
"id = ?"
,
id
)
.
Update
(
"is_default"
,
true
)
.
Error
return
err
}
internal/server/modules/v1/service/site.go
0 → 100644
浏览文件 @
f76f80ca
package
service
import
(
commConsts
"github.com/aaronchen2k/deeptest/internal/comm/consts"
commDomain
"github.com/aaronchen2k/deeptest/internal/comm/domain"
analysisUtils
"github.com/aaronchen2k/deeptest/internal/comm/helper/analysis"
fileUtils
"github.com/aaronchen2k/deeptest/internal/pkg/lib/file"
serverDomain
"github.com/aaronchen2k/deeptest/internal/server/modules/v1/domain"
"github.com/aaronchen2k/deeptest/internal/server/modules/v1/repo"
"github.com/jinzhu/copier"
"path/filepath"
)
type
SiteService
struct
{
ProjectRepo
*
repo
.
ProjectRepo
`inject:""`
}
func
NewSiteService
()
*
SiteService
{
return
&
SiteService
{}
}
func
(
s
*
SiteService
)
List
(
projectPath
string
)
(
ret
[]
serverDomain
.
TestReportSummary
,
err
error
)
{
reportFiles
:=
analysisUtils
.
ListReport
(
projectPath
)
for
_
,
seq
:=
range
reportFiles
{
var
summary
serverDomain
.
TestReportSummary
report
,
err1
:=
analysisUtils
.
ReadReportByProjectSeq
(
projectPath
,
seq
)
if
err1
!=
nil
{
// ignore wrong json result
continue
}
copier
.
Copy
(
&
summary
,
report
)
summary
.
Seq
=
seq
ret
=
append
(
ret
,
summary
)
}
return
}
func
(
s
*
SiteService
)
Get
(
projectPath
string
,
seq
string
)
(
report
commDomain
.
ZtfReport
,
err
error
)
{
return
analysisUtils
.
ReadReportByProjectSeq
(
projectPath
,
seq
)
}
func
(
s
*
SiteService
)
Delete
(
projectPath
string
,
seq
string
)
(
err
error
)
{
dir
:=
filepath
.
Join
(
projectPath
,
commConsts
.
LogDirName
)
di
:=
filepath
.
Join
(
dir
,
seq
)
err
=
fileUtils
.
RmDir
(
di
)
return
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录