<?php

use Illuminate\Support\Facades\Route;

Route::middleware([
    'auth:admin',
    'admin.permission',
])->group(function () {
    Route::get('configs/{categorySlug}/values', 'ConfigController@getValuesByCategorySlug')
        ->name('configs.values.by_category_slug');
});
Route::middleware([
    'auth:admin',
    'admin.permission',
    'detection_of_merchant_status'
])->group(function () {
    Route::post('auth/logout', 'Auth\LoginController@logout')->name('logout');

    Route::get('admin_user', 'AdminUserController@user')->name('admin_user');
    Route::get('admin_user/edit', 'AdminUserController@editUser')->name('admin_user.edit');
    Route::put('admin_user', 'AdminUserController@updateUser')->name('admin_user.update');
//    Route::get('admin-merchant/{admin_merchants}/edit','AdminUserMerchantController@edit');

    Route::get('admin_merchant_config/get','AdminUserMerchantController@getMerchantConfig');
    Route::post('admin_merchant_config/edit','AdminUserMerchantController@editMerchantConfig');
    Route::post('admin_merchant_uplode', 'AdminUserMerchantController@adminMerchantUplode');
    Route::post('admin_merchant_uplode_pay', 'AdminUserMerchantController@adminMerchantPay');

    Route::resource('admin_merchants', 'AdminUserMerchantController', ['parameters' => [
        'admin_merchants' => 'admin_merchants'
    ]]);

    Route::resource('admin-users', 'AdminUserController');
    Route::get('admin_user/areaAdmin', 'AdminUserController@areaAdmin');


    Route::put('vue-routers', 'VueRouterController@batchUpdate')->name('vue-routers.batch.update');
    Route::resource('vue-routers', 'VueRouterController')->except(['show', 'create']);

    Route::resource('admin-permissions', 'AdminPermissionController')->except(['show']);
    Route::resource('admin-roles', 'AdminRoleController')->except(['show']);

    Route::resource('config-categories', 'ConfigCategoryController')->except(['show', 'create']);

    Route::prefix('configs')
        ->as('configs.')
        ->group(function () {
            Route::get('vue-routers', 'ConfigController@vueRouters')->name('vue-routers');
        });
    Route::put('configs/values', 'ConfigController@updateValues')->name('configs.update_values');
    Route::resource('configs', 'ConfigController')->except(['show']);
    Route::get('configs/{categorySlug}', 'ConfigController@getByCategorySlug')->name('configs.by_category_slug');


    Route::resource('system-media-categories', 'SystemMediaCategoryController')->except(['show', 'create']);
    // 在指定分类下,上传文件
    Route::post(
        'system-media-categories/{system_media_category}/system-media',
        'SystemMediaCategoryController@storeSystemMedia'
    )->name('system-media-categories.system-media.store');
    // 获取指定分类下的所有文件
    Route::get(
        'system-media-categories/{system_media_category}/system-media',
        'SystemMediaCategoryController@systemMediaIndex'
    )->name('system-media-categories.system-media.index');

    Route::resource('system-media', 'SystemMediaController')
        // system-media 自动转成单数后 变为了 system-sedium
        // 所以手动指定
        ->parameters(['system-media' => 'system_media'])
        ->except(['store', 'show', 'create']);
    //区域  停车区域
    Route::resource('area', 'AreaController')->except(['create']);
    Route::resource('parking', 'ParkingController')->except(['show', 'create']);
    Route::post('parking/status', 'ParkingController@updateStatus');
//    Route::put('area_setting', 'AreaSettingController@update');
    Route::resource('area_setting', 'AreaSettingController');
    Route::post('area_setting/uploadImg', 'AreaSettingController@uploadImg');

    Route::get('parking/applyAddParking', 'ParkingController@applyAddParking');


    //车辆部分
    Route::resource('bike', 'BikeController')->except(['show', 'create']);
    Route::put('bike/updateRemark/{id}', 'BikeController@updateRemark');
    Route::get('bike/maps', 'BikeController@maps');
    Route::post('bike/bikesUpdate', 'BikeController@bikesUpdate');
    Route::post('bike/bikesImport', 'BikeController@import');
    Route::post('bike/getBikePosition', 'BikeController@analysisPosition');
    Route::get('bike/bikesDownload', 'BikeController@download');
    Route::get('bike/qrCode', 'BikeController@QrCode');
    Route::get('bike/qrCodesDownload', 'BikeController@qrCodesDownload');
    Route::get('bike/statistics', 'BikeController@statistics'); //统计信息
    Route::post('bike/mulBikesContro', 'BikeController@mulBikesContro'); //批量操作
    Route::get('bike/bikeStatusValueLabel', 'BikeController@bikeStatusValueLabel'); //车辆状态
    Route::post('bike/getTrajectorys', 'BikeController@getTrajectorys'); //车车辆所有轨迹

    Route::post('bike/getTrajectory', 'BikeController@getTrajectory');
    Route::post('bike/getOrderRentTrajectory', 'BikeController@getOrderRentTrajectory');

    //押金
    Route::get('deposit/statistics', 'DepositController@depositAnalysis');
    Route::get('deposit/depositTotal', 'DepositController@depositTotal');
    Route::get('deposit/refundLogIndex', 'DepositController@refundLogIndex');
    Route::resource('deposit', 'DepositController')->only(['index']);

    //收益
    Route::get('profit/statistics', "ProfitController@profitAnalysis");
    Route::get('profit/profitTotal', "ProfitController@profitTotal");
    Route::resource('profit', "ProfitController")->only(['index']);

    //用户
    Route::resource('user', "UserController")->except(['show']);
    Route::post('user/status', 'UserController@changeStatus');
    Route::get('user/wallet', 'UserController@wallet');
    Route::get('user/number', 'UserController@userNumber');
    Route::get('user/moneySum', 'UserController@moneySum');
    Route::post('user/returnDeposit', 'UserController@returnDeposit');
    Route::post('user/reReturnDeposit', 'UserController@reReturnDeposit');
    Route::post('user/groupSendSms', 'UserController@groupSendSms');
    Route::get('user/groupSendSmsList', 'UserController@groupSendSmsList');
    Route::get('user/groupSmsTemplate', 'UserController@groupSmsTemplate');
    Route::get('user/getUserByMobile', 'UserController@getUserByMobile');
    Route::post('user/rechargeBalance', 'UserController@rechargeBalance');
    Route::post('user/refundBalance', 'UserController@refundBalance');
    Route::get('user/refundBalanceOrders', 'UserController@refundBalanceOrderList');
    Route::get('user/queryRefundBalance', 'UserController@queryRefundBalance');
    Route::get('user/refundBalanceAgain', 'UserController@refundBalanceAgain');
    Route::get('user/students', 'UserController@students');
    Route::get('user/studentsNumber', 'UserController@studentsNumber');
    Route::post('user/student', 'UserController@updateStudents');

    //订单
    Route::resource('orders', 'OrderController')->only(['index', 'update']);
    Route::get('orders/orderLocation', 'OrderController@orderLocation');
    Route::get('orders/orderLocationsearch', 'OrderController@orderLocationsearch');
    Route::get('orders/orderStatus', 'OrderController@orderStatus');
    Route::get('orders/orderBikeOperate', 'OrderController@orderBikeOperate');
    Route::post('orders/settlement', 'OrderController@settlementOrder');//结算
    Route::post('orders/closeLock', 'OrderController@updateOrderCloseBike');//关锁
    Route::post('orders/returnOrderMoney', 'OrderController@orderReturnMoney');//返还
    Route::post('orders/changeOrderRiding', 'OrderController@changeOrderRiding');//订单回退
    Route::post('orders/orderDetailPosition', 'OrderController@orderDetailPosition');//详情位置
    Route::post('orders/orderBikeContro', 'OrderController@orderBikeContro');//详情位置
    Route::get('orders/getByNo', 'OrderController@getOrdersByNo');//详情位置

    //日租订单
    Route::resource('orderRent', 'OrderRentController')->only(['index', 'update']);
    Route::get('orderRent/orderRentLocationsearch', 'OrderRentController@orderRentLocationsearch');
    Route::get('orderRent/orderRentStatus', 'OrderRentController@orderRentStatus');
    Route::get('orderRent/orderRentBikeOperate', 'OrderRentController@orderRentBikeOperate');
    Route::get('orderRent/orderRentLocation', 'OrderRentController@orderRentLocation');
    Route::post('orderRent/closeLock', 'OrderRentController@changeOrderRentStatus'); // 还车
    Route::post('orderRent/settlement', 'OrderRentController@settlementOrderRent');//结算
    Route::post('orderRent/returnOrderMoney', 'OrderRentController@orderRentReturnMoney');//返还
    Route::post('orderRent/orderRentDetailPosition', 'OrderRentController@orderRentDetailPosition');//详情位置
    Route::post('orderRent/changeRentOrderRiding', 'OrderRentController@changeRentOrderRiding');//订单回退
    Route::post('orderRent/orderBikeContro', 'OrderRentController@orderBikeContro');//订单回退


    //地勤
    Route::resource('worker', 'WorkerController')->except(['show', 'edit']);
    Route::post('worker/reset', 'WorkerController@resetPassword');
    Route::get('worker/workOrderChart', 'WorkerController@workOrderChart');


    // 用户报修
    Route::get('user_repaired', 'UserRepairedController@index');
    Route::get('user_repaired/img', 'UserRepairedController@getRepairedImg');

    // 工单
    Route::get('work_order', 'WorkOrderController@index');
    Route::get('work_order/workOrderType', 'WorkOrderController@workOrderType');
    Route::post('work_order/addworkOrder', 'WorkOrderController@addworkOrder');
    Route::post('work_order/mulOverWorkOrder', 'WorkOrderController@mulOverWorkOrder'); // 批量完成
    Route::post('work_order/mulAssignWorkOrder', 'WorkOrderController@mulAssignWorkOrder'); //批量指派
    Route::get('work_order/getWarningByWorkOrderId', 'WorkOrderController@getWarningByWorkOrderId'); //批量指派


    //首页头部
    // Route::get('index/top', 'IndexController@topIndex');
    // Route::get('index/todoEvent', 'IndexController@todoEvent'); //待办事项
    // Route::get('index/profitChart', 'IndexController@profitChart');
    // Route::get('index/newUsersChart', 'IndexController@newUsersChart');
    // Route::get('index/newOrderChart', 'IndexController@newOrderChart');
    // Route::get('index/riddingRanking', 'IndexController@riddingRanking');
    // Route::get('index/bikeProfitRanking', 'IndexController@bikeProfitRanking');
    // Route::get('index/newDayRentOrderChart', 'IndexController@newDayRentOrderChart'); // 日租新订单统计图数据
    // Route::get('index/riddingRankingByDayRentOrder', 'IndexController@riddingRankingByDayRentOrder'); // 日租订单骑行排行榜
    Route::get('index/heatMap', 'IndexController@heatMap'); //热力图
    // Route::get('index/userPhoneChart', 'IndexController@userPhoneChart'); //机型分析
    // 新 首页头部 - 控制台统计
    Route::get('index/merchantList', 'DataStatisticsController@adminMerchantList'); //商户列表
    Route::get('index/areaList', 'DataStatisticsController@areaList'); //区域列表
    Route::get('index/top', 'DataStatisticsController@topIndex'); //头部统计数据
    Route::get('index/todoEvent', 'DataStatisticsController@todoEvent'); //待办事项
    Route::get('index/profitChart', 'DataStatisticsController@profitChart');//总收益趋势
    Route::get('index/newUsersChart', 'DataStatisticsController@newUsersChart');//新用户增长趋势
    Route::get('index/newOrderChart', 'DataStatisticsController@newOrderChart');//新订单趋势 - 普通订单
    Route::get('index/newDayRentOrderChart', 'DataStatisticsController@newDayRentOrderChart');//新订单趋势 - 日租订单
    Route::get('index/riddingRanking', 'DataStatisticsController@riddingRanking');//骑行排行榜 - 普通订单
    Route::get('index/riddingRankingByDayRentOrder', 'DataStatisticsController@riddingRankingByDayRentOrder');//骑行排行榜 - 日租订单
    Route::get('index/userPhoneChart', 'DataStatisticsController@userPhoneChart');//机型分析 手机统计
    Route::get('index/bikeProfitRanking', 'DataStatisticsController@bikeProfitRanking');//车辆收益排行榜
    Route::get('index/shareOutBonus', 'DataStatisticsController@shareOutBonus');//商户分红统计


    Route::put('system-media', 'SystemMediaController@batchUpdate')->name('system-media.batch.update');
    Route::delete('system-media', 'SystemMediaController@batchDestroy')->name('system-media.batch.destroy');

    Route::resource('box', 'BoxBindingController')->only(['index', 'store']);
    Route::post('box/import', 'BoxBindingController@import');
    Route::get('box/download', 'BoxBindingController@download'); //中控
    Route::get('box/unbindBox/{id}', 'BoxBindingController@unbindBox'); //中控
    Route::put('box/updateRemark/{id}', 'BoxBindingController@updateRemark'); //中控
    Route::put('box/setting/{id}', 'BoxBindingController@setting'); //中控
    Route::put('box/settingMul', 'BoxBindingController@settingMul'); //中控
    Route::get('box/getServerOptions', 'BoxBindingController@getServerOptions'); //中控
    Route::get('box/queryConfig', 'BoxBindingController@queryConfig'); //中控
    Route::get('box/warningLogsIndex', 'BoxBindingController@warningLogsIndex'); //中控
    Route::get('box/getWarningType', 'BoxBindingController@getWarningType'); //中控


    Route::resource('feedback', 'QuestionController')->only(['index']);// 意见反馈
    Route::get('feedback/isReadChange', 'QuestionController@isReadChange');//意见反馈

    Route::resource('advertisements', 'AdvertisementController')->except(['show']);
    Route::delete('advertisement-children/{id}', 'AdvertisementController@advertisementChildrenDestory');
    Route::get('advertisements/advertisementSelectData', 'AdvertisementController@advertisementSelectData');
    Route::post('advertisements/uploadImg', 'AdvertisementController@uploadImg');
    Route::post('advertisements/uploadImg2', 'AdvertisementController@uploadImg2');

    // 通知公告
    Route::resource('announcements', 'AnnouncementController')->except(['show']);
    Route::post('announcements/uploadImg2', 'AnnouncementController@uploadImg2');


    //骑行卡
    Route::resource('card_riding', 'CardRidingController')->except(['show']);
    Route::resource('card_riding_order', 'CardRidingOrderController')->only(['index']);
    Route::resource('card_riding_user_bags', 'CardRidingUserBagsController')->only(['index']);
    Route::get('card_riding_user_bags/cardLogs', 'CardRidingUserBagsController@cardLogs');

    Route::post('card_riding/giveCardToUser', 'CardRidingController@giveCardToUser');
    // 充值管理
    Route::resource('recharge_configuration', 'RechargeConfigurationController');
    Route::resource('recharge_order', 'RechargeOrderController')->only(['index']);
    Route::post('recharge_order/rechargeChart', 'RechargeOrderController@rechargeChart');
    Route::get('recharge_order/statisticsRecharge', 'RechargeOrderController@statisticsRecharge');
    Route::get('recharge_order/totalRecharge', 'RechargeOrderController@totalRecharge');

    // 优惠券
    Route::resource('coupon', 'CouponController')->except(['show', 'create']);
    Route::post('coupon/uploadImg', 'CouponController@uploadImg');
    Route::post('coupon/giveCouponToUser', 'CouponController@giveCouponToUser');

    Route::resource('coupon_user_bags', 'CouponUserBagsController')->only(['index']);

    // 邀请新用户
    Route::resource('invite_new_users_configs', 'InviteNewUsersConfigsController')->except(['show']);
    Route::post('invite_new_users_configs/uploadImg', 'InviteNewUsersConfigsController@uploadImg');
    Route::get('invite_new_users', 'InviteNewUsersConfigsController@inviteNewUsers');
    Route::get('invite_new_users_give_gift_log', 'InviteNewUsersConfigsController@inviteNewUsersGiveGiftLog');

    // 押金卡
    Route::resource('deposit_cards', 'DepositCardController')->except(['show']);
    Route::post('deposit_cards/giveDepositCardToUser', 'DepositCardController@giveDepositCardToUser');
    Route::resource('deposit_card_orders', 'DepositCardOrderController')->only(['index']);


    // 罚单
    Route::resource('punishment_orders', 'PunishmentOrderController')->except(['show', 'create']);

});

