改新活动
此提交包含在:
@@ -1,8 +1,13 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"github.com/google/uuid"
|
||||
"integrity-checkin/data/po"
|
||||
"integrity-checkin/pkg/app"
|
||||
"integrity-checkin/pkg/util"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
@@ -23,7 +28,7 @@ func (c CheckinService) Submit(aw *app.Wrapper) app.Result {
|
||||
if checkinDAO.FindUserActivityByDay(uc.UserID, req.ActivityID, today) != nil {
|
||||
return aw.Error("您今天已参加过该项目,请明天再来")
|
||||
}
|
||||
userActivity, err := checkinDAO.CreateCheckin(uc.UserID, req.ActivityID, req.Image)
|
||||
userActivity, err := checkinDAO.CreateCheckin(uc.UserID, req.ActivityID, req.Files)
|
||||
if err != nil {
|
||||
return aw.Error(err.Error())
|
||||
}
|
||||
@@ -92,3 +97,33 @@ func (c CheckinService) GetUserActivity(aw *app.Wrapper) app.Result {
|
||||
func (c CheckinService) GetMyActivitiesToday(aw *app.Wrapper) app.Result {
|
||||
return aw.Success(checkinDAO.FindUserActivitiesToday(aw.ExtractUserClaims().UserID, time.Now().Format("20060102")))
|
||||
}
|
||||
func (c CheckinService) UploadFile(aw *app.Wrapper) app.Result {
|
||||
formFile, err := aw.Ctx.FormFile("file")
|
||||
if err != nil {
|
||||
return aw.Error(err.Error())
|
||||
}
|
||||
file, err := formFile.Open()
|
||||
if err != nil {
|
||||
return aw.Error(err.Error())
|
||||
}
|
||||
if err = util.ValidateFilename(formFile.Filename); err != nil {
|
||||
return aw.Error(err.Error())
|
||||
}
|
||||
if _, err = os.Stat("files"); err != nil {
|
||||
err = os.Mkdir("files", 0666)
|
||||
if err != nil {
|
||||
return aw.Error(err.Error())
|
||||
}
|
||||
}
|
||||
filename := uuid.New().String() + filepath.Ext(formFile.Filename)
|
||||
out, err := os.OpenFile("files/"+filename, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666)
|
||||
if err != nil {
|
||||
return aw.Error(err.Error())
|
||||
}
|
||||
defer out.Close()
|
||||
_, err = io.Copy(out, file)
|
||||
if err != nil {
|
||||
return aw.Error(err.Error())
|
||||
}
|
||||
return aw.Success(filename)
|
||||
}
|
||||
|
新增問題並參考
封鎖使用者