store-manage/routes/api.php

137 lines
6.7 KiB
PHP

<?php
use App\Http\Controllers\Api\Account\StoreMasterCommissionController;
use App\Http\Controllers\Api\Account\StorePerformanceController;
use App\Http\Controllers\Api\Account\TaskPerformanceController;
use App\Http\Controllers\Api\AppVersionController;
use App\Http\Controllers\Api\Auth\AccessTokenController;
use App\Http\Controllers\Api\ComplaintController;
use App\Http\Controllers\Api\ConfigurationController;
use App\Http\Controllers\Api\FeedbackController;
use App\Http\Controllers\Api\FileUploadController;
use App\Http\Controllers\Api\KeywordController;
use App\Http\Controllers\Api\LedgerController;
use App\Http\Controllers\Api\MessageController;
use App\Http\Controllers\Api\RegionController;
use App\Http\Controllers\Api\StatisticsController;
use App\Http\Controllers\Api\TaskController;
use Illuminate\Support\Facades\Route;
Route::post('/auth/login', [AccessTokenController::class, 'store']);
Route::delete('/auth/logout', [AccessTokenController::class, 'destroy']);
// 数据字典
Route::get('keyword', [\App\Http\Controllers\Api\KeywordController::class, 'index']);
// 字典表
Route::get('keywords', [KeywordController::class, 'index']);
Route::get('region', [RegionController::class, 'index']);
Route::get('latest-app-versions', [AppVersionController::class, 'latest']);
Route::get('configurations', [ConfigurationController::class, 'index']);
Route::group([
'middleware' => ['auth:api'],
], function () {
// 文件上传
Route::post('fileupload', FileUploadController::class);
// 当前账户信息
Route::get('auth/profile', [\App\Http\Controllers\Api\Auth\UserController::class, 'profile']);
// 修改账户信息
Route::post('auth/profile', [\App\Http\Controllers\Api\Auth\UserController::class, 'update']);
// 我的门店列表
Route::get('auth/stores', [\App\Http\Controllers\Api\Auth\UserController::class, 'storeList']);
// 个人账户 - 佣金提成
Route::get('/account/store-master-commissions', [StoreMasterCommissionController::class, 'index']);
// 个人账户 - 门店业绩数据
Route::get('/account/store-performance', StorePerformanceController::class);
// 个人账户 - 门店业绩指标任务
Route::get('/account/store-performance-tasks', [TaskPerformanceController::class, 'index']);
// 消息通知
Route::get('/message/messages', [MessageController::class, 'index']);
Route::get('/message/messages/{message}', [MessageController::class, 'show']);
Route::post('/message/read-all', [MessageController::class, 'readAll']);
// 统计数据 - 首页统计
Route::get('/statistics/dashboard', [StatisticsController::class, 'dashboard']);
// 统计数据 - 门店统计
Route::get('/statistics/stores', [StatisticsController::class, 'stores']);
// 统计数据 - 销售统计
Route::get('/statistics/sales', [StatisticsController::class, 'sales']);
// 统计数据 - 总账统计
Route::get('/statistics/ledger', [StatisticsController::class, 'ledger']);
// 数据上报
Route::apiResource('/ledgers', LedgerController::class)->only(['store', 'show']);
// 我的任务 - 任务列表
Route::get('tasks', [TaskController::class, 'index']);
Route::get('tasks/{task}', [TaskController::class, 'show']);
// 我的任务 - 提交任务
Route::post('tasks/{task}/submit', [TaskController::class, 'submit']);
// 举报投诉
Route::post('complaints', [ComplaintController::class, 'store']);
// 意见箱
Route::post('feedback', [FeedbackController::class, 'store']);
// 员工管理
Route::group(['middleware' => ['user_role:admin,store']], function () {
Route::post('hr/employee/{id}/leave', [\App\Http\Controllers\Api\Hr\EmployeeController::class, 'leave']);
Route::apiResource('hr/employee', \App\Http\Controllers\Api\Hr\EmployeeController::class);
});
// 考勤打卡
Route::get('hr/sign/info', [\App\Http\Controllers\Api\Hr\SignController::class, 'info']);
Route::get('hr/sign', [\App\Http\Controllers\Api\Hr\SignController::class, 'index']);
Route::post('hr/sign', [\App\Http\Controllers\Api\Hr\SignController::class, 'store']);
// 补卡申请
Route::apiResource('hr/sign-repairs', \App\Http\Controllers\Api\Hr\SignRepairController::class);
// 请假管理
Route::apiResource('hr/holidays', \App\Http\Controllers\Api\Hr\HolidayController::class);
// 加班申请
Route::apiResource('hr/overtimes', \App\Http\Controllers\Api\Hr\OvertimeController::class);
// 出差报备
Route::apiResource('hr/offical-bussiness', \App\Http\Controllers\Api\Hr\OfficalBusinessController::class);
// 升职申请
Route::get('hr/promotion/apply', [\App\Http\Controllers\Api\Hr\PromotionController::class, 'applyList']);
Route::get('hr/promotion/invite', [\App\Http\Controllers\Api\Hr\PromotionController::class, 'inviteList']);
Route::get('hr/promotion/{id}', [\App\Http\Controllers\Api\Hr\PromotionController::class, 'show']);
Route::post('hr/promotion/{id}', [\App\Http\Controllers\Api\Hr\PromotionController::class, 'update']);
Route::post('hr/promotion/{id}/apply', [\App\Http\Controllers\Api\Hr\PromotionController::class, 'applyUpdate']);
Route::post('hr/promotion/{id}/invite', [\App\Http\Controllers\Api\Hr\PromotionController::class, 'inviteUpdate']);
Route::delete('hr/promotion/{id}', [\App\Http\Controllers\Api\Hr\PromotionController::class, 'destroy']);
// 报销管理
Route::apiResource('reimbursements', \App\Http\Controllers\Api\ReimbursementController::class);
// 合同管理
Route::apiResource('agreements', \App\Http\Controllers\Api\AgreementController::class);
// 审核流程
Route::get('workflow', [\App\Http\Controllers\Api\WorkflowController::class, 'index']);
Route::get('workflow/{id}', [\App\Http\Controllers\Api\WorkflowController::class, 'show']);
Route::get('workflow/{id}/logs', [\App\Http\Controllers\Api\WorkflowController::class, 'logs']);
Route::post('workflow/{id}/check', [\App\Http\Controllers\Api\WorkflowController::class, 'check']);
Route::post('workflow/{id}/cancel', [\App\Http\Controllers\Api\WorkflowController::class, 'cancel']);
// 培训-课件
Route::get('train/books', [\App\Http\Controllers\Api\Train\BookController::class, 'index']);
Route::get('train/books/{id}', [\App\Http\Controllers\Api\Train\BookController::class, 'show']);
// 培训-考试
Route::get('train/examinations', [\App\Http\Controllers\Api\Train\ExaminationController::class, 'index']);
Route::get('train/examinations/{id}', [\App\Http\Controllers\Api\Train\ExaminationController::class, 'show']);
Route::post('train/examinations/{id}/answer', [\App\Http\Controllers\Api\Train\ExaminationController::class, 'answer']);
});