Browse Source

feat(admin): 新增在线媒体资源管理功能

- 添加在线媒体控制器及服务类
- 实现媒体资源列表数据接口
- 配置路由分组并注册相关权限
- 支持分页、排序和条件筛选查询
- 依赖基础服务和工具类实现通用逻辑
- 完成前端访问路径 /contribution/resource 的后端支持
master
zhangf@suq.cn 17 hours ago
parent
commit
efff231145
  1. 16
      app/controller/admin/OnlineMediasController.php
  2. 10
      app/route/route.php
  3. 40
      app/service/admin/OnlineMediasService.php

16
app/controller/admin/OnlineMediasController.php

@ -0,0 +1,16 @@
<?php
namespace app\controller\admin;
use app\service\admin\OnlineMediasService;
use support\Response;
class OnlineMediasController
{
public function index(OnlineMediasService $service): Response
{
$params = requestOnly([
'wheres' => [],
]);
return success($service->listData($params));
}
}

10
app/route/route.php

@ -1,5 +1,7 @@
<?php
use app\controller\admin\OnlineMediasConfigController;
use app\controller\admin\OnlineMediasController;
use app\controller\user\AiCommandController;
use app\controller\user\ArticleCategoryController;
use app\controller\user\CreationArticleController;
@ -177,6 +179,14 @@ Route::group('/service/v1', function () {
Route::get('/pure/index', [ExpiosiveReplicaController::class, 'pureIndex'])->setParams(['perm' => 'replicaPureIndex']);
});
//投稿
Route::group('/contribution', function () {
//选项
Route::get('/options', [OnlineMediasConfigController::class, 'index'])->setParams(['perm' => ['contributionOptions']]);
//媒体资源
Route::get('/resource', [OnlineMediasController::class, 'index'])->setParams(['perm' => ['contributionResource']]);
});
//全局代理IP
Route::group('/proxy', function () {
//新增

40
app/service/admin/OnlineMediasService.php

@ -0,0 +1,40 @@
<?php
namespace app\service\admin;
use app\dao\admin\OnlineMediasDao;
use plugin\piadmin\app\base\BaseService;
use plugin\piadmin\app\utils\RequestUtils;
class OnlineMediasService extends BaseService
{
public function __construct()
{
$this->dao = app()->make(OnlineMediasDao::class);
}
/**
* 列表数据
* @param array $params
* @return array
*/
public function listData(array $params): array
{
[$page, $limit] = RequestUtils::getPageParameter();
[$sortRule, $sortField] = RequestUtils::getSortParameter();
$query = [
'delete_time' => 0
];
if (sizeof($params['wheres']) > 0) {
foreach ($params['wheres'] as $value) {
if (isNotBlank($value['value'])) {
$query[] = [$value['name'], '=', $value['value']];
}
}
}
$list = $this->dao->getList($query, '*', $page, $limit, "$sortField $sortRule");
$count = $this->dao->getCount($query);
return compact('list', 'count');
}
}
Loading…
Cancel
Save