fix: separate the share's matter page.

This commit is contained in:
lishuang
2023-07-08 14:55:06 +08:00
parent 327af9f3fa
commit 95fcaada2b
3 changed files with 116 additions and 91 deletions
+25 -43
View File
@@ -2,7 +2,6 @@ package rest
import (
"github.com/eyebluecn/tank/code/core"
"github.com/eyebluecn/tank/code/tool/builder"
"github.com/eyebluecn/tank/code/tool/i18n"
"github.com/eyebluecn/tank/code/tool/result"
"github.com/eyebluecn/tank/code/tool/util"
@@ -117,7 +116,6 @@ func (this *MatterController) Detail(writer http.ResponseWriter, request *http.R
}
// TODO: 分享的列表接口不走这个接口了。
func (this *MatterController) Page(writer http.ResponseWriter, request *http.Request) *result.WebResult {
page := util.ExtractRequestOptionalInt(request, "page", 0)
@@ -127,60 +125,44 @@ func (this *MatterController) Page(writer http.ResponseWriter, request *http.Req
orderDeleteTime := util.ExtractRequestOptionalString(request, "orderDeleteTime", "")
orderSort := util.ExtractRequestOptionalString(request, "orderSort", "")
orderTimes := util.ExtractRequestOptionalString(request, "orderTimes", "")
puuid := util.ExtractRequestOptionalString(request, "puuid", "")
name := util.ExtractRequestOptionalString(request, "name", "")
dir := util.ExtractRequestOptionalString(request, "dir", "")
deleted := util.ExtractRequestOptionalString(request, "deleted", "")
orderDir := util.ExtractRequestOptionalString(request, "orderDir", "")
orderSize := util.ExtractRequestOptionalString(request, "orderSize", "")
orderName := util.ExtractRequestOptionalString(request, "orderName", "")
puuid := util.ExtractRequestString(request, "puuid")
name := util.ExtractRequestOptionalString(request, "name", "")
dir := util.ExtractRequestOptionalString(request, "dir", "")
deleted := util.ExtractRequestOptionalString(request, "deleted", "")
extensionsStr := util.ExtractRequestOptionalString(request, "extensions", "")
user := this.checkUser(request)
spaceUuid := util.ExtractRequestOptionalString(request, "spaceUuid", user.SpaceUuid)
space := this.spaceService.CheckReadableByUuid(request, user, spaceUuid)
this.spaceService.CheckReadableByUuid(request, user, spaceUuid)
var extensions []string
if extensionsStr != "" {
extensions = strings.Split(extensionsStr, ",")
}
sortArray := []builder.OrderPair{
{
Key: "dir",
Value: orderDir,
},
{
Key: "create_time",
Value: orderCreateTime,
},
{
Key: "update_time",
Value: orderUpdateTime,
},
{
Key: "delete_time",
Value: orderDeleteTime,
},
{
Key: "sort",
Value: orderSort,
},
{
Key: "size",
Value: orderSize,
},
{
Key: "name",
Value: orderName,
},
{
Key: "times",
Value: orderTimes,
},
}
pager := this.matterDao.Page(page, pageSize, puuid, "", space.Uuid, name, dir, deleted, extensions, sortArray)
pager := this.matterService.Page(
request,
page,
pageSize,
orderCreateTime,
orderUpdateTime,
orderDeleteTime,
orderSort,
orderTimes,
orderDir,
orderSize,
orderName,
puuid,
name,
dir,
deleted,
extensions,
spaceUuid,
)
return this.Success(pager)
}
+61
View File
@@ -76,6 +76,67 @@ func (this *MatterService) Init() {
}
// get the page of matters.
func (this *MatterService) Page(
request *http.Request,
page int,
pageSize int,
orderCreateTime string,
orderUpdateTime string,
orderDeleteTime string,
orderSort string,
orderTimes string,
orderDir string,
orderSize string,
orderName string,
puuid string,
name string,
dir string,
deleted string,
extensions []string,
spaceUuid string,
) *Pager {
sortArray := []builder.OrderPair{
{
Key: "dir",
Value: orderDir,
},
{
Key: "create_time",
Value: orderCreateTime,
},
{
Key: "update_time",
Value: orderUpdateTime,
},
{
Key: "delete_time",
Value: orderDeleteTime,
},
{
Key: "sort",
Value: orderSort,
},
{
Key: "size",
Value: orderSize,
},
{
Key: "name",
Value: orderName,
},
{
Key: "times",
Value: orderTimes,
},
}
pager := this.matterDao.Page(page, pageSize, puuid, "", spaceUuid, name, dir, deleted, extensions, sortArray)
return pager
}
// Download. Support chunk download.
func (this *MatterService) DownloadFile(
writer http.ResponseWriter,
+30 -48
View File
@@ -63,7 +63,7 @@ func (this *ShareController) RegisterRoutes() map[string]func(writer http.Respon
routeMap["/api/share/browse"] = this.Wrap(this.Browse, USER_ROLE_GUEST)
routeMap["/api/share/zip"] = this.Wrap(this.Zip, USER_ROLE_GUEST)
routeMap["/api/share/matter/page"] = this.Wrap(this.SharePage, USER_ROLE_USER)
routeMap["/api/share/matter/page"] = this.Wrap(this.MatterPage, USER_ROLE_USER)
return routeMap
}
@@ -379,8 +379,8 @@ func (this *ShareController) Zip(writer http.ResponseWriter, request *http.Reque
return nil
}
// 分享下的文件列表
func (this *ShareController) SharePage(writer http.ResponseWriter, request *http.Request) *result.WebResult {
// matter list under a share.
func (this *ShareController) MatterPage(writer http.ResponseWriter, request *http.Request) *result.WebResult {
page := util.ExtractRequestOptionalInt(request, "page", 0)
pageSize := util.ExtractRequestOptionalInt(request, "pageSize", 200)
@@ -389,30 +389,29 @@ func (this *ShareController) SharePage(writer http.ResponseWriter, request *http
orderDeleteTime := util.ExtractRequestOptionalString(request, "orderDeleteTime", "")
orderSort := util.ExtractRequestOptionalString(request, "orderSort", "")
orderTimes := util.ExtractRequestOptionalString(request, "orderTimes", "")
puuid := util.ExtractRequestOptionalString(request, "puuid", "")
name := util.ExtractRequestOptionalString(request, "name", "")
dir := util.ExtractRequestOptionalString(request, "dir", "")
deleted := util.ExtractRequestOptionalString(request, "deleted", "")
orderDir := util.ExtractRequestOptionalString(request, "orderDir", "")
orderSize := util.ExtractRequestOptionalString(request, "orderSize", "")
orderName := util.ExtractRequestOptionalString(request, "orderName", "")
puuid := util.ExtractRequestString(request, "puuid")
name := util.ExtractRequestOptionalString(request, "name", "")
dir := util.ExtractRequestOptionalString(request, "dir", "")
deleted := util.ExtractRequestOptionalString(request, "deleted", "")
extensionsStr := util.ExtractRequestOptionalString(request, "extensions", "")
//auth by shareUuid.
shareUuid := util.ExtractRequestString(request, "shareUuid")
shareCode := util.ExtractRequestString(request, "shareCode")
shareRootUuid := util.ExtractRequestString(request, "shareRootUuid")
if puuid == "" {
panic(result.BadRequest("puuid cannot be null"))
}
//validate the puuid.
dirMatter := this.matterDao.CheckByUuid(puuid)
if !dirMatter.Dir {
panic(result.BadRequest("puuid is not a directory"))
}
//validate the shareUuid,shareCode,shareRootUuid.
user := this.findUser(request)
this.shareService.ValidateMatter(request, shareUuid, shareCode, user, shareRootUuid, dirMatter)
puuid = dirMatter.Uuid
@@ -421,42 +420,25 @@ func (this *ShareController) SharePage(writer http.ResponseWriter, request *http
extensions = strings.Split(extensionsStr, ",")
}
sortArray := []builder.OrderPair{
{
Key: "dir",
Value: orderDir,
},
{
Key: "create_time",
Value: orderCreateTime,
},
{
Key: "update_time",
Value: orderUpdateTime,
},
{
Key: "delete_time",
Value: orderDeleteTime,
},
{
Key: "sort",
Value: orderSort,
},
{
Key: "size",
Value: orderSize,
},
{
Key: "name",
Value: orderName,
},
{
Key: "times",
Value: orderTimes,
},
}
pager := this.matterDao.Page(page, pageSize, puuid, "", dirMatter.SpaceUuid, name, dir, deleted, extensions, sortArray)
pager := this.matterService.Page(
request,
page,
pageSize,
orderCreateTime,
orderUpdateTime,
orderDeleteTime,
orderSort,
orderTimes,
orderDir,
orderSize,
orderName,
puuid,
name,
dir,
deleted,
extensions,
dirMatter.SpaceUuid,
)
return this.Success(pager)
}