1
0
mirror of https://github.com/fumiama/paper-manager.git synced 2026-06-11 11:40:23 +08:00

finish 试卷查重

This commit is contained in:
源文雨
2023-04-17 22:35:54 +08:00
parent 67b6abf001
commit e2a8cdf5b3
13 changed files with 475 additions and 34 deletions

View File

@@ -497,7 +497,7 @@ func (f *FileDatabase) DelFile(lstid, uid int, istemp bool) error {
if err != nil {
return err
}
if !user.IsSuper() {
if !user.IsSuper() && !istemp {
return ErrInvalidRole
}
ftable := ""
@@ -512,6 +512,9 @@ func (f *FileDatabase) DelFile(lstid, uid int, istemp bool) error {
if err != nil {
return err
}
if istemp && lst.Uploader != uid {
return ErrInvalidRole
}
if lst.Path == "" || strings.Contains(lst.Path, "..") {
return os.ErrNotExist
}

View File

@@ -83,14 +83,20 @@ func (f *FileDatabase) SaveFileToTemp(uploader int, file io.Reader, name string)
}
// ListUploadedFile will select all file that HasntAnalyzed && IsTemp or !HasntAnalyzed && !IsTemp
func (f *FileDatabase) ListUploadedFile() (lst []*List, err error) {
func (f *FileDatabase) ListUploadedFile(istemp bool) (lst []*List, err error) {
q := ""
if istemp {
q = "WHERE IsTemp ORDER BY UpTime DESC"
} else {
q = "WHERE (HasntAnalyzed AND IsTemp) OR (NOT HasntAnalyzed AND NOT IsTemp) ORDER BY UpTime DESC"
}
f.mu.RLock()
lst, err = sql.FindAll[List](&f.db, FileTableList, "WHERE (HasntAnalyzed AND IsTemp) OR (NOT HasntAnalyzed AND NOT IsTemp) ORDER BY UpTime DESC")
lst, err = sql.FindAll[List](&f.db, FileTableList, q)
f.mu.RUnlock()
return
}
func (f *FileDatabase) GetFileInfo(id int) (lst List, err error) {
func (f *FileDatabase) ListFileByID(id int) (lst List, err error) {
f.mu.RLock()
lst, err = sql.Find[List](&f.db, FileTableList, "WHERE ID="+strconv.Itoa(id))
f.mu.RUnlock()