generated from dellevin/template
回收站-云同步
This commit is contained in:
@@ -497,81 +497,96 @@ class AppProvider extends ChangeNotifier {
|
||||
|
||||
/// 获取已删除的影视
|
||||
Future<List<Movie>> getDeletedMovies() async {
|
||||
if (_useRemote) return ServerDataService.instance.getDeletedMovies();
|
||||
return await _movieDao.getDeletedMovies();
|
||||
}
|
||||
|
||||
/// 恢复影视
|
||||
Future<void> restoreMovie(String id) async {
|
||||
await _movieDao.restoreMovie(id);
|
||||
if (_useRemote) {
|
||||
await ServerDataService.instance.restoreMovie(id);
|
||||
} else {
|
||||
await _movieDao.restoreMovie(id);
|
||||
}
|
||||
await loadMovies();
|
||||
}
|
||||
|
||||
/// 彻底删除影视
|
||||
Future<void> permanentDeleteMovie(String id) async {
|
||||
// 删除影视对应的图片目录(包括海报和海报墙)
|
||||
await ImagePathHelper.instance.deleteMovieImages(id);
|
||||
|
||||
await _movieDao.permanentDeleteMovie(id);
|
||||
if (_useRemote) {
|
||||
await ServerDataService.instance.permanentDeleteMovie(id);
|
||||
} else {
|
||||
await _movieDao.permanentDeleteMovie(id);
|
||||
}
|
||||
}
|
||||
|
||||
/// 获取已删除的书籍
|
||||
Future<List<Book>> getDeletedBooks() async {
|
||||
if (_useRemote) return ServerDataService.instance.getDeletedBooks();
|
||||
return await _bookDao.getDeletedBooks();
|
||||
}
|
||||
|
||||
/// 恢复书籍
|
||||
Future<void> restoreBook(String id) async {
|
||||
await _bookDao.restoreBook(id);
|
||||
if (_useRemote) {
|
||||
await ServerDataService.instance.restoreBook(id);
|
||||
} else {
|
||||
await _bookDao.restoreBook(id);
|
||||
}
|
||||
await loadBooks();
|
||||
}
|
||||
|
||||
/// 彻底删除书籍
|
||||
Future<void> permanentDeleteBook(String id) async {
|
||||
// 删除书籍对应的图片目录
|
||||
await ImagePathHelper.instance.deleteBookImages(id);
|
||||
|
||||
await _bookDao.permanentDeleteBook(id);
|
||||
if (_useRemote) {
|
||||
await ServerDataService.instance.permanentDeleteBook(id);
|
||||
} else {
|
||||
await _bookDao.permanentDeleteBook(id);
|
||||
}
|
||||
}
|
||||
|
||||
/// 获取已删除的笔记
|
||||
Future<List<Note>> getDeletedNotes() async {
|
||||
if (_useRemote) return ServerDataService.instance.getDeletedNotes();
|
||||
return await _noteDao.getDeletedNotes();
|
||||
}
|
||||
|
||||
/// 恢复笔记
|
||||
Future<void> restoreNote(String id) async {
|
||||
await _noteDao.restoreNote(id);
|
||||
if (_useRemote) {
|
||||
await ServerDataService.instance.restoreNote(id);
|
||||
} else {
|
||||
await _noteDao.restoreNote(id);
|
||||
}
|
||||
await loadNotes();
|
||||
}
|
||||
|
||||
/// 彻底删除笔记
|
||||
Future<void> permanentDeleteNote(String id) async {
|
||||
// 删除笔记对应的图片目录
|
||||
await ImagePathHelper.instance.deleteNoteImages(id);
|
||||
|
||||
await _noteDao.permanentDeleteNote(id);
|
||||
if (_useRemote) {
|
||||
await ServerDataService.instance.permanentDeleteNote(id);
|
||||
} else {
|
||||
await _noteDao.permanentDeleteNote(id);
|
||||
}
|
||||
}
|
||||
|
||||
/// 清空回收站
|
||||
Future<void> clearRecycleBin() async {
|
||||
final deletedMovies = await _movieDao.getDeletedMovies();
|
||||
final deletedBooks = await _bookDao.getDeletedBooks();
|
||||
final deletedNotes = await _noteDao.getDeletedNotes();
|
||||
final deletedMovies = await getDeletedMovies();
|
||||
final deletedBooks = await getDeletedBooks();
|
||||
final deletedNotes = await getDeletedNotes();
|
||||
|
||||
for (final movie in deletedMovies) {
|
||||
// 删除影视对应的图片目录(包括海报和海报墙)
|
||||
await ImagePathHelper.instance.deleteMovieImages(movie.id);
|
||||
await _movieDao.permanentDeleteMovie(movie.id);
|
||||
await permanentDeleteMovie(movie.id);
|
||||
}
|
||||
for (final book in deletedBooks) {
|
||||
// 删除书籍对应的图片目录
|
||||
await ImagePathHelper.instance.deleteBookImages(book.id);
|
||||
await _bookDao.permanentDeleteBook(book.id);
|
||||
await permanentDeleteBook(book.id);
|
||||
}
|
||||
for (final note in deletedNotes) {
|
||||
// 删除笔记对应的图片目录
|
||||
await ImagePathHelper.instance.deleteNoteImages(note.id);
|
||||
await _noteDao.permanentDeleteNote(note.id);
|
||||
await permanentDeleteNote(note.id);
|
||||
}
|
||||
|
||||
await loadMovies();
|
||||
|
||||
@@ -108,6 +108,56 @@ class ServerDataService {
|
||||
return data != null;
|
||||
}
|
||||
|
||||
// ─── 回收站 ────────────────────────────────────────────────────
|
||||
|
||||
Future<List<Movie>> getDeletedMovies() async {
|
||||
final data = await _post('/api/data/movies/deleted');
|
||||
if (data == null || data['movies'] == null) return [];
|
||||
return (data['movies'] as List).map((m) => Movie.fromJson(m as Map<String, dynamic>)).toList();
|
||||
}
|
||||
|
||||
Future<bool> restoreMovie(String id) async {
|
||||
final data = await _post('/api/data/movie/restore', {'id': id});
|
||||
return data != null;
|
||||
}
|
||||
|
||||
Future<bool> permanentDeleteMovie(String id) async {
|
||||
final data = await _post('/api/data/movie/permanent_delete', {'id': id});
|
||||
return data != null;
|
||||
}
|
||||
|
||||
Future<List<Book>> getDeletedBooks() async {
|
||||
final data = await _post('/api/data/books/deleted');
|
||||
if (data == null || data['books'] == null) return [];
|
||||
return (data['books'] as List).map((b) => Book.fromJson(b as Map<String, dynamic>)).toList();
|
||||
}
|
||||
|
||||
Future<bool> restoreBook(String id) async {
|
||||
final data = await _post('/api/data/book/restore', {'id': id});
|
||||
return data != null;
|
||||
}
|
||||
|
||||
Future<bool> permanentDeleteBook(String id) async {
|
||||
final data = await _post('/api/data/book/permanent_delete', {'id': id});
|
||||
return data != null;
|
||||
}
|
||||
|
||||
Future<List<Note>> getDeletedNotes() async {
|
||||
final data = await _post('/api/data/notes/deleted');
|
||||
if (data == null || data['notes'] == null) return [];
|
||||
return (data['notes'] as List).map((n) => Note.fromJson(n as Map<String, dynamic>)).toList();
|
||||
}
|
||||
|
||||
Future<bool> restoreNote(String id) async {
|
||||
final data = await _post('/api/data/note/restore', {'id': id});
|
||||
return data != null;
|
||||
}
|
||||
|
||||
Future<bool> permanentDeleteNote(String id) async {
|
||||
final data = await _post('/api/data/note/permanent_delete', {'id': id});
|
||||
return data != null;
|
||||
}
|
||||
|
||||
// ─── 影评 ────────────────────────────────────────────────────
|
||||
|
||||
Future<List<MovieReview>> getMovieReviews(String movieId) async {
|
||||
|
||||
Reference in New Issue
Block a user