Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
ppt_server
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Li Feifei
ppt_server
Commits
15597eed
Commit
15597eed
authored
Jul 28, 2021
by
Li Feifei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
code format
parent
4ecf5a53
Pipeline
#15689
passed with stages
in 33 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
30 additions
and
32 deletions
+30
-32
file.go
app/api/file.go
+7
-1
file.go
app/service/file.go
+12
-19
file_parser.go
packed/file/file_parser.go
+2
-1
file_upload.go
packed/file/file_upload.go
+9
-11
No files found.
app/api/file.go
View file @
15597eed
...
...
@@ -4,6 +4,7 @@ import (
"ppt_server/app/model"
"ppt_server/app/service"
"ppt_server/library/response"
"ppt_server/packed/file"
"github.com/gogf/gf/net/ghttp"
)
...
...
@@ -36,6 +37,11 @@ func (f *fileApi) Upload(r *ghttp.Request) {
if
err
:=
r
.
Parse
(
&
req
);
err
!=
nil
{
response
.
Fail
(
r
,
err
)
}
go
service
.
File
.
Upload
(
&
req
)
// 检测课件格式
parserFile
,
err
:=
file
.
Upload
(
&
req
,
service
.
File
.
Done
,
service
.
File
.
Ok
)
if
err
!=
nil
{
response
.
Fail
(
r
,
err
)
}
go
service
.
File
.
Upload
(
parserFile
)
response
.
Success
(
r
)
}
app/service/file.go
View file @
15597eed
...
...
@@ -9,41 +9,34 @@ import (
)
var
File
=
&
fileService
{
d
one
:
make
(
chan
error
),
o
k
:
make
(
chan
bool
),
D
one
:
make
(
chan
error
),
O
k
:
make
(
chan
bool
),
}
type
fileService
struct
{
d
one
chan
error
o
k
chan
bool
D
one
chan
error
O
k
chan
bool
}
// 上传课件
func
(
f
*
fileService
)
Upload
(
r
*
model
.
FileUploadRequest
)
{
// 解析上传课件URL
parserURLObject
,
err
:=
file
.
Upload
(
r
,
f
.
done
,
f
.
ok
)
if
err
!=
nil
{
g
.
Log
()
.
Async
()
.
Errorf
(
"Parser Url err: %s
\n
"
,
err
)
return
}
func
(
f
*
fileService
)
Upload
(
file
*
file
.
ObtainFile
)
{
// 检查房间是否存在
var
room
model
.
XyuRoom
err
:=
dao
.
XyuRoom
.
Where
(
dao
.
XyuRoom
.
Columns
.
RoomNum
,
file
.
R
.
RoomNum
)
.
Scan
(
&
room
)
err
=
dao
.
XyuRoom
.
Where
(
dao
.
XyuRoom
.
Columns
.
RoomNum
,
r
.
RoomNum
)
.
Scan
(
&
room
)
// 上传操作
go
parserURLObject
.
Worker
(
err
)
go
file
.
Worker
(
err
)
// 回调通知
select
{
case
<-
f
.
d
one
:
case
<-
f
.
D
one
:
// 上传失败
parserURLObject
.
Fail
()
file
.
Fail
()
return
case
<-
f
.
o
k
:
case
<-
f
.
O
k
:
// 上传成功
count
,
err
:=
dao
.
XyuRoomFile
.
Where
(
dao
.
XyuRoomFile
.
Columns
.
RoomId
,
room
.
Id
)
.
Where
(
dao
.
XyuRoomFile
.
Columns
.
Name
,
parserURLObject
.
FileName
())
.
Count
()
Where
(
dao
.
XyuRoomFile
.
Columns
.
Name
,
file
.
FileName
())
.
Count
()
if
err
!=
nil
{
g
.
Log
()
.
Async
()
.
Errorf
(
"Mysql Err: %s
\n
"
,
err
)
return
...
...
@@ -52,7 +45,7 @@ func (f *fileService) Upload(r *model.FileUploadRequest) {
if
count
==
1
{
return
}
parserURLObject
.
Success
(
room
.
Id
)
file
.
Success
(
room
.
Id
)
return
}
}
packed/file/file_parser.go
View file @
15597eed
...
...
@@ -3,6 +3,7 @@ package file
import
(
"fmt"
"mime"
"net/http"
"path"
"strings"
...
...
@@ -31,7 +32,7 @@ func parseURL(ossFileLink string) (*parser, error) {
slicePath
:=
gstr
.
SplitAndTrim
(
parseURLPath
[
"path"
],
"/"
,
"/"
)
if
len
(
slicePath
)
<
4
{
return
nil
,
gerror
.
New
(
"上传URL格式不正确"
)
return
nil
,
gerror
.
New
Code
(
http
.
StatusBadRequest
,
"上传URL格式不正确"
)
}
f
:=
&
parser
{
ext
:
path
.
Ext
(
ossFileLink
),
...
...
packed/file/file_upload.go
View file @
15597eed
...
...
@@ -27,7 +27,7 @@ import (
// 解析URL返回基本信息
type
ObtainFile
struct
{
r
*
model
.
FileUploadRequest
// 客户端请求参数
R
*
model
.
FileUploadRequest
// 客户端请求参数
ok
chan
bool
// 上传课件响应成功
err
chan
error
// 上传课件失败Error
fileSize
int64
// 课件大小
...
...
@@ -58,7 +58,7 @@ func Upload(r *model.FileUploadRequest, errChan chan error,
ok
:
ok
,
err
:
errChan
,
parser
:
f
,
r
:
r
,
R
:
r
,
packed
:
&
model
.
Packed
{
FileName
:
f
.
filename
(),
Hash
:
f
.
contentHash
(),
...
...
@@ -227,8 +227,8 @@ func (f *ObtainFile) FileName() string {
func
(
f
*
ObtainFile
)
Fail
()
{
if
err
:=
f
.
n
.
notice
(
"/web/room_files_error"
,
g
.
Map
{
"code"
:
400
,
"uuid"
:
f
.
r
.
Uuid
,
"room_num"
:
f
.
r
.
RoomNum
,
"uuid"
:
f
.
R
.
Uuid
,
"room_num"
:
f
.
R
.
RoomNum
,
"path"
:
f
.
parser
.
dataPath
(),
});
err
!=
nil
{
g
.
Log
()
.
Async
()
.
Error
(
err
)
...
...
@@ -237,8 +237,8 @@ func (f *ObtainFile) Fail() {
// 上传成功通知
func
(
f
*
ObtainFile
)
Success
(
roomID
int
)
{
m
:=
g
.
Map
{
"name"
:
f
.
r
.
Name
,
if
err
:=
f
.
n
.
notice
(
"/web/room_files_add"
,
g
.
Map
{
"name"
:
f
.
R
.
Name
,
"file_name_hash"
:
f
.
parser
.
nameHash
(),
"hash"
:
f
.
parser
.
contentHash
(),
"path"
:
f
.
parser
.
dataPath
(),
...
...
@@ -249,13 +249,11 @@ func (f *ObtainFile) Success(roomID int) {
"link"
:
strings
.
Replace
(
f
.
parser
.
url
,
ossIntranetLink
,
uploadFileLinkHost
,
-
1
),
"private"
:
"1"
,
"time"
:
gtime
.
Datetime
(),
"nickname"
:
f
.
r
.
Nickanem
,
"uuid"
:
f
.
r
.
Uuid
,
"nickname"
:
f
.
R
.
Nickanem
,
"uuid"
:
f
.
R
.
Uuid
,
"room_id"
:
roomID
,
"is_courseware"
:
1
,
}
if
err
:=
f
.
n
.
notice
(
"/web/room_files_add"
,
m
);
err
!=
nil
{
});
err
!=
nil
{
g
.
Log
()
.
Async
()
.
Error
(
err
)
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment