index.php 9.85 KB
<?php

use App\Http\Container\AppSection\Controllers\Activity\DemoController as ActivityDemoController;
use App\Http\Container\AppSection\Controllers\ActivityController;
use App\Http\Container\AppSection\Controllers\AuditionController;
use App\Http\Container\AppSection\Controllers\BannerController;
use App\Http\Container\AppSection\Controllers\CountryRegionController;
use App\Http\Container\AppSection\Controllers\DynamicController;
use App\Http\Container\AppSection\Controllers\HomeController;
use App\Http\Container\AppSection\Controllers\IndexController;
use App\Http\Container\AppSection\Controllers\MyController;
use App\Http\Container\AppSection\Controllers\NotificationController;
use App\Http\Container\AppSection\Controllers\ProjectController;
use App\Http\Container\AppSection\Controllers\ProjectDynamicController;
use App\Http\Container\AppSection\Controllers\ProjectMembersController;
use App\Http\Container\AppSection\Controllers\Recommend\ActivityController as RecommendActivityController;
use App\Http\Container\AppSection\Controllers\Recommend\UserController as RecommendUserController;
use App\Http\Container\AppSection\Controllers\SystemMaterialsController;
use App\Http\Container\AppSection\Controllers\SystemNotificationController;
use App\Http\Container\AppSection\Controllers\TagController;
use App\Http\Container\AppSection\Controllers\UploadController;
use App\Http\Container\AppSection\Controllers\UserActivityController;
use App\Http\Container\AppSection\Controllers\UserAuthController;
use App\Http\Container\AppSection\Controllers\UserLoginController;
use App\Http\Container\AppSection\Controllers\UserQuotationController;
use App\Http\Container\AppSection\Controllers\UserTagController;
use App\Http\Container\AppSection\Controllers\WebUploadController;
use Illuminate\Support\Facades\Route;


