Commit 15597eed by Li Feifei

code format

parent 4ecf5a53
Pipeline #15689 passed with stages
in 33 seconds
......@@ -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)
}
......@@ -9,41 +9,34 @@ import (
)
var File = &fileService{
done: make(chan error),
ok: make(chan bool),
Done: make(chan error),
Ok: make(chan bool),
}
type fileService struct {
done chan error
ok chan bool
Done chan error
Ok 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.done:
case <-f.Done:
// 上传失败
parserURLObject.Fail()
file.Fail()
return
case <-f.ok:
case <-f.Ok:
// 上传成功
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
}
}
......@@ -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.NewCode(http.StatusBadRequest, "上传URL格式不正确")
}
f := &parser{
ext: path.Ext(ossFileLink),
......
......@@ -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)
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment