route.php 55 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | ThinkPHP [ WE CAN DO IT JUST THINK ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  8. // +----------------------------------------------------------------------
  9. // | Author: liu21st <liu21st@gmail.com>
  10. // +----------------------------------------------------------------------
  11. use think\captcha\Captcha;
  12. use think\facade\Route;
  13. use Lettered\Support\Exceptions\ForbiddenException;
  14. Route::rule("/ping",function (){
  15. // halt(sys_config('', 'store'));
  16. // push_socket_data('goods',[
  17. // 'id' => '9898',
  18. // 'msg' => '测试数据,无需操作!'
  19. // ]);
  20. return json([
  21. 'code' => 0,
  22. 'message' => 'pong',
  23. 'data' => [
  24. ]
  25. ]);
  26. });
  27. //Miss 路由开启后,默认的普通模式也将无法访问
  28. Route::miss(function () {
  29. // throw new ForbiddenException([
  30. // 'errmsg' => 'Evident: Please contact a technician for help!'
  31. // ]);
  32. });
  33. // API
  34. Route::group('api',function (){
  35. //Route::domain('api',function (){
  36. // API V1
  37. Route::group(':ver',function () {
  38. // Route::any('/',function(){
  39. // return json([
  40. // 'code' => -1,
  41. // 'message' => '非法访问!'
  42. // ]);
  43. // });
  44. // 司机端 公共
  45. Route::group('taxiuser',function () {
  46. // 登录
  47. Route::post('/login','api/:ver.taxiUser.Auth/login');
  48. // 司机找回密码
  49. Route::post('/forget','api/:ver.taxiUser.Auth/forget');
  50. // 验证码
  51. Route::any('/sms','api/:ver.taxiUser.Auth/sms');
  52. // 文件上传
  53. Route::post('upload','api/:ver.taxiUser.User/uploadUserFile');
  54. });
  55. // 公共
  56. Route::group('common',function (){
  57. Route::get('/call','api/:ver.common/motorAgentPhone');
  58. Route::get('/demo','api/:ver.common/demo');
  59. });
  60. // 发送验证码
  61. Route::any('smscode',function ($mobile){
  62. $sms = new \app\api\service\SmsCode();
  63. if ($sms->send($mobile)){
  64. return json([
  65. 'code' => 0,
  66. 'message' => '发送成功!'
  67. ]);
  68. }
  69. return json([
  70. 'code' => -1,
  71. 'message' => '发送失败!' . $mobile
  72. ]);
  73. })->header('Access-Control-Allow-Origin', '*')
  74. ->header('Access-Control-Allow-Methods', 'GET,POST,OPTIONS,PUT,DELETE,PATCH,Origin')
  75. ->header('Access-Control-Allow-Credentials', 'true')
  76. ->allowCrossDomain();
  77. // 系统信息
  78. Route::group('system',function (){
  79. // 公告
  80. Route::get('notice$','api/:ver.System/getNoticeList');
  81. Route::get('notice/:id','api/:ver.System/getNoticeInfo');
  82. // 关于我们
  83. Route::get('about','api/:ver.System/getAbout');
  84. // 获取配置
  85. Route::get('setting','api/:ver.System/getSetting');
  86. });
  87. // 微信
  88. Route::group('wechat', function () {
  89. // getSession -- 只进行session_key、openId 获取操作
  90. Route::get("getSession","api/:ver.Wechat/getSession");
  91. // 用户登录
  92. Route::post("login","api/:ver.Wechat/login");
  93. // 手机号
  94. Route::post("mobile","api/:ver.Wechat/mobile")->middleware(['JWTAuthMiddleware']);
  95. // 推广二维码
  96. Route::get('spread','api/:ver.Wechat/getShareSpread')->middleware(['JWTAuthMiddleware']);
  97. // 统一支付
  98. Route::get("payment","api/:ver.Wechat/payment");
  99. Route::get("repay","api/:ver.Wechat/repay");
  100. Route::get("refund","api/:ver.Wechat/refund");
  101. // 支付通知
  102. Route::post("notify","api/:ver.Wechat/paymentNotify");
  103. });
  104. // banner
  105. Route::get('banner/:id', 'api/:ver.Banner/getBannerByID');
  106. // 商家
  107. Route::group('store',function (){
  108. Route::get('nearby','api/:ver.Store/getNearbyCol'); // 附近的商户
  109. Route::get('/:id','api/:ver.Store/getStoreByID')->pattern(['id' => '\d+']); // 商户详情
  110. });
  111. // 店铺或摊点
  112. Route::group('stores',function (){
  113. // 摩的订单
  114. Route::get('nearby', 'api/:ver.Stores/getNearbyCol'); // 我的服务单
  115. Route::get('/:id', 'api/:ver.Stores/getStoreByID'); // 购买服务
  116. });
  117. // 商品
  118. Route::group('goods', function (){
  119. Route::get('category','api/:ver.Goods/getCategory'); // 首页分类
  120. Route::get('search','api/:ver.Goods/getGoodsBySearch'); // 首页搜索
  121. Route::get('collage','api/:ver.Goods/getCollageByHome'); // 首页拼团推荐
  122. Route::get('by_seller/:id','api/:ver.Goods/getGoodsBySellerId')->pattern(['id' => '\d+']); // 商户下的产品列表
  123. Route::get('/:id','api/:ver.Goods/getGoodsByID')->pattern(['id' => '\d+']); // 商品详情
  124. Route::get('/sku/:id','api/:ver.Goods/getGoodsSkuByID')->pattern(['id' => '\d+']);
  125. Route::get('/group/:id','api/:ver.Goods/getGroupOrderByID')->pattern(['id' => '\d+']);
  126. });
  127. // 技能
  128. Route::get('skill/nearby','api/:ver.Skill/getNearby');
  129. Route::get('skill/:id','api/:ver.Skill/getSkillByID')->pattern(['id' => '\d+']);
  130. // 救援
  131. Route::get('rescue/nearby','api/:ver.Rescue/getNearby');
  132. Route::get('rescue/:id','api/:ver.Rescue/getRescueByID')->pattern(['id' => '\d+']);
  133. // 摩的
  134. Route::get('taxi/nearby','api/:ver.Taxi/getNearby');
  135. Route::get('taxi/:id','api/:ver.Taxi/getTaxiByID')->pattern(['id' => '\d+']);
  136. // 同城叫车分类
  137. Route::get('taxi_service_category/index','api/:ver.TaxiServiceCategory/index');
  138. // 配送
  139. Route::get('mission/nearby','api/:ver.Mission/getNearby');
  140. Route::get('mission/:id','api/:ver.Mission/getMissionByID')->pattern(['id' => '\d+']);
  141. // 田地
  142. Route::get('farmland/nearby','api/:ver.farmland/getNearby');
  143. Route::get('farmland/:id','api/:ver.farmland/getDetailByID')->pattern(['id' => '\d+']);
  144. Route::get('farmland/block/:id','api/:ver.farmland/getFarmBlockVarietyByID')->pattern(['id' => '\d+']);
  145. // 鉴权
  146. Route::group('/',function (){
  147. // 用户
  148. Route::group('user',function (){
  149. // 文件上传
  150. Route::post('upload','api/:ver.User/uploadUserFile');
  151. // 个人中心数据
  152. Route::get('ucenter','api/:ver.User/getUserCenter');
  153. // 信息更新
  154. Route::put('info','api/:ver.User/updateUserInfo');
  155. // 资金提现
  156. Route::post('withdraw','api/:ver.User/userWithdraw');
  157. // 资金记录
  158. Route::get('balance','api/:ver.User/getUserBalance');
  159. // 认证
  160. Route::rule('verify','api/:ver.User/userVerify');
  161. // 地址 -- 资源路由
  162. Route::resource('addr','api/:ver.Address');
  163. // 入驻
  164. Route::rule('joinin','api/:ver.User/joinInStore');
  165. // 扫码登录
  166. Route::post('auth','seller/Auth/auth');
  167. // 我的代理
  168. Route::get('agent$','api/:ver.User/userAgent');
  169. // 代理月统计
  170. Route::get('agentMonth','api/:ver.User/userAgentMonth');
  171. // 申请代理
  172. Route::post('agentApply','api/:ver.User/userAgentApply');
  173. // 配送员
  174. Route::rule('deliveryApply','api/:ver.User/deliveryApply');
  175. });
  176. // 司机端 授权
  177. Route::group('taxiuser',function () {
  178. // 登录
  179. Route::post('/userInfo','api/:ver.taxiUser.User/info');
  180. // 修改密码
  181. Route::post('/modify','api/:ver.taxiUser.Auth/modify');
  182. // 提现记录
  183. Route::post('/withdrawLog','api/:ver.taxiUser.User/withdrawLog');
  184. // 提现
  185. Route::post('/withdraw','api/:ver.taxiUser.User/withdraw');
  186. // 资产明细
  187. Route::post('/accountLog','api/:ver.taxiUser.User/accountLog');
  188. // 订单大厅
  189. Route::post('/order','api/:ver.taxiUser.Order/index');
  190. // 我的订单
  191. Route::post('/myOrder','api/:ver.taxiUser.Order/myOrder');
  192. // 等待服务订单
  193. Route::post('/waitOrder','api/:ver.taxiUser.Order/waitOrder');
  194. // 接单
  195. Route::post('/receive','api/:ver.taxiUser.Order/receive');
  196. // 确认订单
  197. Route::post('/delivered','api/:ver.taxiUser.Order/delivered');
  198. });
  199. // 商品
  200. Route::group('goods',function (){
  201. // 红包
  202. Route::get('unrebate','api/:ver.Goods/getUnrebate');
  203. // 普通商品订单
  204. Route::post('order', 'api/:ver.Goods/placeOrder');
  205. // 支付
  206. Route::get('payload','api/:ver.Goods/payload');
  207. // 产品订单
  208. Route::group('my',function (){
  209. // 领取拼单返现红包
  210. Route::get('order/get_rebate','api/:ver.Goods/getRebateByID');
  211. // TODO 可以 做同一路由
  212. // 订单售后
  213. Route::rule('order/:id/service','api/:ver.Goods/applyOrderService')->pattern(['id' => '\d+']);
  214. // 取消订单
  215. Route::post('order/:id/cancel','api/:ver.Goods/cancelOrderByID')->pattern(['id' => '\d+']);
  216. // 确认订单
  217. Route::post('order/:id/confirm','api/:ver.Goods/confirmOrderByID')->pattern(['id' => '\d+']);
  218. Route::get('order/:id$', 'api/:ver.Goods/getOrderByID')->pattern(['id' => '\d+']); // 订单详情
  219. Route::get('order/:action$', 'api/:ver.Goods/getUserOrder'); // 我的订单
  220. });
  221. // 特殊
  222. Route::group('act', function (){
  223. Route::post('collage','api/:ver.Goods/placeCollageOrder'); // 发起拼单
  224. //TODO 其他
  225. });
  226. });
  227. // 技能
  228. Route::group('skill',function (){
  229. // 摩的订单
  230. Route::group('my',function (){
  231. Route::get('order', 'api/:ver.Skill/order'); // 我的服务单
  232. Route::post('serve', 'api/:ver.Skill/userServe'); // 购买服务
  233. });
  234. });
  235. // 救援
  236. Route::group('rescue',function (){
  237. // 摩的订单
  238. Route::group('my',function (){
  239. Route::get('order', 'api/:ver.Rescue/order'); // 我的服务单
  240. Route::post('serve', 'api/:ver.Rescue/userServe'); // 购买服务
  241. });
  242. });
  243. // 技能
  244. Route::group('mission',function (){
  245. // 摩的订单
  246. Route::group('my',function (){
  247. Route::get('order', 'api/:ver.Mission/order'); // 我的服务单
  248. Route::post('serve', 'api/:ver.Mission/userServe'); // 购买服务
  249. });
  250. });
  251. // 摩的
  252. Route::group('taxi',function (){
  253. // 摩的订单
  254. Route::group('my',function (){
  255. Route::get('order', 'api/:ver.Taxi/order'); // 我的车单
  256. Route::get('taxiOrder', 'api/:ver.Taxi/taxiOrder'); // 我的车单详情
  257. Route::get('waitOrder', 'api/:ver.Taxi/waitOrder'); // 我的车单详情
  258. Route::post('call', 'api/:ver.Taxi/callTaxi'); // 呼叫车辆
  259. Route::post('newCall', 'api/:ver.Taxi/newCallTaxi'); // 呼叫车辆
  260. Route::post('cancel', 'api/:ver.Taxi/cancelOrder'); // 取消订单
  261. });
  262. Route::group('user',function (){
  263. Route::post('save', 'api/:ver.taxi.user/save');
  264. Route::get('read', 'api/:ver.taxi.user/read');
  265. Route::post('place', 'api/:ver.taxi.user/placeOrder');
  266. });
  267. Route::group('motor_record',function (){
  268. Route::get('index', 'api/:ver.taxi.motor_record/index');
  269. });
  270. });
  271. // 农田
  272. Route::group('farmland',function (){
  273. // 摩的订单
  274. Route::group('my',function (){
  275. Route::post('serve', 'api/:ver.Farmland/userServe'); // 购买服务
  276. Route::rule('shipping', 'api/:ver.Farmland/orderShipping','GET|POST'); // 我的服务单
  277. Route::get('order$', 'api/:ver.Farmland/order'); // 我的服务单
  278. Route::get('order/:id/detail', 'api/:ver.Farmland/orderDetail')->pattern(['id' => '\d+']); // 我的服务明细
  279. Route::get('order/:id/image', 'api/:ver.Farmland/orderDetailImage')->pattern(['id' => '\d+']); // 我的服务动态明细
  280. Route::post('order/:id/replace', 'api/:ver.Farmland/userServeChange')->pattern(['id' => '\d+']); // 替换种植
  281. });
  282. });
  283. // 摩的代理
  284. Route::group('motor_agent',function (){
  285. Route::post('save','api/:ver.user.motor_agent/save');
  286. Route::get('read','api/:ver.user.motor_agent/read');
  287. Route::post('place','api/:ver.user.motor_agent/placeOrder');
  288. });
  289. })->middleware(['JWTAuthMiddleware']);
  290. });
  291. })->allowCrossDomain();
  292. // 商家后台
  293. // 登录鉴权用 JWTAuthMiddleware
  294. Route::group('seller',function (){
  295. // 管理登录 -- 独立跨域处理,验证码处理
  296. Route::get('login','seller/Auth/login');
  297. Route::group('/',function (){
  298. // 店铺管理
  299. Route::rule('setting','seller/Index/setting','GET|POST');
  300. Route::rule('stat','seller/Index/getAgentStat','GET|POST');
  301. // Annex
  302. Route::group('annex', function (){
  303. Route::get('/$','seller/Annex/index');
  304. Route::post('/upload','seller/Annex/upload');
  305. Route::post('/ckeditor','seller/Annex/ckeditor');
  306. });
  307. // 获取统计信息
  308. Route::get('census','seller/Index/census');
  309. // 商品管理
  310. Route::group('goods',function (){
  311. // 规格
  312. Route::post('spec','seller/Goods/createSpec');
  313. Route::post('spec_value','seller/Goods/createSpecValue');
  314. // 获取产品规格
  315. Route::get('sku/:id','seller/Goods/getSkuById')->pattern(['id' => '\d+']);
  316. // 分类
  317. Route::group('category',function (){
  318. Route::get('/$','seller/Goods/categories'); // 列表
  319. Route::post('/create','seller/Goods/category'); // 新建
  320. Route::put('/update/:id','seller/Goods/updateCategory'); // 更新
  321. Route::delete('/delete/:id','seller/Goods/deleteCategory'); // 删除
  322. });
  323. });
  324. // 资源路由
  325. Route::resource('goods','seller/Goods');
  326. // 订单管理
  327. Route::group('orders',function (){
  328. Route::get('/service','seller/Order/getOrderService');
  329. // getOrderDetailById
  330. Route::get('/:id/detail','seller/Order/getOrderDetailById')->pattern(['id' => '\d+']);
  331. //Route::post('/:id/:action','seller/Order/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  332. Route::rule('/plectron','seller/Order/plectron')->pattern(['id' => '\d+']); // 批量订单
  333. });
  334. // 资源路由
  335. Route::resource('orders','seller/Order');
  336. // 财务管理
  337. Route::group('finance',function (){
  338. });
  339. })->middleware(['JWTAuthMiddleware']);
  340. })->middleware(['AttackCheckMiddleware'])->allowCrossDomain();
  341. // 后台管理
  342. // 登录鉴权用 JWTAuthMiddleware
  343. // 操作鉴权用 CasbinAuthMiddleware
  344. Route::group('manage',function (){
  345. // 独立验证码
  346. Route::get('/captcha',function (){
  347. $captcha = new Captcha(config('captcha.'));
  348. return $captcha->entry('manage');
  349. });
  350. // 清理缓存
  351. Route::get('clear',function (){
  352. exit(enjson(['code' => 10000, 'message' => '清理完成' , 'data' => \think\facade\Cache::clear()]));
  353. });
  354. // 管理登录 -- 独立跨域处理,验证码处理
  355. Route::post('login','admin/Auth/login')
  356. // ->header('Access-Control-Allow-Origin','http://manage.' . request()->rootDomain())
  357. ->header('Access-Control-Allow-Origin', 'http://'.request()->rootDomain().'/manage')
  358. ->header('Access-Control-Allow-Credentials', 'true')
  359. ->allowCrossDomain();
  360. // 导出信息
  361. Route::rule('export/:model', 'admin/store.System/exportDataSheet');
  362. // 站点配置
  363. Route::get('config','admin/system.Config/webconfig');
  364. // 后续都要加中间件 检查用户登录 Authorization
  365. Route::group('/',function (){
  366. // 登录用户信息
  367. Route::any('person', 'admin/auth.User/person');
  368. /********************** 以下是业务管理 *********************/
  369. // 会员管理
  370. Route::group('users',function (){
  371. // 批量操作
  372. Route::rule('plectron','admin/users.User/plectron','PUT|DELETE');
  373. // 恢复用户
  374. Route::post('/:id/restore','admin/users.User/restore');
  375. // 认证信息
  376. Route::rule('/:id/verify','admin/users.User/userVerify');
  377. // 代理信息
  378. Route::rule('/:id/agent','admin/users.User/userAgent');
  379. Route::rule('/:id/cancelAgent','admin/users.User/userCancelAgent');
  380. // 用户资金 20201211 添加资产的查询
  381. //Route::get('/:id/balance','admin/users.User/balanceRecord');
  382. Route::get('/:id/balance/:type','admin/users.User/balanceRecord');
  383. // 代理列表
  384. Route::get('agent','admin/users.User/getUserAgent');
  385. // 充值
  386. Route::post('recharge','admin/users.User/balanceRecharge');
  387. // 用户组管理
  388. Route::group('group',function () {
  389. // 恢复用户
  390. Route::post('/:id/restore', 'admin/users.Group/restore');
  391. });
  392. // 用户组资源路由
  393. Route::resource('group','admin/users.Group');
  394. // 用户关系表
  395. Route::rule('relation','admin/users.Relation/getRelation');
  396. // 摩的代理
  397. Route::group('motor_agent',function (){
  398. Route::get('/index', 'admin/users.motor_agent/index');
  399. Route::post('/check', 'admin/users.motor_agent/check');
  400. Route::get('/stats', 'admin/users.motor_agent/stats');
  401. Route::get('/create', 'admin/users.motor_agent/create');
  402. Route::post('/partnership', 'admin/users.motor_agent/partnership');
  403. Route::put('/update', 'admin/users.motor_agent/update');
  404. });
  405. // 摩的代理-提现
  406. Route::group('motor_agent_withdraw',function (){
  407. Route::get('/index', 'admin/users.motor_agent_withdraw/index');
  408. Route::post('/check', 'admin/users.motor_agent_withdraw/check');
  409. Route::get('/stats', 'admin/users.motor_agent_withdraw/stats');
  410. Route::get('/create', 'admin/users.motor_agent_withdraw/create');
  411. });
  412. });
  413. // 用户资源路由
  414. Route::resource('users','admin/users.User');
  415. // 代理
  416. Route::group('agent',function (){
  417. Route::group('agent',function (){
  418. Route::get('/index', 'admin/agent.agent/index');
  419. Route::get('/stats', 'admin/agent.agent/stats');
  420. Route::get('/personal', 'admin/agent.agent/personal');
  421. });
  422. });
  423. // 商城管理
  424. Route::group('store',function (){
  425. // 关于我们
  426. Route::rule('about','admin/store.System/about');
  427. // 数据统计
  428. Route::rule('/stat','admin/store.System/getAgentStat');
  429. // 商户管理
  430. Route::group('seller',function () {
  431. // 批量操作
  432. Route::rule('plectron','admin/store.Seller/plectron','PUT|DELETE');
  433. // 审核商户
  434. Route::post('/:id/allow', 'admin/store.Seller/allow');
  435. Route::post('/:id/refuse', 'admin/store.Seller/refuse');
  436. // 恢复商户
  437. Route::post('/:id/restore', 'admin/store.Seller/restore');
  438. });
  439. // 商户管理资源路由
  440. Route::resource('seller','admin/store.Seller');
  441. // 商品管理
  442. Route::group('product',function () {
  443. // 规格
  444. Route::post('spec','admin/store.Product/createSpec');
  445. Route::post('spec_value','admin/store.Product/createSpecValue');
  446. // 获取产品规格
  447. Route::get('sku/:id','admin/store.Product/getSkuById')->pattern(['id' => '\d+']);
  448. // 分类
  449. Route::group('category',function (){
  450. Route::get('/$','admin/store.Product/categories'); // 列表
  451. Route::post('/create','admin/store.Product/category'); // 新建
  452. Route::put('/update/:id','admin/store.Product/updateCategory'); // 更新
  453. Route::delete('/delete/:id','admin/store.Product/deleteCategory'); // 删除
  454. });
  455. // 订单
  456. Route::get('/order$','admin/store.Product/order'); // 订单列表
  457. Route::get('/order/:id/detail','admin/store.Product/getOrderDetailById'); // 删除订单
  458. // 订单处理
  459. // 售后
  460. Route::get('/service','admin/store.Product/getOrderService');
  461. // 单个操作
  462. Route::post('/service/:id/:action','admin/store.Product/actionServiceOrder')->pattern(['id' => '\d+']); // 操作订单
  463. Route::delete('/order/:id','admin/store.Product/deleteOrder'); // 删除订单
  464. Route::post('/order/:id/:action$','admin/store.Product/actionOrder')->pattern(['id' => '\d+']);
  465. // 操作订单
  466. Route::rule('/order/plectron','admin/store.Product/plectronOrder')->pattern(['id' => '\d+']);
  467. // 批量订单
  468. // 批量操作
  469. Route::rule('plectron','admin/store.Product/plectron','PUT|DELETE');
  470. });
  471. // 商户管理资源路由
  472. Route::resource('product','admin/store.Product');
  473. // 轮播图
  474. Route::group("banner",function (){
  475. Route::post('/item/create','admin/store.Banner/bannerItem'); // 新增
  476. Route::put('/item/update/:id','admin/store.Banner/updateBannerItem'); // 更新
  477. Route::delete('/item/delete/:id','admin/store.Banner/deleteBannerItem'); // 删除
  478. Route::rule('/item/plectron','admin/store.Banner/bannerItemPlectron','PUT|DELETE'); // 批量操作
  479. });
  480. Route::resource('banner','admin/store.Banner');
  481. // 摩的管理
  482. Route::group('taxi',function () {
  483. // 司机
  484. Route::group('user',function (){
  485. Route::get('/$','admin/store.Taxi/users'); // 司机列表
  486. Route::post('/create','admin/store.Taxi/createUser'); // 新增司机
  487. Route::put('/update/:id','admin/store.Taxi/updateUser'); // 更新司机
  488. Route::delete('/delete/:id','admin/store.Taxi/deleteUser'); // 删除司机
  489. });
  490. // 订单
  491. Route::group('order',function (){
  492. Route::get('/$','admin/store.Taxi/orders'); // 订单列表
  493. Route::delete('/:id','admin/store.Taxi/deleteOrder'); // 删除订单
  494. Route::post('/export','admin/store.Taxi/exportOrder'); // 导出订单
  495. Route::post('/:id/:action','admin/store.Taxi/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  496. Route::rule('/plectron','admin/store.Taxi/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  497. });
  498. // 分类
  499. Route::group('category',function (){
  500. Route::get('/$','admin/store.TaxiServiceCategory/index'); // 列表
  501. Route::post('/create','admin/store.TaxiServiceCategory/create'); // 新增
  502. Route::put('/update/:id','admin/store.TaxiServiceCategory/update'); // 更新
  503. Route::delete('/delete/:id','admin/store.TaxiServiceCategory/delete'); // 删除
  504. Route::put('/change/:id','admin/store.TaxiServiceCategory/change'); // 删除
  505. });
  506. // 批量操作
  507. Route::rule('plectron','admin/store.Taxi/plectron','PUT|DELETE');
  508. });
  509. // 摩的管理资源路由
  510. Route::resource('taxi','admin/store.Taxi');
  511. // 技能管理
  512. Route::group('skill',function () {
  513. // 师傅
  514. Route::group('user',function (){
  515. Route::get('/$','admin/store.Skill/users');
  516. Route::post('/create','admin/store.Skill/createUser');
  517. Route::put('/update/:id','admin/store.Skill/updateUser');
  518. Route::delete('/delete/:id','admin/store.Skill/deleteUser');
  519. // 批量操作
  520. Route::rule('/plectron','admin/store.Skill/plectronUser');
  521. });
  522. // 订单
  523. Route::group('order',function (){
  524. Route::get('/$','admin/store.Skill/orders'); // 订单列表
  525. Route::delete('/:id','admin/store.Skill/deleteOrder'); // 删除订单
  526. Route::post('/:id/:action','admin/store.Skill/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  527. Route::rule('/plectron','admin/store.Skill/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  528. });
  529. // 批量操作
  530. Route::rule('plectron','admin/store.Skill/plectron','PUT|DELETE');
  531. // 恢复商户
  532. Route::post('/:id/restore', 'admin/store.Skill/restore');
  533. });
  534. // 技能管理资源路由
  535. Route::resource('skill','admin/store.Skill');
  536. // 救援管理
  537. Route::group('rescue',function () {
  538. // 订单
  539. Route::group('order',function (){
  540. Route::get('/$','admin/store.Rescue/orders'); // 订单列表
  541. Route::delete('/:id','admin/store.Rescue/deleteOrder'); // 删除订单
  542. Route::post('/:id/:action','admin/store.Rescue/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  543. Route::rule('/plectron','admin/store.Rescue/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  544. });
  545. // 批量操作
  546. Route::rule('plectron','admin/store.Rescue/plectron','PUT|DELETE');
  547. // 恢复商户
  548. Route::post('/:id/restore', 'admin/store.Rescue/restore');
  549. });
  550. // 技能管理资源路由
  551. Route::resource('rescue','admin/store.Rescue');
  552. // 门店管理
  553. Route::group('stores',function () {
  554. // 批量操作
  555. Route::rule('plectron','admin/store.Stores/plectron','PUT|DELETE');
  556. // 恢复商户
  557. Route::post('/:id/restore', 'admin/store.Stores/restore');
  558. });
  559. // 门店管理
  560. Route::resource('stores','admin/store.Stores');
  561. // 接单管理
  562. Route::group('mission',function () {
  563. // 师傅
  564. Route::group('user',function (){
  565. Route::get('/$','admin/store.Mission/users');
  566. Route::post('/create','admin/store.Mission/createUser');
  567. Route::put('/:id','admin/store.Mission/updateUser');
  568. Route::delete('/:id','admin/store.Mission/deleteUser');
  569. // 批量操作
  570. Route::rule('/plectron','admin/store.Skill/plectronUser');
  571. });
  572. // 订单
  573. Route::group('order',function (){
  574. Route::get('/$','admin/store.Mission/orders'); // 订单列表
  575. Route::delete('/:id','admin/store.Mission/deleteOrder'); // 删除订单
  576. Route::post('/export','admin/store.Mission/exportOrder'); // 导出订单
  577. Route::post('/:id/:action','admin/store.Mission/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  578. Route::rule('/plectron','admin/store.Mission/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  579. });
  580. // 批量操作
  581. Route::rule('plectron','admin/store.Mission/plectron','PUT|DELETE');
  582. // 恢复商户
  583. Route::post('/:id/restore', 'admin/store.Mission/restore');
  584. });
  585. // 技能管理资源路由
  586. Route::resource('mission','admin/store.Mission');
  587. // 提现
  588. Route::group('withdraw',function (){
  589. // 批量操作
  590. Route::rule('/plectron','admin/store.Withdraw/plectron');
  591. });
  592. // 提现管理资源路由
  593. Route::resource('withdraw','admin/store.Withdraw');
  594. // 文章
  595. Route::group('article',function (){
  596. // 分类
  597. Route::group('category',function (){
  598. Route::get('/$','admin/store.Article/categories'); // 列表
  599. Route::post('/create','admin/store.Article/category'); // 新建
  600. Route::put('/update/:id','admin/store.Article/updateCategory'); // 更新
  601. Route::delete('/delete/:id','admin/store.Article/deleteCategory'); // 删除
  602. });
  603. });
  604. // 文章管理资源路由
  605. Route::resource('article','admin/store.Article');
  606. // 技能管理
  607. Route::group('farmland',function () {
  608. // 地块
  609. Route::group('block',function (){
  610. Route::get('/$','admin/store.Farmland/getFarmlandBlockData'); // 列表
  611. Route::post('/$','admin/store.Farmland/createFarmlandBlock'); // 新建
  612. Route::put('/:id$','admin/store.Farmland/updateFarmlandBlock')->pattern(['id' => '\d+']); // 更新
  613. Route::delete('/:id$','admin/store.Farmland/deleteFarmlandBlock')->pattern(['id' => '\d+']); // 删除
  614. });
  615. // 品种
  616. Route::group('variety',function (){
  617. Route::get('/$','admin/store.Farmland/getFarmlandVarietyData'); // 列表
  618. Route::post('/$','admin/store.Farmland/createFarmlandVariety'); // 新建
  619. Route::put('/:id$','admin/store.Farmland/updateFarmlandVariety')->pattern(['id' => '\d+']); // 更新
  620. Route::delete('/:id$','admin/store.Farmland/deleteFarmlandVariety')->pattern(['id' => '\d+']); // 删除
  621. });
  622. // 分类
  623. Route::group('class',function (){
  624. Route::get('/$','admin/store.Farmland/getClassData'); // 列表
  625. Route::post('/$','admin/store.Farmland/createClass'); // 新建
  626. Route::put('/:id$','admin/store.Farmland/updateClass')->pattern(['id' => '\d+']); // 更新
  627. Route::delete('/:id$','admin/store.Farmland/deleteClass')->pattern(['id' => '\d+']); // 删除
  628. });
  629. // 分类
  630. Route::group('detail',function (){
  631. Route::get('/$','admin/store.Farmland/getFarmlandDetail'); // 列表
  632. Route::post('/$','admin/store.Farmland/createFarmlandDetail'); // 新建
  633. Route::put('/:id$','admin/store.Farmland/updateFarmlandDetail')->pattern(['id' => '\d+']); // 更新
  634. Route::delete('/:id$','admin/store.Farmland/deleteFarmlandDetail')->pattern(['id' => '\d+']); // 删除
  635. });
  636. // 订单
  637. Route::group('order',function (){
  638. Route::get('/$','admin/store.Farmland/orders'); // 订单列表
  639. Route::delete('/:id$','admin/store.Farmland/deleteOrder'); // 删除订
  640. Route::rule('/:id/shipping','admin/store.Farmland/orderShipping','GET|POST'); // 订单采摘列表
  641. Route::post('/:id/shipping','admin/store.Farmland/orderShipping'); // 订单采摘列表
  642. Route::rule('/:id/detail','admin/store.Farmland/orderDetail','GET|POST'); // 订单品种列表
  643. Route::rule('/detail/[:id]','admin/store.Farmland/orderDetailAction'); // 更新动态
  644. Route::rule('/:id/image','admin/store.Farmland/orderImage','GET|POST'); // 订单动态列表
  645. Route::rule('/image/[:id]','admin/store.Farmland/orderImageAction'); // 更新动态
  646. Route::post('/:id/:action','admin/store.Farmland/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  647. Route::rule('/plectron','admin/store.Farmland/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  648. });
  649. // 批量操作
  650. Route::rule('plectron','admin/store.Farmland/plectron','PUT|DELETE');
  651. });
  652. // 技能管理资源路由
  653. Route::resource('farmland','admin/store.Farmland');
  654. });
  655. Route::group('taxi',function (){
  656. Route::group('user',function () {
  657. Route::post('/check', 'admin/taxi.user/check');
  658. Route::post('/partnership', 'admin/taxi.user/partnership');
  659. });
  660. });
  661. /********************** 以下是系统管理 *********************/
  662. // permission
  663. Route::group('permission',function (){
  664. // permission
  665. Route::resource('perm','admin/auth.Permission');
  666. // 用户
  667. Route::group('users',function (){
  668. Route::get('/:id/roles', 'admin/auth.User/roles');
  669. // 批量操作
  670. Route::rule('plectron','admin/auth.User/plectron','PUT|DELETE');
  671. // 恢复用户
  672. Route::post('/:id/restore','admin/auth.User/restore');
  673. });
  674. Route::resource('users','admin/auth.User');
  675. // roles
  676. Route::group('roles',function (){
  677. Route::get('perm/:id', 'admin/auth.Role/permission');
  678. Route::put('auth/:id', 'admin/auth.Role/authority');
  679. });
  680. Route::resource('roles','admin/auth.Role');
  681. });
  682. // system
  683. Route::group('system',function (){
  684. // DataDictionary
  685. Route::group('database',function (){
  686. Route::get('/$', 'admin/system.DataDictionary/tables');
  687. Route::get('/:table', 'admin/system.DataDictionary/view');
  688. Route::post('optimize', 'admin/system.DataDictionary/optimize');
  689. Route::post('backup', 'admin/system.DataDictionary/backup');
  690. });
  691. // Setting
  692. Route::get('/setting','admin/system.Setting/index');
  693. Route::put('/setting/:group','admin/system.Setting/update');
  694. // Config
  695. Route::group('config',function (){
  696. Route::rule('/plectron','admin/system.Config/plectron','PUT|DELETE');
  697. });
  698. Route::resource('config','admin/system.Config');
  699. // Annex
  700. Route::group('annex', function (){
  701. Route::get('/$','admin/system.Annex/index');
  702. Route::post('/upload','admin/system.Annex/upload');
  703. Route::post('/ckeditor','admin/system.Annex/ckeditor');
  704. // 文件/文件夹操作
  705. Route::any('/operation','admin/system.Annex/operation');
  706. });
  707. // OperationLog
  708. Route::get('/operation','admin/system.OperationLog/index');
  709. Route::post('/operation/clear','admin/system.OperationLog/clear');
  710. });
  711. })->middleware(['JWTAuthMiddleware','CasbinAuthMiddleware']);
  712. })->middleware(['AttackCheckMiddleware'])->allowCrossDomain();
  713. // 代理后台管理
  714. // 登录鉴权用 JWTAuthMiddleware
  715. // 操作鉴权用 CasbinAuthMiddleware
  716. Route::group('agent',function (){
  717. // 独立验证码
  718. Route::get('/captcha',function (){
  719. $captcha = new Captcha(config('captcha.'));
  720. return $captcha->entry('manage');
  721. });
  722. // 清理缓存
  723. Route::get('clear',function (){
  724. exit(enjson(['code' => 10000, 'message' => '清理完成' , 'data' => \think\facade\Cache::clear()]));
  725. });
  726. // 管理登录 -- 独立跨域处理,验证码处理
  727. Route::post('login','agent/Auth/login')
  728. ->header('Access-Control-Allow-Origin', 'http://'.request()->rootDomain().'/agent')
  729. ->header('Access-Control-Allow-Credentials', 'true')
  730. ->allowCrossDomain();
  731. // 导出信息
  732. Route::rule('export/:model', 'agent/store.System/exportDataSheet');
  733. // 站点配置
  734. Route::get('config','agent/system.Config/webconfig');
  735. // 后续都要加中间件 检查用户登录 Authorization
  736. Route::group('/',function (){
  737. // 登录用户信息
  738. Route::any('person', 'agent/auth.user/person');
  739. /********************** 以下是业务管理 *********************/
  740. Route::group('order',function (){
  741. Route::group('/goods',function (){
  742. Route::get('/index', 'agent/order.goods/index');
  743. });
  744. Route::group('/mission',function (){
  745. Route::get('/index', 'agent/order.mission/index');
  746. });
  747. Route::group('/skill',function (){
  748. Route::get('/index', 'agent/order.skill/index');
  749. });
  750. Route::group('/taxi',function (){
  751. Route::get('/index', 'agent/order.taxi/index');
  752. Route::post('/dispense', 'agent/order.taxi/dispense');
  753. Route::post('/complete', 'agent/order.taxi/complete');
  754. Route::delete('/delete', 'agent/order.taxi/delete');
  755. });
  756. });
  757. // 商城管理
  758. Route::group('store',function (){
  759. // 关于我们
  760. Route::rule('about','admin/store.System/about');
  761. // 数据统计
  762. Route::rule('/stats','agent/finance.stats/index');
  763. // 商户管理
  764. Route::group('seller',function () {
  765. // 批量操作
  766. Route::rule('plectron','admin/store.Seller/plectron','PUT|DELETE');
  767. // 审核商户
  768. Route::post('/:id/allow', 'admin/store.Seller/allow');
  769. Route::post('/:id/refuse', 'admin/store.Seller/refuse');
  770. // 恢复商户
  771. Route::post('/:id/restore', 'admin/store.Seller/restore');
  772. });
  773. // 商户管理资源路由
  774. Route::resource('seller','admin/store.Seller');
  775. // 商品管理
  776. Route::group('product',function () {
  777. // 规格
  778. Route::post('spec','admin/store.Product/createSpec');
  779. Route::post('spec_value','admin/store.Product/createSpecValue');
  780. // 获取产品规格
  781. Route::get('sku/:id','admin/store.Product/getSkuById')->pattern(['id' => '\d+']);
  782. // 分类
  783. Route::group('category',function (){
  784. Route::get('/$','admin/store.Product/categories'); // 列表
  785. Route::post('/create','admin/store.Product/category'); // 新建
  786. Route::put('/update/:id','admin/store.Product/updateCategory'); // 更新
  787. Route::delete('/delete/:id','admin/store.Product/deleteCategory'); // 删除
  788. });
  789. // 订单
  790. Route::get('/order$','admin/store.Product/order'); // 订单列表
  791. Route::get('/order/:id/detail','admin/store.Product/getOrderDetailById'); // 删除订单
  792. // 订单处理
  793. // 售后
  794. Route::get('/service','admin/store.Product/getOrderService');
  795. // 单个操作
  796. Route::post('/service/:id/:action','admin/store.Product/actionServiceOrder')->pattern(['id' => '\d+']); // 操作订单
  797. Route::delete('/order/:id','admin/store.Product/deleteOrder'); // 删除订单
  798. Route::post('/order/:id/:action$','admin/store.Product/actionOrder')->pattern(['id' => '\d+']);
  799. // 操作订单
  800. Route::rule('/order/plectron','admin/store.Product/plectronOrder')->pattern(['id' => '\d+']);
  801. // 批量订单
  802. // 批量操作
  803. Route::rule('plectron','admin/store.Product/plectron','PUT|DELETE');
  804. });
  805. // 商户管理资源路由
  806. Route::resource('product','admin/store.Product');
  807. // 轮播图
  808. Route::group("banner",function (){
  809. Route::post('/item/create','admin/store.Banner/bannerItem'); // 新增
  810. Route::put('/item/update/:id','admin/store.Banner/updateBannerItem'); // 更新
  811. Route::delete('/item/delete/:id','admin/store.Banner/deleteBannerItem'); // 删除
  812. Route::rule('/item/plectron','admin/store.Banner/bannerItemPlectron','PUT|DELETE'); // 批量操作
  813. });
  814. Route::resource('banner','admin/store.Banner');
  815. // 摩的管理
  816. Route::group('taxi',function () {
  817. // 司机
  818. Route::group('user',function (){
  819. Route::get('/$','admin/store.Taxi/users'); // 司机列表
  820. Route::post('/create','admin/store.Taxi/createUser'); // 新增司机
  821. Route::put('/update/:id','admin/store.Taxi/updateUser'); // 更新司机
  822. Route::delete('/delete/:id','admin/store.Taxi/deleteUser'); // 删除司机
  823. });
  824. // 订单
  825. Route::group('order',function (){
  826. Route::get('/$','admin/store.Taxi/orders'); // 订单列表
  827. Route::delete('/:id','admin/store.Taxi/deleteOrder'); // 删除订单
  828. Route::post('/export','admin/store.Taxi/exportOrder'); // 导出订单
  829. Route::post('/:id/:action','admin/store.Taxi/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  830. Route::rule('/plectron','admin/store.Taxi/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  831. });
  832. // 分类
  833. Route::group('category',function (){
  834. Route::get('/$','admin/store.TaxiServiceCategory/index'); // 列表
  835. Route::post('/create','admin/store.TaxiServiceCategory/create'); // 新增
  836. Route::put('/update/:id','admin/store.TaxiServiceCategory/update'); // 更新
  837. Route::delete('/delete/:id','admin/store.TaxiServiceCategory/delete'); // 删除
  838. Route::put('/change/:id','admin/store.TaxiServiceCategory/change'); // 删除
  839. });
  840. // 批量操作
  841. Route::rule('plectron','admin/store.Taxi/plectron','PUT|DELETE');
  842. });
  843. // 摩的管理资源路由
  844. Route::resource('taxi','admin/store.Taxi');
  845. // 技能管理
  846. Route::group('skill',function () {
  847. // 师傅
  848. Route::group('user',function (){
  849. Route::get('/$','admin/store.Skill/users');
  850. Route::post('/create','admin/store.Skill/createUser');
  851. Route::put('/update/:id','admin/store.Skill/updateUser');
  852. Route::delete('/delete/:id','admin/store.Skill/deleteUser');
  853. // 批量操作
  854. Route::rule('/plectron','admin/store.Skill/plectronUser');
  855. });
  856. // 订单
  857. Route::group('order',function (){
  858. Route::get('/$','admin/store.Skill/orders'); // 订单列表
  859. Route::delete('/:id','admin/store.Skill/deleteOrder'); // 删除订单
  860. Route::post('/:id/:action','admin/store.Skill/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  861. Route::rule('/plectron','admin/store.Skill/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  862. });
  863. // 批量操作
  864. Route::rule('plectron','admin/store.Skill/plectron','PUT|DELETE');
  865. // 恢复商户
  866. Route::post('/:id/restore', 'admin/store.Skill/restore');
  867. });
  868. // 技能管理资源路由
  869. Route::resource('skill','admin/store.Skill');
  870. // 救援管理
  871. Route::group('rescue',function () {
  872. // 订单
  873. Route::group('order',function (){
  874. Route::get('/$','admin/store.Rescue/orders'); // 订单列表
  875. Route::delete('/:id','admin/store.Rescue/deleteOrder'); // 删除订单
  876. Route::post('/:id/:action','admin/store.Rescue/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  877. Route::rule('/plectron','admin/store.Rescue/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  878. });
  879. // 批量操作
  880. Route::rule('plectron','admin/store.Rescue/plectron','PUT|DELETE');
  881. // 恢复商户
  882. Route::post('/:id/restore', 'admin/store.Rescue/restore');
  883. });
  884. // 技能管理资源路由
  885. Route::resource('rescue','admin/store.Rescue');
  886. // 接单管理
  887. Route::group('mission',function () {
  888. // 师傅
  889. Route::group('user',function (){
  890. Route::get('/$','admin/store.Mission/users');
  891. Route::post('/create','admin/store.Mission/createUser');
  892. Route::put('/:id','admin/store.Mission/updateUser');
  893. Route::delete('/:id','admin/store.Mission/deleteUser');
  894. // 批量操作
  895. Route::rule('/plectron','admin/store.Skill/plectronUser');
  896. });
  897. // 订单
  898. Route::group('order',function (){
  899. Route::get('/$','admin/store.Mission/orders'); // 订单列表
  900. Route::delete('/:id','admin/store.Mission/deleteOrder'); // 删除订单
  901. Route::post('/export','admin/store.Mission/exportOrder'); // 导出订单
  902. Route::post('/:id/:action','admin/store.Mission/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  903. Route::rule('/plectron','admin/store.Mission/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  904. });
  905. // 批量操作
  906. Route::rule('plectron','admin/store.Mission/plectron','PUT|DELETE');
  907. // 恢复商户
  908. Route::post('/:id/restore', 'admin/store.Mission/restore');
  909. });
  910. // 技能管理资源路由
  911. Route::resource('mission','admin/store.Mission');
  912. // 提现
  913. Route::group('withdraw',function (){
  914. // 批量操作
  915. Route::rule('/plectron','admin/store.Withdraw/plectron');
  916. });
  917. // 提现管理资源路由
  918. Route::resource('withdraw','admin/store.Withdraw');
  919. // 文章
  920. Route::group('article',function (){
  921. // 分类
  922. Route::group('category',function (){
  923. Route::get('/$','admin/store.Article/categories'); // 列表
  924. Route::post('/create','admin/store.Article/category'); // 新建
  925. Route::put('/update/:id','admin/store.Article/updateCategory'); // 更新
  926. Route::delete('/delete/:id','admin/store.Article/deleteCategory'); // 删除
  927. });
  928. });
  929. // 文章管理资源路由
  930. Route::resource('article','admin/store.Article');
  931. // 技能管理
  932. Route::group('farmland',function () {
  933. // 地块
  934. Route::group('block',function (){
  935. Route::get('/$','admin/store.Farmland/getFarmlandBlockData'); // 列表
  936. Route::post('/$','admin/store.Farmland/createFarmlandBlock'); // 新建
  937. Route::put('/:id$','admin/store.Farmland/updateFarmlandBlock')->pattern(['id' => '\d+']); // 更新
  938. Route::delete('/:id$','admin/store.Farmland/deleteFarmlandBlock')->pattern(['id' => '\d+']); // 删除
  939. });
  940. // 品种
  941. Route::group('variety',function (){
  942. Route::get('/$','admin/store.Farmland/getFarmlandVarietyData'); // 列表
  943. Route::post('/$','admin/store.Farmland/createFarmlandVariety'); // 新建
  944. Route::put('/:id$','admin/store.Farmland/updateFarmlandVariety')->pattern(['id' => '\d+']); // 更新
  945. Route::delete('/:id$','admin/store.Farmland/deleteFarmlandVariety')->pattern(['id' => '\d+']); // 删除
  946. });
  947. // 分类
  948. Route::group('class',function (){
  949. Route::get('/$','admin/store.Farmland/getClassData'); // 列表
  950. Route::post('/$','admin/store.Farmland/createClass'); // 新建
  951. Route::put('/:id$','admin/store.Farmland/updateClass')->pattern(['id' => '\d+']); // 更新
  952. Route::delete('/:id$','admin/store.Farmland/deleteClass')->pattern(['id' => '\d+']); // 删除
  953. });
  954. // 分类
  955. Route::group('detail',function (){
  956. Route::get('/$','admin/store.Farmland/getFarmlandDetail'); // 列表
  957. Route::post('/$','admin/store.Farmland/createFarmlandDetail'); // 新建
  958. Route::put('/:id$','admin/store.Farmland/updateFarmlandDetail')->pattern(['id' => '\d+']); // 更新
  959. Route::delete('/:id$','admin/store.Farmland/deleteFarmlandDetail')->pattern(['id' => '\d+']); // 删除
  960. });
  961. // 订单
  962. Route::group('order',function (){
  963. Route::get('/$','admin/store.Farmland/orders'); // 订单列表
  964. Route::delete('/:id$','admin/store.Farmland/deleteOrder'); // 删除订
  965. Route::rule('/:id/shipping','admin/store.Farmland/orderShipping','GET|POST'); // 订单采摘列表
  966. Route::post('/:id/shipping','admin/store.Farmland/orderShipping'); // 订单采摘列表
  967. Route::rule('/:id/detail','admin/store.Farmland/orderDetail','GET|POST'); // 订单品种列表
  968. Route::rule('/detail/[:id]','admin/store.Farmland/orderDetailAction'); // 更新动态
  969. Route::rule('/:id/image','admin/store.Farmland/orderImage','GET|POST'); // 订单动态列表
  970. Route::rule('/image/[:id]','admin/store.Farmland/orderImageAction'); // 更新动态
  971. Route::post('/:id/:action','admin/store.Farmland/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  972. Route::rule('/plectron','admin/store.Farmland/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  973. });
  974. // 批量操作
  975. Route::rule('plectron','admin/store.Farmland/plectron','PUT|DELETE');
  976. });
  977. // 技能管理资源路由
  978. Route::resource('farmland','admin/store.Farmland');
  979. });
  980. // 财务管理
  981. Route::group('finance',function (){
  982. // 明细
  983. Route::group('/log',function (){
  984. Route::get('/index', 'agent/finance.log/index');
  985. });
  986. Route::group('/withdraw',function (){
  987. Route::get('/index', 'agent/finance.withdraw/index');
  988. Route::get('/log', 'agent/finance.withdraw/log');
  989. Route::post('/save', 'agent/finance.withdraw/save');
  990. Route::put('/update', 'agent/finance.withdraw/update');
  991. Route::delete('/delete', 'agent/finance.withdraw/delete');
  992. });
  993. });
  994. /********************** 以下是系统管理 *********************/
  995. // permission
  996. Route::group('permission',function (){
  997. // permission
  998. Route::resource('perm','agent/auth.Permission');
  999. // 用户
  1000. Route::group('users',function (){
  1001. Route::get('/:id/roles', 'agent/auth.User/roles');
  1002. // 批量操作
  1003. Route::rule('plectron','agent/auth.User/plectron','PUT|DELETE');
  1004. // 恢复用户
  1005. Route::post('/:id/restore','agent/auth.User/restore');
  1006. });
  1007. Route::resource('users','agent/auth.User');
  1008. // roles
  1009. Route::group('roles',function (){
  1010. Route::get('perm/:id', 'agent/auth.Role/permission');
  1011. Route::put('auth/:id', 'agent/auth.Role/authority');
  1012. });
  1013. Route::resource('roles','agent/auth.Role');
  1014. });
  1015. // system
  1016. Route::group('system',function (){
  1017. // DataDictionary
  1018. Route::group('database',function (){
  1019. Route::get('/$', 'agent/system.DataDictionary/tables');
  1020. Route::get('/:table', 'agent/system.DataDictionary/view');
  1021. Route::post('optimize', 'agent/system.DataDictionary/optimize');
  1022. Route::post('backup', 'agent/system.DataDictionary/backup');
  1023. });
  1024. // Setting
  1025. Route::get('/setting','agent/system.Setting/index');
  1026. Route::put('/setting/:group','agent/system.Setting/update');
  1027. // Config
  1028. Route::group('config',function (){
  1029. Route::rule('/plectron','agent/system.Config/plectron','PUT|DELETE');
  1030. });
  1031. Route::resource('config','agent/system.Config');
  1032. // Annex
  1033. Route::group('annex', function (){
  1034. Route::get('/$','agent/system.Annex/index');
  1035. Route::post('/upload','agent/system.Annex/upload');
  1036. Route::post('/ckeditor','agent/system.Annex/ckeditor');
  1037. // 文件/文件夹操作
  1038. Route::any('/operation','agent/system.Annex/operation');
  1039. });
  1040. // OperationLog
  1041. Route::get('/operation','agent/system.OperationLog/index');
  1042. Route::post('/operation/clear','agent/system.OperationLog/clear');
  1043. });
  1044. })->middleware(['JWTAuthMiddleware','\app\agent\middleware\CasbinAuthMiddleware']);
  1045. })->middleware(['\app\agent\middleware\AttackCheckMiddleware'])->allowCrossDomain();