Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
hexbee
Cloudreve
提交
3b5af8da
C
Cloudreve
项目概览
hexbee
/
Cloudreve
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Cloudreve
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
3b5af8da
编写于
3月 09, 2020
作者:
H
HFO4
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Feat: share file list in dashboard
上级
9166a4ec
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
92 addition
and
0 deletion
+92
-0
routers/controllers/admin.go
routers/controllers/admin.go
+11
-0
routers/router.go
routers/router.go
+2
-0
service/admin/share.go
service/admin/share.go
+79
-0
未找到文件。
routers/controllers/admin.go
浏览文件 @
3b5af8da
...
...
@@ -378,3 +378,14 @@ func AdminListShare(c *gin.Context) {
c
.
JSON
(
200
,
ErrorResponse
(
err
))
}
}
// AdminDeleteShare 批量删除分享
func
AdminDeleteShare
(
c
*
gin
.
Context
)
{
var
service
admin
.
ShareBatchService
if
err
:=
c
.
ShouldBindJSON
(
&
service
);
err
==
nil
{
res
:=
service
.
Delete
(
c
)
c
.
JSON
(
200
,
res
)
}
else
{
c
.
JSON
(
200
,
ErrorResponse
(
err
))
}
}
routers/router.go
浏览文件 @
3b5af8da
...
...
@@ -393,6 +393,8 @@ func InitMasterRouter() *gin.Engine {
{
// 列出分享
share
.
POST
(
"list"
,
controllers
.
AdminListShare
)
// 删除
share
.
POST
(
"delete"
,
controllers
.
AdminDeleteShare
)
}
}
...
...
service/admin/share.go
0 → 100644
浏览文件 @
3b5af8da
package
admin
import
(
model
"github.com/HFO4/cloudreve/models"
"github.com/HFO4/cloudreve/pkg/hashid"
"github.com/HFO4/cloudreve/pkg/serializer"
"github.com/gin-gonic/gin"
"strings"
)
// ShareBatchService 分享批量操作服务
type
ShareBatchService
struct
{
ID
[]
uint
`json:"id" binding:"min=1"`
}
// Delete 删除文件
func
(
service
*
ShareBatchService
)
Delete
(
c
*
gin
.
Context
)
serializer
.
Response
{
if
err
:=
model
.
DB
.
Where
(
"id in (?)"
,
service
.
ID
)
.
Delete
(
&
model
.
Share
{})
.
Error
;
err
!=
nil
{
return
serializer
.
DBErr
(
"无法删除分享"
,
err
)
}
return
serializer
.
Response
{}
}
// Shares 列出分享
func
(
service
*
AdminListService
)
Shares
()
serializer
.
Response
{
var
res
[]
model
.
Share
total
:=
0
tx
:=
model
.
DB
.
Model
(
&
model
.
Share
{})
if
service
.
OrderBy
!=
""
{
tx
=
tx
.
Order
(
service
.
OrderBy
)
}
for
k
,
v
:=
range
service
.
Conditions
{
tx
=
tx
.
Where
(
k
+
" = ?"
,
v
)
}
if
len
(
service
.
Searches
)
>
0
{
search
:=
""
for
k
,
v
:=
range
service
.
Searches
{
search
+=
k
+
" like '%"
+
v
+
"%' OR "
}
search
=
strings
.
TrimSuffix
(
search
,
" OR "
)
tx
=
tx
.
Where
(
search
)
}
// 计算总数用于分页
tx
.
Count
(
&
total
)
// 查询记录
tx
.
Limit
(
service
.
PageSize
)
.
Offset
((
service
.
Page
-
1
)
*
service
.
PageSize
)
.
Find
(
&
res
)
// 查询对应用户,同时计算HashID
users
:=
make
(
map
[
uint
]
model
.
User
)
hashIDs
:=
make
(
map
[
uint
]
string
,
len
(
res
))
for
_
,
file
:=
range
res
{
users
[
file
.
UserID
]
=
model
.
User
{}
hashIDs
[
file
.
ID
]
=
hashid
.
HashID
(
file
.
ID
,
hashid
.
ShareID
)
}
userIDs
:=
make
([]
uint
,
0
,
len
(
users
))
for
k
:=
range
users
{
userIDs
=
append
(
userIDs
,
k
)
}
var
userList
[]
model
.
User
model
.
DB
.
Where
(
"id in (?)"
,
userIDs
)
.
Find
(
&
userList
)
for
_
,
v
:=
range
userList
{
users
[
v
.
ID
]
=
v
}
return
serializer
.
Response
{
Data
:
map
[
string
]
interface
{}{
"total"
:
total
,
"items"
:
res
,
"users"
:
users
,
"ids"
:
hashIDs
,
}}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录