Route::post('auth/login', 'Auth\LoginController@login')->name('login');
Route::get('areaOpen', 'IndexOpenController@indexOpen');
Route::get('bike/mapsOpen', 'IndexOpenController@mapsOpen');
//首页头部
Route::get('indexOpen/top', 'IndexOpenController@topIndex');
Route::get('indexOpen/todoEvent', 'IndexOpenController@todoEvent'); //待办事项
Route::get('indexOpen/profitChart', 'IndexOpenController@profitPolygonalChart');
Route::get('indexOpen/newOrderChart', 'IndexOpenController@newOrderChart');
Route::get('indexOpen/newUsersChart', 'IndexOpenController@newUsersChart');
Route::get('indexOpen/newDayRentOrderChart', 'IndexOpenController@newDayRentOrderChart'); // 日租新订单统计图数据
Route::get('indexOpen/heatMap', 'IndexOpenController@heatMap'); //热力图
Route::get('indexOpen/acticveWxUserSattistics', 'IndexOpenController@acticveWxUserSattistics'); //活跃用户年龄分布
Route::get('indexOpen/hourOrderNumber', 'IndexOpenController@hourOrderNumber'); //前七天小时订单统计
Route::get('indexOpen/recentMonthOrderProfit', 'IndexOpenController@recentMonthOrderProfit');// 近一个月订单收益
Route::get('indexOpen/recentMonthAddUser', 'IndexOpenController@recentMonthAddUser');// 近一个月新增用户
Route::get('indexOpen/statisticsOpen', 'IndexOpenController@statisticsOpen');// 地图车辆统计


Route::get('test/test', 'TestSomethingController@index');// 测试接口等待测试结束后删除