更新上传接口和文章接口

This commit is contained in:
2025-12-27 16:19:05 +08:00
parent 99d4fc303a
commit 9e49288dbb
7 changed files with 590 additions and 20 deletions
@@ -429,4 +429,102 @@ class ResourcesController extends BaseController
return json(['code' => 0, 'msg' => '更新失败:' . $e->getMessage()]);
}
}
//获取用户资源列表
public function getUserResourceList()
{
try {
// 获取前端传递的用户ID
$userId = input('uid/d', 0);
// 验证用户ID
if ($userId <= 0) {
return json([
'code' => 1,
'msg' => '用户ID参数错误'
]);
}
// 根据用户ID获取用户名
$user = Users::where('uid', $userId)->field('uid, name')->find();
if (!$user) {
return json([
'code' => 1,
'msg' => '用户不存在'
]);
}
// 获取用户资源的分类ID列表,用于批量查询分类信息
$cateIds = Resources::where([
['uploader', '=', $user['name']],
['delete_time', '=', null],
['status', '=', 1] // 已发布的资源
])->column('cate');
// 批量查询分类信息,避免N+1查询问题
$categories = [];
if (!empty($cateIds)) {
$categories = ResourcesCategory::where('id', 'in', array_unique($cateIds))
->column('id,name,icon', 'id');
}
// 查询用户的资源列表
$resources = Resources::where([
['uploader', '=', $user['name']],
['delete_time', '=', null],
['status', '=', 1] // 已发布的资源
])
->field('id, title, cate, icon, uploader, create_time, views, downloads, price')
->order('create_time', 'desc')
->select();
// 处理资源数据
$resourceList = [];
if ($resources) {
foreach ($resources as $resource) {
$resourceData = $resource->toArray();
// 格式化时间
$resourceData['create_time'] = date('Y-m-d H:i:s', strtotime($resourceData['create_time']));
// 从预加载的分类数据中获取信息
$cateId = $resourceData['cate'];
if (isset($categories[$cateId])) {
$category = $categories[$cateId];
// 如果资源图片为空,使用分类图片
if (empty($resourceData['icon'])) {
$resourceData['icon'] = !empty($category['icon']) ? $category['icon'] : '/static/images/default.jpg';
}
// 设置分类名称
$resourceData['category_name'] = $category['name'];
} else {
// 如果没有找到分类信息
if (empty($resourceData['icon'])) {
$resourceData['icon'] = '/static/images/default.jpg';
}
$resourceData['category_name'] = '未分类';
}
$resourceList[] = $resourceData;
}
}
return json([
'code' => 0,
'msg' => '获取成功',
'data' => [
'resources' => $resourceList,
'total' => count($resourceList)
]
]);
} catch (\Exception $e) {
return json([
'code' => 1,
'msg' => '获取失败:' . $e->getMessage()
]);
}
}
}