store-manage/app/Admin/routes.php

275 lines
13 KiB
PHP

<?php
use App\Admin\Controllers\AgreementController;
use App\Admin\Controllers\AppVersionController;
use App\Admin\Controllers\AuthController;
use App\Admin\Controllers\BaseKeywordController;
use App\Admin\Controllers\CockpitController;
use App\Admin\Controllers\Complaint\ComplaintController;
use App\Admin\Controllers\Complaint\FeedbackController;
use App\Admin\Controllers\Finance\CommissionIncomeController;
use App\Admin\Controllers\Finance\LedgerController;
use App\Admin\Controllers\Finance\ReimbursementController;
use App\Admin\Controllers\Finance\SalesStatisticController;
use App\Admin\Controllers\Finance\StoreMasterCommissionController;
use App\Admin\Controllers\Finance\StoreStatisticController;
use App\Admin\Controllers\Hr\EmployeeController;
use App\Admin\Controllers\Hr\HolidayController;
use App\Admin\Controllers\Hr\OfficalBusinessController;
use App\Admin\Controllers\Hr\OvertimeController;
use App\Admin\Controllers\Hr\PromotionController;
use App\Admin\Controllers\Hr\RestController;
use App\Admin\Controllers\Hr\SignController;
use App\Admin\Controllers\Hr\SignLogController;
use App\Admin\Controllers\Hr\SignRepairController;
use App\Admin\Controllers\Plan\CalendarController;
use App\Admin\Controllers\Plan\PlanController;
use App\Admin\Controllers\Plan\TaskController;
use App\Admin\Controllers\Store\DeviceController;
use App\Admin\Controllers\Store\EmployeeController as StoreEmployeeController;
use App\Admin\Controllers\Store\StoreController;
use App\Admin\Controllers\Store\StoreProfitRatioLogController;
use App\Admin\Controllers\System\AdminMenuController;
use App\Admin\Controllers\System\AdminPermissionController;
use App\Admin\Controllers\System\AdminRoleController;
use App\Admin\Controllers\System\AdminUserController;
use App\Admin\Controllers\System\KeywordController;
use App\Admin\Controllers\System\WorkflowController;
use Illuminate\Routing\Router;
use Illuminate\Support\Facades\Route;
Route::group([
'domain' => config('admin.route.domain'),
'prefix' => config('admin.route.prefix'),
'middleware' => config('admin.route.middleware'),
'as' => 'admin.',
], function (Router $router) {
$router->post('login', [AuthController::class, 'login']);
$router->put('user_setting', [AuthController::class, 'saveUserSetting']);
$router->resource('index', \App\Admin\Controllers\HomeController::class);
$router->get('dashboard', [\App\Admin\Controllers\HomeController::class, 'index'])->name('home');
/*
|--------------------------------------------------------------------------
| 门店管理
|--------------------------------------------------------------------------
*/
$router->group([
'prefix' => 'store',
'as' => 'store.',
], function (Router $router) {
// 门店管理
$router->resource('stores', StoreController::class);
// 店员管理
$router->resource('employees', StoreEmployeeController::class)->only(['index', 'store', 'destroy']);
// 彩票机管理
$router->resource('devices', DeviceController::class);
// 门店分类
$router->resource('categories', BaseKeywordController::class);
// 门店等级
$router->resource('levels', BaseKeywordController::class);
// 经营类别
$router->resource('business', BaseKeywordController::class);
// 彩种类型
$router->resource('lottery-types', BaseKeywordController::class);
//
$router->resource('store-profit-ratio-logs', StoreProfitRatioLogController::class);
});
/*
|--------------------------------------------------------------------------
| 人事管理
|--------------------------------------------------------------------------
*/
$router->group([
'prefix' => 'hr',
'as' => 'hr.',
], function (Router $router) {
// 员工管理
$router->resource('employees', EmployeeController::class);
// 员工离职
$router->post('employees/{id}/leave', [EmployeeController::class, 'leave'])->name('employees.leave');
// 职位管理
$router->resource('jobs', BaseKeywordController::class);
// 休息管理
$router->resource('rests', RestController::class)->only(['index', 'create', 'store', 'destroy']);
// 打卡情况
$router->resource('signs', SignController::class)->only(['index', 'show', 'destroy']);
// 补卡申请
$router->resource('repairs', SignRepairController::class);
// 请假申请
$router->resource('holiday', HolidayController::class);
// 加班申请
$router->resource('overtime', OvertimeController::class);
// 出差报备
$router->resource('business', OfficalBusinessController::class);
// 升职申请
$router->resource('promotion', PromotionController::class);
});
/*
|--------------------------------------------------------------------------
| 投诉意见
|--------------------------------------------------------------------------
*/
$router->group([
'prefix' => 'complaint',
'as' => 'complaint.',
], function (Router $router) {
// 举报投诉
$router->resource('complaints', ComplaintController::class)->only(['index', 'show']);
$router->post('complaints/{complaint}/start', [ComplaintController::class, 'start'])->name('complaints.start');
$router->post('complaints/{complaint}/complete', [ComplaintController::class, 'complete'])->name('complaints.complete');
// 意见箱
$router->resource('feedback', FeedbackController::class)->only(['index', 'destroy']);
});
/*
|--------------------------------------------------------------------------
| 财务管理
|--------------------------------------------------------------------------
*/
$router->group([
'prefix' => 'finance',
'as' => 'finance.',
], function (Router $router) {
// 上报数据
$router->resource('ledgers', LedgerController::class);
$router->post('ledgers/{ledger}/ledger-amount', [LedgerController::class, 'updateLedgerAmount'])->name('ledgers.update_ledger_amount');
// 佣金收入
$router->get('commission-incomes', [CommissionIncomeController::class, 'index'])->name('commission_incomes.index');
// 收支报销
$router->resource('reimbursements', ReimbursementController::class);
// 销售统计
$router->get('sales-statistics', [SalesStatisticController::class, 'index'])->name('sales_statistics.index');
// 门店统计
$router->get('store-statistics', [StoreStatisticController::class, 'index'])->name('store_statistics.index');
// 店长提成
$router->resource('store-master-commissions', StoreMasterCommissionController::class)->names('store_master_commissions');
});
/*
|--------------------------------------------------------------------------
| 任务计划
|--------------------------------------------------------------------------
*/
$router->group([
'prefix' => 'plan',
'as' => 'plan.',
], function (Router $router) {
// 任务计划
$router->resource('plans', PlanController::class);
$router->post('/plans/{plan}/publish', [PlanController::class, 'publish'])->name('plans.publish');
$router->post('/tasks', [TaskController::class, 'store'])->name('plans.task_create');
$router->get('/tasks/{task}', [TaskController::class, 'show'])->name('plans.task_view');
$router->put('/tasks/{task}', [TaskController::class, 'update'])->name('plans.task_update');
$router->delete('/tasks/{task}', [TaskController::class, 'destroy'])->name('plans.task_delete');
$router->get('/calendars', [CalendarController::class, 'index'])->name('calendars.index');
});
/*
|--------------------------------------------------------------------------
| 系统管理
|--------------------------------------------------------------------------
*/
$router->group([
'prefix' => 'system',
'as' => 'system.',
], function (Router $router) {
// 账号管理
$router->resource('admin_users', AdminUserController::class);
$router->post('/admin_users/{admin_user}/change-password', [AdminUserController::class, 'changePassword'])->name('admin_users.change_password');
// 角色管理
$router->resource('admin_roles', AdminRoleController::class);
$router->post('admin_roles/{admin_role}/menus', [AdminRoleController::class, 'saveMenus'])->name('admin_roles.set_menus');
$router->post('admin_roles/{admin_role}/permissions', [AdminRoleController::class, 'savePermissions'])->name('admin_roles.set_permissions');
// 权限管理
$router->resource('admin_permissions', AdminPermissionController::class);
// 菜单管理
$router->resource('admin_menus', AdminMenuController::class);
// 系统设置
$router->resource('settings', \App\Admin\Controllers\SettingController::class);
// 数据字典
$router->resource('keywords', KeywordController::class);
$router->resource('workflows', WorkflowController::class);
});
$router->resource('articles', \App\Admin\Controllers\ArticleController::class);
$router->resource('ads', \App\Admin\Controllers\AdController::class);
/*
|--------------------------------------------------------------------------
| 培训管理
|--------------------------------------------------------------------------
*/
$router->group(['prefix' => 'train', 'as' => 'train.'], function (Router $router) {
// 课件管理
$router->resource('books', \App\Admin\Controllers\Train\BookController::class);
// 题库管理
$router->resource('questions', \App\Admin\Controllers\Train\QuestionController::class);
// 考试管理
$router->post('examinations/{id}/publish', [\App\Admin\Controllers\Train\ExaminationController::class, 'publish'])->name('examinations.publish');
$router->post('examinations/{id}/cancel', [\App\Admin\Controllers\Train\ExaminationController::class, 'cancel'])->name('examinations.cancel');
$router->resource('examinations', \App\Admin\Controllers\Train\ExaminationController::class);
$router->resource('papers', \App\Admin\Controllers\Train\PaperController::class)->only(['index', 'show']);
});
$router->post('agreement/download', [AgreementController::class, 'download'])->name('agreement.download');
$router->resource('agreement', AgreementController::class);
$router->resource('app-versions', AppVersionController::class)->names('app_versions');
// 修改上传
$router->any('upload_file', [\App\Admin\Controllers\IndexController::class, 'uploadFile']);
$router->any('upload_image', [\App\Admin\Controllers\IndexController::class, 'uploadImage']);
$router->any('upload_rich', [\App\Admin\Controllers\IndexController::class, 'uploadRich']);
$router->post('start_chunk_upload_file', [\App\Admin\Controllers\IndexController::class, 'startChunk']);
$router->post('save_chunk_upload_file', [\App\Admin\Controllers\IndexController::class, 'saveChunk']);
$router->post('finish_chunk_upload_file', [\App\Admin\Controllers\IndexController::class, 'finishChunk']);
$router->group([
'prefix' => 'api',
], function (Router $router) {
$router->get('stores', [StoreController::class, 'shareList']);
$router->get('employees', [EmployeeController::class, 'shareList']);
$router->get('employee-sign-logs', [SignLogController::class, 'shareList']);
$router->get('keywords/tree-list', [KeywordController::class, 'getTreeList']);
$router->get('workflow/value-options', [WorkflowController::class, 'getValueOptions']);
$router->post('workflow/apply', [WorkflowController::class, 'apply']);
$router->post('workflow/cancel', [WorkflowController::class, 'cancel']);
$router->post('workflow/success', [WorkflowController::class, 'success']);
$router->post('workflow/fail', [WorkflowController::class, 'fail']);
$router->get('workflow/logs', [WorkflowController::class, 'logs']);
$router->get('tasks', [TaskController::class, 'shareList']);
$router->get('train/questions', [\App\Admin\Controllers\Train\QuestionController::class, 'shareList']);
//----------------------------------
// 驾驶舱数据统计
//----------------------------------
// 基础统计
$router->get('cockpit/basic', [CockpitController::class, 'basic']);
// 销售走势
$router->get('cockpit/sales-trend', [CockpitController::class, 'salesTrend']);
// 彩种销售走势
$router->get('cockpit/lottery-sales-trend', [CockpitController::class, 'lotterySalesTrend']);
// 门店销量排名
$router->get('cockpit/store-sales-ranking', [CockpitController::class, 'storeSalesRanking']);
// 门店数量分布(按省份)
$router->get('cockpit/store-number-distribution', [CockpitController::class, 'storeNumberDistribution']);
// 门店分布(按城市)
$router->get('cockpit/store-distribution', [CockpitController::class, 'storeDistribution']);
// 门店分类
$router->get('cockpit/store-category', [CockpitController::class, 'storeCategory']);
// 年度目标
$router->get('cockpit/yearly-goals', [CockpitController::class, 'yearlyGoals']);
});
});