二次开发源码提交

This commit is contained in:
2026-05-15 08:52:48 +08:00
parent 4131f7321a
commit eb35a1d067
191 changed files with 34566 additions and 0 deletions
+124
View File
@@ -0,0 +1,124 @@
import '../data/models/admin_model.dart';
import 'api_service.dart';
/// 管理员服务
class AdminService {
AdminService._internal();
static final AdminService _instance = AdminService._internal();
static AdminService get instance => _instance;
/// 获取用户组列表
Future<AdminGroupListResponse> getGroups({
int page = 1,
int pageSize = 10,
}) async {
final response = await ApiService.instance.post<Map<String, dynamic>>(
'/admin/group',
data: {
'page': page,
'page_size': pageSize,
'order_by': '',
'order_direction': 'desc',
},
);
return AdminGroupListResponse.fromJson(response);
}
/// 获取用户列表
Future<AdminUserListResponse> getUsers({
int page = 1,
int pageSize = 10,
Map<String, dynamic>? conditions,
}) async {
final data = <String, dynamic>{
'page': page,
'page_size': pageSize,
'order_by': '',
'order_direction': 'desc',
};
if (conditions != null) data['conditions'] = conditions;
final response = await ApiService.instance.post<Map<String, dynamic>>(
'/admin/user',
data: data,
);
return AdminUserListResponse.fromJson(response);
}
/// 创建用户组
Future<AdminGroupModel> createGroup(String name) async {
final response = await ApiService.instance.put<Map<String, dynamic>>(
'/admin/group',
data: {
'group': {
'name': name,
'permissions': 'hA==',
'max_storage': 1073741824,
'settings': {
'compress_size': 1073741824,
'decompress_size': 1073741824,
'max_walked_files': 100000,
'trash_retention': 604800,
'source_batch': 10,
'aria2_batch': 1,
'redirected_source': true,
},
'edges': {
'storage_policies': {'id': 1},
},
'id': 0,
},
},
);
return AdminGroupModel.fromJson(response);
}
/// 获取用户组详情(含用户数量)
Future<AdminGroupModel> getGroupDetail(int groupId) async {
final response = await ApiService.instance.get<Map<String, dynamic>>(
'/admin/group/$groupId',
queryParameters: {'countUser': 'true'},
);
return AdminGroupModel.fromJson(response);
}
/// 删除用户组
Future<void> deleteGroup(int groupId) async {
await ApiService.instance.delete<void>(
'/admin/group/$groupId',
);
}
/// 创建用户
Future<AdminUserModel> createUser({
required String email,
required String nick,
required String password,
required int groupId,
}) async {
final response = await ApiService.instance.put<Map<String, dynamic>>(
'/admin/user',
data: {
'user': {
'edges': {},
'id': 0,
'email': email,
'nick': nick,
'password': password,
'status': 'active',
'group_users': groupId,
},
'password': password,
},
);
return AdminUserModel.fromJson(response);
}
/// 批量删除用户
Future<void> batchDeleteUsers(List<int> ids) async {
await ApiService.instance.post<void>(
'/admin/user/batch/delete',
data: {'ids': ids},
);
}
}