web.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <?php
  2. Route::get('s/{code}', 'User\SubscribeController@getSubscribeByCode'); // 节点订阅地址
  3. // 支付回调相关
  4. Route::prefix('callback')->group(function () {
  5. Route::get('checkout', 'Gateway\PayPal@getCheckout');
  6. Route::get('notify', 'PaymentController@notify'); //支付回调
  7. });
  8. // 登录相关
  9. Route::middleware(['isForbidden', 'affiliate', 'isMaintenance'])->group(function () {
  10. Route::get('lang/{locale}', 'AuthController@switchLang')->name('lang'); // 语言切换
  11. Route::any('login', 'AuthController@login')->middleware('isSecurity')->name('login'); // 登录
  12. Route::get('logout', 'AuthController@logout')->name('logout'); // 退出
  13. Route::any('register', 'AuthController@register')->name('register'); // 注册
  14. Route::any('reset', 'AuthController@resetPassword')->name('resetPasswd'); // 重设密码
  15. Route::any('reset/{token}', 'AuthController@reset')->name('resettingPasswd'); // 重设密码
  16. Route::any('activeUser', 'AuthController@activeUser')->name('active'); // 激活账号
  17. Route::get('active/{token}', 'AuthController@active')->name('activeAccount'); // 激活账号
  18. Route::post('send', 'AuthController@sendCode')->name('sendVerificationCode'); // 发送注册验证码
  19. Route::get('free', 'AuthController@free')->name('freeInvitationCode'); // 免费邀请码
  20. Route::get('create/string', '\Illuminate\Support\Str@random')->name('createStr'); // 生成随机密码
  21. Route::get('create/uuid', '\Illuminate\Support\Str@uuid')->name('createUUID'); // 生成UUID
  22. });
  23. Route::any('admin/login', 'AuthController@login')->middleware('isForbidden', 'isSecurity'); // 管理登录
  24. // 用户相关
  25. Route::middleware(['isForbidden', 'isMaintenance', 'isLogin'])->group(function () {
  26. Route::get('/', 'UserController@index')->name('home'); // 用户首页
  27. Route::get('article', 'UserController@article'); // 文章详情
  28. Route::post('exchangeSubscribe', 'UserController@exchangeSubscribe'); // 更换节点订阅地址
  29. Route::any('nodeList', 'UserController@nodeList'); // 节点列表
  30. Route::post('checkIn', 'UserController@checkIn'); // 签到
  31. Route::get('services', 'UserController@services'); // 商品列表
  32. Route::get('tickets', 'UserController@ticketList'); // 工单
  33. Route::post('createTicket', 'UserController@createTicket'); // 快速添加工单
  34. Route::any('replyTicket', 'UserController@replyTicket'); // 回复工单
  35. Route::post('closeTicket', 'UserController@closeTicket'); // 关闭工单
  36. Route::get('invoices', 'UserController@invoices'); // 订单列表
  37. Route::post('closePlan', 'UserController@closePlan'); // 激活预支付套餐
  38. Route::get('invoice/{sn}', 'UserController@invoiceDetail'); // 订单明细
  39. Route::post('resetUserTraffic', 'UserController@resetUserTraffic'); // 重置用户流量
  40. Route::get('buy/{id}', 'UserController@buy'); // 购买商品
  41. Route::post('redeemCoupon', 'UserController@redeemCoupon'); // 使用优惠券
  42. Route::get('invite', 'UserController@invite'); // 邀请码
  43. Route::post('makeInvite', 'UserController@makeInvite'); // 生成邀请码
  44. Route::any('profile', 'UserController@profile'); // 修改个人信息
  45. Route::post("switchToAdmin", "UserController@switchToAdmin"); // 转换成管理员的身份
  46. Route::post("charge", "UserController@charge"); // 卡券余额充值
  47. Route::get("help", "UserController@help"); // 帮助中心
  48. Route::namespace('User')->group(function () {
  49. Route::get('referral', 'AffiliateController@referral'); // 推广返利
  50. Route::post('extractMoney', 'AffiliateController@extractMoney'); // 申请提现
  51. });
  52. Route::prefix('payment')->group(function () {
  53. Route::post('purchase', 'PaymentController@purchase'); // 创建支付
  54. Route::post('close', 'PaymentController@close'); // 关闭支付单
  55. Route::get('getStatus', 'PaymentController@getStatus'); // 获取支付单状态
  56. Route::get('{trade_no}', 'PaymentController@detail'); // 支付单详情
  57. });
  58. });
  59. // 管理相关
  60. Route::middleware(['isForbidden', 'isAdminLogin', 'isAdmin'])->prefix('admin')->name('admin.')->group(function () {
  61. Route::get('/', 'AdminController@index')->name('index'); // 后台首页
  62. Route::any('profile', 'AdminController@profile')->name('profile'); // 修改个人信息
  63. Route::get('config', 'AdminController@config')->name('config'); // 系统设置
  64. Route::get('invite', 'AdminController@inviteList')->name('invite'); // 邀请码列表
  65. Route::post('invite', 'AdminController@makeInvite')->name('invite.create'); // 生成邀请码
  66. Route::get('Invite/export', 'AdminController@exportInvite')->name('invite.export'); // 导出邀请码
  67. Route::get('getPort', 'AdminController@getPort')->name('getPort'); // 生成端口
  68. Route::namespace('Admin')->group(function () {
  69. Route::resource('user', 'UserController')->except('show');
  70. Route::name('user.')->group(function () {
  71. Route::post('batchAdd', 'UserController@batchAddUsers')->name('batch'); // 批量生成账号
  72. Route::resource('group', 'UserGroupController')->except('show');// 用户分组管理
  73. Route::get('monitor/{id}', 'LogsController@userTrafficMonitor')->name('monitor'); // 用户流量监控
  74. Route::get("online/{id}", "LogsController@onlineIPMonitor")->name('online'); // 在线IP监控
  75. Route::post("switch", "UserController@switchToUser")->name('switch'); // 转换成某个用户的身份
  76. Route::post('updateCredit', 'UserController@handleUserCredit')->name('updateCredit'); // 用户余额充值
  77. Route::post('reset', 'UserController@resetTraffic')->name('reset'); // 重置用户流量
  78. Route::get('export/{id}', 'UserController@export')->name('export'); // 导出(查看)配置信息
  79. Route::post('export/{id}', 'UserController@exportProxyConfig')->name('exportProxy'); // 导出(查看)配置信息
  80. });
  81. Route::prefix('subscribe')->name('subscribe.')->group(function () {
  82. Route::get('/', 'SubscribeController@index')->name('index'); // 订阅码列表
  83. Route::get('log/{id}', 'SubscribeController@subscribeLog')->name('log'); // 订阅码记录
  84. Route::post('set/{id}', 'SubscribeController@setSubscribeStatus')->name('set'); // 启用禁用用户的订阅
  85. });
  86. Route::resource('ticket', 'TicketController')->except('create', 'show');
  87. Route::resource('article', 'ArticleController');
  88. Route::prefix('marketing')->name('marketing.')->group(function () {
  89. Route::get("email", "MarketingController@emailList")->name('email'); // 邮件消息列表
  90. Route::get("push", "MarketingController@pushList")->name('push'); // 推送消息列表
  91. Route::post("add", "MarketingController@addPushMarketing")->name('add'); // 推送消息
  92. });
  93. Route::resource('node', 'NodeController')->except('show');
  94. Route::prefix('node')->name('node.')->group(function () {
  95. Route::get('monitor/{id}', 'NodeController@nodeMonitor')->name('monitor'); // 节点流量监控
  96. Route::post('check/{id}', 'NodeController@checkNode')->name('check'); // 节点阻断检测
  97. Route::post('ping/{id}', 'NodeController@pingNode')->name('ping'); // 节点ping测速
  98. Route::get('pingLog', 'NodeController@pingLog')->name('pingLog'); // 节点Ping测速日志
  99. Route::get('refreshGeo/{id}', 'NodeController@refreshGeo')->name('geo'); // 更新节点
  100. Route::post('reload/{id}', 'NodeController@reload')->name('reload'); // 更新节点
  101. Route::prefix('auth')->name('auth.')->group(function () {
  102. Route::get('/', 'NodeController@authList')->name('index');
  103. Route::post('/', 'NodeController@addAuth')->name('store');
  104. Route::delete('{id}', 'NodeController@delAuth')->name('destroy');
  105. Route::put('{id}', 'NodeController@refreshAuth')->name('update');
  106. }); // 节点Api授权相关
  107. Route::resource('cert', 'CertController')->except('show'); // 节点域名tls相关
  108. });
  109. Route::resource('rule', 'RuleController')->except('create', 'edit', 'show');// 节点审计规则管理
  110. Route::name('rule.')->prefix('rule')->group(function () {
  111. Route::resource('group', 'RuleGroupController')->except('show');
  112. Route::name('group.')->prefix('group')->group(function () {
  113. Route::get('{id}/assign', 'RuleGroupController@assignNode')->name('editNode');
  114. Route::put('{id}/assign', 'RuleGroupController@assign')->name('assign'); // 规则分组关联节点
  115. });
  116. Route::get('log', 'RuleController@ruleLogList')->name('log'); // 用户触发审计规则日志
  117. Route::post('clear', 'RuleController@clearLog')->name('clear'); // 清除所有审计触发日志
  118. });
  119. Route::resource('goods', 'ShopController')->except('show');// 商品管理
  120. Route::resource('coupon', 'CouponController')->except('show', 'edit', 'update'); // 优惠券
  121. Route::get('coupon/export', 'CouponController@exportCoupon')->name('coupon.export'); // 导出优惠券
  122. Route::prefix('aff')->name('aff.')->group(function () {
  123. Route::get('/', 'AffiliateController@index')->name('index'); // 提现申请列表
  124. Route::get('detail/{id}', 'AffiliateController@detail')->name('detail'); // 提现申请详情
  125. Route::post('set', 'AffiliateController@setStatus')->name('setStatus'); // 设置提现申请状态
  126. Route::get('rebate', 'AffiliateController@rebate')->name('rebate'); // 返利流水记录
  127. });
  128. Route::get('order', 'LogsController@orderList')->name('order'); // 订单列表
  129. Route::prefix('log')->name('log.')->group(function () {
  130. Route::get('traffic', 'LogsController@trafficLog')->name('traffic'); // 流量日志
  131. Route::get('userCredit', 'LogsController@userCreditLogList')->name('credit'); // 余额变动记录
  132. Route::get('userTraffic', 'LogsController@userTrafficLogList')->name('flow'); // 流量变动记录
  133. Route::get('userBan', 'LogsController@userBanLogList')->name('ban'); // 用户封禁记录
  134. Route::get('userOnline', 'LogsController@userOnlineIPList')->name('ip'); // 用户在线IP记录
  135. Route::get("onlineIPMonitor", "LogsController@onlineIPMonitor")->name('online'); // 在线IP监控
  136. Route::get('notification', 'LogsController@notificationLog')->name('notify'); // 邮件发送日志
  137. });
  138. Route::get("payment/callbackList", "LogsController@callbackList")->name('payment.callback'); // 支付回调日志
  139. // 工具相关
  140. Route::prefix('tools')->name('tools.')->group(function () {
  141. Route::any("decompile", "ToolsController@decompile")->name('decompile'); // SS(R)链接反解析
  142. Route::get('download', 'ToolsController@download')->name('download'); // 下载转换过的JSON配置
  143. Route::any('convert', 'ToolsController@convert')->name('convert'); // 格式转换
  144. Route::any('import', 'ToolsController@import')->name('import'); // 数据导入
  145. Route::get('analysis', 'ToolsController@analysis')->name('analysis'); // 日志分析
  146. });
  147. Route::prefix('config')->name('config.')->namespace('Config')->group(function () {
  148. Route::resource('country', 'CountryController')->only('store', 'update', 'destroy'); // 等级配置
  149. Route::resource('filter', 'EmailFilterController')->only('index', 'store', 'destroy'); // 邮箱过滤
  150. Route::resource('label', 'LabelController')->only('store', 'update', 'destroy'); // 标签配置
  151. Route::resource('level', 'LevelController')->only('store', 'update', 'destroy'); // 等级配置
  152. Route::resource('ss', 'SsConfigController')->only('store', 'update', 'destroy'); // ss配置
  153. });
  154. Route::get('system', 'SystemController@index')->name('system'); // 系统设置
  155. Route::post('setExtend', 'SystemController@setExtend')->name('system.extend'); // 设置客服、统计代码
  156. Route::post('setConfig', 'SystemController@setConfig')->name('system.update'); // 设置某个配置项
  157. Route::post('sendTestNotification', 'SystemController@sendTestNotification')->name('test.notify'); //推送通知测试
  158. Route::get('epayInfo', 'Gateway\EPay@queryInfo')->name('test.epay');// 易支付信息
  159. });
  160. Route::get('logs', '\Rap2hpoutre\LaravelLogViewer\LogViewerController@index')->name('log.viewer'); // 系统运行日志
  161. });