更新上传接口和文章接口
This commit is contained in:
@@ -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()
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user