From 9c0b320f4f2cfe67bdcfb27fa2dd1962361cddba Mon Sep 17 00:00:00 2001 From: "zhangf@suq.cn" Date: Thu, 18 Dec 2025 10:40:31 +0800 Subject: [PATCH] =?UTF-8?q?feat(api):=20=E6=94=AF=E6=8C=81=E8=87=AA?= =?UTF-8?q?=E5=AA=92=E4=BD=93=E6=8A=95=E7=A8=BF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 SelfMediasDao 和 SelfMediasService 类 - 在 ApiService 中增加 model_id 判断逻辑以支持不同媒体类型 - 修改 OnlineMediasConfigController 以传递 module_id 参数 - 更新路由配置区分网媒与自媒体接口 - 调整 OnlineMediasController 以适配新逻辑并实例化 SelfMediasService --- .../admin/OnlineMediasConfigController.php | 5 ++- app/controller/admin/OnlineMediasController.php | 9 ++++- app/route/route.php | 15 ++++++-- app/service/admin/OnlineMediasConfigService.php | 5 ++- app/service/admin/SelfMediasService.php | 43 ++++++++++++++++++++++ app/service/user/ApiService.php | 12 +++++- 6 files changed, 80 insertions(+), 9 deletions(-) create mode 100644 app/service/admin/SelfMediasService.php diff --git a/app/controller/admin/OnlineMediasConfigController.php b/app/controller/admin/OnlineMediasConfigController.php index 2235fd5..f64817f 100644 --- a/app/controller/admin/OnlineMediasConfigController.php +++ b/app/controller/admin/OnlineMediasConfigController.php @@ -43,7 +43,10 @@ class OnlineMediasConfigController public function index(OnlineMediasConfigService $service): Response { - return success($service->listData()); + $params = requestOnly([ + 'module_id' => 1, + ]); + return success($service->listData($params)); } public function read(OnlineMediasConfigService $service): Response diff --git a/app/controller/admin/OnlineMediasController.php b/app/controller/admin/OnlineMediasController.php index 5333d0f..af65fae 100644 --- a/app/controller/admin/OnlineMediasController.php +++ b/app/controller/admin/OnlineMediasController.php @@ -2,6 +2,7 @@ namespace app\controller\admin; use app\service\admin\OnlineMediasService; +use app\service\admin\SelfMediasService; use app\service\user\ApiService; use app\service\admin\ApiService as AdminApiService; use support\Response; @@ -11,10 +12,15 @@ class OnlineMediasController public function index(OnlineMediasService $service): Response { $params = requestOnly([ + 'model_id' => 1, 'wheres' => [], 'name' => '' ]); - return success($service->listData($params)); + if ($params['model_id'] == 1) { + return success($service->listData($params)); + } + $selfMediasService = app()->make(SelfMediasService::class); + return success($selfMediasService->listData($params)); } /** @@ -23,6 +29,7 @@ class OnlineMediasController public function receive(ApiService $service) { $params = requestOnly([ + 'model_id' => 1, 'media_id' => '', 'article_id' => '' ]); diff --git a/app/route/route.php b/app/route/route.php index f58363a..116b762 100644 --- a/app/route/route.php +++ b/app/route/route.php @@ -207,11 +207,18 @@ Route::group('/service/v1', function () { //投稿 Route::group('/contribution', function () { - //选项 + //网媒 + Route::group(function () { + //媒体资源 + Route::post('/resource', [OnlineMediasController::class, 'index'])->setParams(['perm' => ['contributionResource']]); + }); + //自媒体 + Route::group(function () { + + }); + //通用选项 Route::get('/options', [OnlineMediasConfigController::class, 'index'])->setParams(['perm' => ['contributionOptions']]); - //媒体资源 - Route::post('/resource', [OnlineMediasController::class, 'index'])->setParams(['perm' => ['contributionResource']]); - //投稿 + //通用投稿 Route::post('/receive', [OnlineMediasController::class, 'receive'])->setParams(['perm' => ['contributionReceive']]); //稿件记录 Route::get('/index', [CreationArticleReceiveRecordsController::class, 'index'])->setParams(['perm' => ['contributionIndex']]); diff --git a/app/service/admin/OnlineMediasConfigService.php b/app/service/admin/OnlineMediasConfigService.php index 1b0682f..9fae18b 100644 --- a/app/service/admin/OnlineMediasConfigService.php +++ b/app/service/admin/OnlineMediasConfigService.php @@ -61,10 +61,11 @@ class OnlineMediasConfigService extends BaseService * @param array $params * @return array */ - public function listData(): array + public function listData($params): array { $query = [ - 'delete_time' => 0 + 'delete_time' => 0, + 'module_id' => $params['module_id'] ]; $list = $this->dao->selectList($query)->toArray(); return TreeUtils::toTree($list); diff --git a/app/service/admin/SelfMediasService.php b/app/service/admin/SelfMediasService.php new file mode 100644 index 0000000..3ee5442 --- /dev/null +++ b/app/service/admin/SelfMediasService.php @@ -0,0 +1,43 @@ +dao = app()->make(SelfMediasDao::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']]; + } + } + } + if (isNotBlank($params['name'])) { + $query[] = ['name', 'like', "%{$params['name']}%"]; + } + $list = $this->dao->getList($query, '*', $page, $limit, "$sortField $sortRule"); + $count = $this->dao->getCount($query); + return compact('list', 'count'); + } + +} \ No newline at end of file diff --git a/app/service/user/ApiService.php b/app/service/user/ApiService.php index ee2fd70..cd92802 100644 --- a/app/service/user/ApiService.php +++ b/app/service/user/ApiService.php @@ -3,6 +3,7 @@ namespace app\service\user; use app\dao\admin\OnlineMediasDao; +use app\dao\admin\SelfMediasDao; use app\dao\user\CreationArticleDao; use app\dao\user\CreationArticleReceiveRecordsDao; use plugin\piadmin\app\base\BaseService; @@ -15,12 +16,14 @@ class ApiService extends BaseService protected $appkey = 'de06270f3515bad109aa1fd2c023dd41'; protected $onlineMediasDao; + protected $selfMediasDao; protected $creationArticleDao; protected $creationArticleReceiveRecordsDao; public function __construct() { $this->onlineMediasDao = app()->make(OnlineMediasDao::class); + $this->selfMediasDao = app()->make(SelfMediasDao::class); $this->creationArticleDao = app()->make(CreationArticleDao::class); $this->creationArticleReceiveRecordsDao = app()->make(CreationArticleReceiveRecordsDao::class); } @@ -28,7 +31,14 @@ class ApiService extends BaseService public function receive($params) { $article = $this->creationArticleDao->get($params['article_id']); - $media = $this->onlineMediasDao->get($params['media_id']); + if ($params['model_id'] == 1) { + $media = $this->onlineMediasDao->get($params['media_id']); + } elseif ($params['model_id'] == 2) { + $media = $this->selfMediasDao->get($params['media_id']); + } else { + throw new ApiException('投稿失败'); + } + $time_out = 60; $url = $this->url; //保存投稿记录