Route::prefix('app')->as('app.')->group(static function () {
    Route::middleware('web')->group(static function () {
        Route::get('notification/{notification}', [NotificationController::class, 'show']);
        Route::get('banners/{banner}', [BannerController::class, 'show']);
    });
    Route::middleware('api')->group(static function () {
        Route::prefix('recommend')->group(static function () {
            Route::get('activity', RecommendActivityController::class);
            Route::get('user', RecommendUserController::class);
        });
        Route::get('banners', [BannerController::class, 'index'])->middleware('auth.check:app');

        Route::get('subscribeLogin', [WebUploadController::class, 'subscribeLogin']);
        Route::post('qrcodeLogin', [WebUploadController::class, 'Login'])->middleware('auth:app');

        //素材库接口
        Route::get('materials', [SystemMaterialsController::class, 'index']);
        Route::get('user/onsite_works', [HomeController::class, 'onSiteWorks'])->middleware('auth.check:app');

        // v2.0.4版本新接口替换,v2.0.6 废除
        // Route::get('index/musician/list', [IndexController::class, 'musicianList'])->middleware(['auth.check:app', 'emptyToNull']);

        Route::get('index/public_audition', [IndexController::class, 'publicAudition'])->middleware('emptyToNull');
        Route::get('index/band/list', [IndexController::class, 'bandList'])->middleware('emptyToNull');

        Route::get('tags', TagController::class);
        Route::get('user_tags', UserTagController::class);

        Route::middleware('auth:app')->group(static function () {
            Route::post('system-notifications', SystemNotificationController::class);


            Route::get('auth', [MyController::class, 'auth']);
            Route::post('auth/sync', [MyController::class, 'sync']);
            Route::get('auth/chat/relation/{id}', [MyController::class, 'chatRelation']);

            Route::get('user/singer', [MyController::class, 'mySingerInfo']);
            Route::get('user/share', [MyController::class, 'share']);
            Route::get('user/activities', [MyController::class, 'myActivity']);
            Route::prefix('country')->group(static function () {
                Route::get('regions', [CountryRegionController::class, 'index']);
                Route::get('ip', [CountryRegionController::class, 'ip']);
            });

            Route::name('upload')->post('upload', UploadController::class);
            Route::post('upload-token', [UploadController::class, 'token']);
            Route::post('upload-sts-token', [UploadController::class, 'stsToken']);
            Route::post('upload-report', [UploadController::class, 'report']);
            Route::apiResource('dynamics', DynamicController::class);
            Route::singleton('users.quotation', UserQuotationController::class)->whereNumber('user')->only(['show', 'update']);
            Route::post('notifications', [NotificationController::class, 'store']);

            //Ta的试唱
            Route::get('users/{user}/activities', [UserActivityController::class, 'submitActivity'])->whereNumber('user');

            Route::post('user/save-share', [MyController::class, 'saveShare']);

            // v2.0.4版本新接口替换,v2.0.6 废除
            // Route::get('user/group/reception-songs', [MyController::class, 'groupReceptionSong']);
            // Route::get('user/group/reception-songs/{id}', [MyController::class, 'groupReceptionSongShow'])->whereNumber('id');


            // ta的收藏
            // v2.0.4版本新接口替换,v2.0.6 废除
            // Route::get('user/ta_collection', [UserActivityController::class, 'taCollection']);

            // 我听过的
            Route::get('user/listen', [UserActivityController::class, 'userListen']);
            // 我的收藏
            Route::get('audition/collection', [AuditionController::class, 'collection']);
            Route::post('audition/collection', [AuditionController::class, 'sub']);
            Route::delete('audition/collection', [AuditionController::class, 'unsub']);
            // 厂牌主页
            Route::get('band_link_activity', [AuditionController::class, 'bandLinkActivity']);

            Route::get('user/singer', [MyController::class, 'mySingerInfo']);
            Route::get('admin/activitys', [MyController::class, 'getAdminActivitys']);
            Route::post('user/onsite_work/interact', [HomeController::class, 'workHideOrIstop']);
            Route::get('activity/submit_audio', [ActivityController::class, 'submitAudion']);
            Route::get('activitys/{activity}/send-mail', [ActivityController::class, 'sendMail'])->whereNumber('activity')->middleware(['throttle:30,1']);

            Route::post('user/auth_info', [UserAuthController::class, 'story']);
            Route::get('user/auth_list', [UserAuthController::class, 'list']);
            Route::get('user/auth_detail', [UserAuthController::class, 'detail']);
            Route::put('user/auth_examine', [UserAuthController::class, 'examine']);
            Route::get('user/group/follow', [HomeController::class, 'groupFollow']);
            Route::post('user/group/invite', [HomeController::class, 'gropuInvite']);
            Route::put('user/group/invite_handle', [HomeController::class, 'handleInvite']);
            Route::get('user/group/members', [HomeController::class, 'groupMembers']);
            Route::put('user/group/members_top', [HomeController::class, 'memberTop']);
            Route::put('home/group/out', [HomeController::class, 'groupOut']);
            Route::get('index/search', [IndexController::class, 'indexSearch']);
            Route::get('admin/activity/permission', [MyController::class, 'activityPermission']);
            Route::post('user/login/log', [UserLoginController::class, 'loginLogs']);
            Route::get('user/black_list', [HomeController::class, 'blackList']);

            //团队数据
            Route::get('user/group/data', [HomeController::class, 'groupData']);
            Route::get('user/group/member_statistics_detail', [HomeController::class, 'memberStatisticsDetail']);
            Route::get('user/group/trend_detail', [HomeController::class, 'trendDetail']);
            Route::get('user/group/trend_table', [HomeController::class, 'tabledetail']);

            //厂牌详情
            Route::put('project/activity/editor/{id}', [ProjectController::class, 'activityEditor']);
            Route::get('project/detail', [ProjectController::class, 'detail']);
            Route::get('project/visitors', [ProjectController::class, 'visitors']);
            Route::post('project/editor', [ProjectController::class, 'editor']);
            Route::get('project/masters', [ProjectController::class, 'masterList']);
            Route::apiResource('project/dynamics', ProjectDynamicController::class);
            Route::apiResource('project/members', ProjectMembersController::class);
            Route::get('project/invite/list', [ProjectController::class, 'inviteList']);
            Route::post('project/invite', [ProjectController::class, 'invite']);
            Route::get('project/handle/list', [ProjectController::class, 'handleList']);
            Route::post('project/handle_invite', [ProjectController::class, 'handle']);
            Route::post('project/member/out', [ProjectController::class, 'memberOut']);
            Route::post('project/handle_out', [ProjectController::class, 'handleOut']);

            // 确认合作接口
            Route::post('admin/activity/{work}/confirm', [MyController::class, 'ConfirmSinger'])->whereNumber('work');

            //主页厂牌列表
            Route::get('home/project/list', [HomeController::class, 'projectList']);

            //未读系统消息监听
            Route::get('index/notification/listen', [IndexController::class, 'notificationListen']);


            //分割线============
            Route::prefix('auth')->group(__DIR__ . '/auth.php');

            Route::get('activity_demos', ActivityDemoController::class);

            Route::prefix('activitys')->group(__DIR__ . '/activity.php');

            require_once __DIR__ . '/user.php';
        });
    });
});