route.php 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249
  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('redbag','api/:ver.User/receiveRedbag');
  169. // 我的代理
  170. Route::get('agent$','api/:ver.User/userAgent');
  171. // 代理月统计
  172. Route::get('agentMonth','api/:ver.User/userAgentMonth');
  173. // 申请代理
  174. Route::post('agentApply','api/:ver.User/userAgentApply');
  175. // 配送员
  176. Route::rule('deliveryApply','api/:ver.User/deliveryApply');
  177. });
  178. // 司机端 授权
  179. Route::group('taxiuser',function () {
  180. // 登录
  181. Route::post('/userInfo','api/:ver.taxiUser.User/info');
  182. // 修改密码
  183. Route::post('/modify','api/:ver.taxiUser.Auth/modify');
  184. // 提现记录
  185. Route::post('/withdrawLog','api/:ver.taxiUser.User/withdrawLog');
  186. // 提现
  187. Route::post('/withdraw','api/:ver.taxiUser.User/withdraw');
  188. // 资产明细
  189. Route::post('/accountLog','api/:ver.taxiUser.User/accountLog');
  190. // 设置接单状态
  191. Route::post('/setOrderStatus','api/:ver.taxiUser.User/setOrderStatus');
  192. // 订单大厅
  193. Route::post('/order','api/:ver.taxiUser.Order/index');
  194. // 我的订单
  195. Route::post('/myOrder','api/:ver.taxiUser.Order/myOrder');
  196. // 等待服务订单
  197. Route::post('/waitOrder','api/:ver.taxiUser.Order/waitOrder');
  198. // 接单
  199. Route::post('/receive','api/:ver.taxiUser.Order/receive');
  200. // 确认订单
  201. Route::post('/delivered','api/:ver.taxiUser.Order/delivered');
  202. // 司机升级记录
  203. Route::get('/levelLog','api/:ver.taxiUser.User/levelLog');
  204. // 司机级别
  205. Route::get('/levels','api/:ver.taxiUser.User/levels');
  206. // 司机升级
  207. Route::post('/doLevel','api/:ver.taxiUser.User/doLevel');
  208. });
  209. // 商品
  210. Route::group('goods',function (){
  211. // 红包
  212. Route::get('unrebate','api/:ver.Goods/getUnrebate');
  213. // 普通商品订单
  214. Route::post('order', 'api/:ver.Goods/placeOrder');
  215. // 支付
  216. Route::get('payload','api/:ver.Goods/payload');
  217. // 产品订单
  218. Route::group('my',function (){
  219. // 领取拼单返现红包
  220. Route::get('order/get_rebate','api/:ver.Goods/getRebateByID');
  221. // TODO 可以 做同一路由
  222. // 订单售后
  223. Route::rule('order/:id/service','api/:ver.Goods/applyOrderService')->pattern(['id' => '\d+']);
  224. // 取消订单
  225. Route::post('order/:id/cancel','api/:ver.Goods/cancelOrderByID')->pattern(['id' => '\d+']);
  226. // 确认订单
  227. Route::post('order/:id/confirm','api/:ver.Goods/confirmOrderByID')->pattern(['id' => '\d+']);
  228. Route::get('order/:id$', 'api/:ver.Goods/getOrderByID')->pattern(['id' => '\d+']); // 订单详情
  229. Route::get('order/:action$', 'api/:ver.Goods/getUserOrder'); // 我的订单
  230. });
  231. // 特殊
  232. Route::group('act', function (){
  233. Route::post('collage','api/:ver.Goods/placeCollageOrder'); // 发起拼单
  234. //TODO 其他
  235. });
  236. });
  237. // 技能
  238. Route::group('skill',function (){
  239. // 摩的订单
  240. Route::group('my',function (){
  241. Route::get('order', 'api/:ver.Skill/order'); // 我的服务单
  242. Route::post('serve', 'api/:ver.Skill/userServe'); // 购买服务
  243. });
  244. });
  245. // 救援
  246. Route::group('rescue',function (){
  247. // 摩的订单
  248. Route::group('my',function (){
  249. Route::get('order', 'api/:ver.Rescue/order'); // 我的服务单
  250. Route::post('serve', 'api/:ver.Rescue/userServe'); // 购买服务
  251. });
  252. });
  253. // 技能
  254. Route::group('mission',function (){
  255. // 摩的订单
  256. Route::group('my',function (){
  257. Route::get('order', 'api/:ver.Mission/order'); // 我的服务单
  258. Route::post('serve', 'api/:ver.Mission/userServe'); // 购买服务
  259. });
  260. });
  261. // 摩的
  262. Route::group('taxi',function (){
  263. // 摩的订单
  264. Route::group('my',function (){
  265. Route::get('order', 'api/:ver.Taxi/order'); // 我的车单
  266. Route::get('taxiOrder', 'api/:ver.Taxi/taxiOrder'); // 我的车单详情
  267. Route::get('waitOrder', 'api/:ver.Taxi/waitOrder'); // 我的车单详情
  268. Route::post('call', 'api/:ver.Taxi/callTaxi'); // 呼叫车辆
  269. Route::post('newCall', 'api/:ver.Taxi/newCallTaxi'); // 呼叫车辆
  270. Route::post('cancel', 'api/:ver.Taxi/cancelOrder'); // 取消订单
  271. });
  272. Route::group('user',function (){
  273. Route::post('save', 'api/:ver.taxi.user/save');
  274. Route::get('read', 'api/:ver.taxi.user/read');
  275. Route::post('place', 'api/:ver.taxi.user/placeOrder');
  276. });
  277. Route::group('motor_record',function (){
  278. Route::get('index', 'api/:ver.taxi.motor_record/index');
  279. });
  280. });
  281. // 农田
  282. Route::group('farmland',function (){
  283. // 摩的订单
  284. Route::group('my',function (){
  285. Route::post('serve', 'api/:ver.Farmland/userServe'); // 购买服务
  286. Route::rule('shipping', 'api/:ver.Farmland/orderShipping','GET|POST'); // 我的服务单
  287. Route::get('order$', 'api/:ver.Farmland/order'); // 我的服务单
  288. Route::get('order/:id/detail', 'api/:ver.Farmland/orderDetail')->pattern(['id' => '\d+']); // 我的服务明细
  289. Route::get('order/:id/image', 'api/:ver.Farmland/orderDetailImage')->pattern(['id' => '\d+']); // 我的服务动态明细
  290. Route::post('order/:id/replace', 'api/:ver.Farmland/userServeChange')->pattern(['id' => '\d+']); // 替换种植
  291. });
  292. });
  293. // 摩的代理
  294. Route::group('motor_agent',function (){
  295. Route::post('save','api/:ver.user.motor_agent/save');
  296. Route::get('read','api/:ver.user.motor_agent/read');
  297. Route::post('place','api/:ver.user.motor_agent/placeOrder');
  298. });
  299. })->middleware(['JWTAuthMiddleware']);
  300. });
  301. })->allowCrossDomain();
  302. // 商家后台
  303. // 登录鉴权用 JWTAuthMiddleware
  304. Route::group('seller',function (){
  305. // 管理登录 -- 独立跨域处理,验证码处理
  306. Route::get('login','seller/Auth/login');
  307. Route::group('/',function (){
  308. // 店铺管理
  309. Route::rule('setting','seller/Index/setting','GET|POST');
  310. Route::rule('stat','seller/Index/getAgentStat','GET|POST');
  311. // Annex
  312. Route::group('annex', function (){
  313. Route::get('/$','seller/Annex/index');
  314. Route::post('/upload','seller/Annex/upload');
  315. Route::post('/ckeditor','seller/Annex/ckeditor');
  316. });
  317. // 获取统计信息
  318. Route::get('census','seller/Index/census');
  319. // 商品管理
  320. Route::group('goods',function (){
  321. // 规格
  322. Route::post('spec','seller/Goods/createSpec');
  323. Route::post('spec_value','seller/Goods/createSpecValue');
  324. // 获取产品规格
  325. Route::get('sku/:id','seller/Goods/getSkuById')->pattern(['id' => '\d+']);
  326. // 分类
  327. Route::group('category',function (){
  328. Route::get('/$','seller/Goods/categories'); // 列表
  329. Route::post('/create','seller/Goods/category'); // 新建
  330. Route::put('/update/:id','seller/Goods/updateCategory'); // 更新
  331. Route::delete('/delete/:id','seller/Goods/deleteCategory'); // 删除
  332. });
  333. });
  334. // 资源路由
  335. Route::resource('goods','seller/Goods');
  336. // 订单管理
  337. Route::group('orders',function (){
  338. Route::get('/service','seller/Order/getOrderService');
  339. // getOrderDetailById
  340. Route::get('/:id/detail','seller/Order/getOrderDetailById')->pattern(['id' => '\d+']);
  341. //Route::post('/:id/:action','seller/Order/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  342. Route::rule('/plectron','seller/Order/plectron')->pattern(['id' => '\d+']); // 批量订单
  343. });
  344. // 资源路由
  345. Route::resource('orders','seller/Order');
  346. // 财务管理
  347. Route::group('finance',function (){
  348. });
  349. })->middleware(['JWTAuthMiddleware']);
  350. })->middleware(['AttackCheckMiddleware'])->allowCrossDomain();
  351. // 后台管理
  352. // 登录鉴权用 JWTAuthMiddleware
  353. // 操作鉴权用 CasbinAuthMiddleware
  354. Route::group('manage',function (){
  355. // 独立验证码
  356. Route::get('/captcha',function (){
  357. $captcha = new Captcha(config('captcha.'));
  358. return $captcha->entry('manage');
  359. });
  360. // 清理缓存
  361. Route::get('clear',function (){
  362. exit(enjson(['code' => 10000, 'message' => '清理完成' , 'data' => \think\facade\Cache::clear()]));
  363. });
  364. // 管理登录 -- 独立跨域处理,验证码处理
  365. Route::post('login','admin/Auth/login')
  366. // ->header('Access-Control-Allow-Origin','http://manage.' . request()->rootDomain())
  367. ->header('Access-Control-Allow-Origin', 'http://'.request()->rootDomain().'/manage')
  368. ->header('Access-Control-Allow-Credentials', 'true')
  369. ->allowCrossDomain();
  370. // 导出信息
  371. Route::rule('export/:model', 'admin/store.System/exportDataSheet');
  372. // 站点配置
  373. Route::get('config','admin/system.Config/webconfig');
  374. // 后续都要加中间件 检查用户登录 Authorization
  375. Route::group('/',function (){
  376. // 登录用户信息
  377. Route::any('person', 'admin/auth.User/person');
  378. /********************** 以下是业务管理 *********************/
  379. // 会员管理
  380. Route::group('users',function (){
  381. // 批量操作
  382. Route::rule('plectron','admin/users.User/plectron','PUT|DELETE');
  383. // 恢复用户
  384. Route::post('/:id/restore','admin/users.User/restore');
  385. // 认证信息
  386. Route::rule('/:id/verify','admin/users.User/userVerify');
  387. // 代理信息
  388. Route::rule('/:id/agent','admin/users.User/userAgent');
  389. Route::rule('/:id/cancelAgent','admin/users.User/userCancelAgent');
  390. // 用户资金 20201211 添加资产的查询
  391. //Route::get('/:id/balance','admin/users.User/balanceRecord');
  392. Route::get('/:id/balance/:type','admin/users.User/balanceRecord');
  393. // 代理列表
  394. Route::get('agent','admin/users.User/getUserAgent');
  395. // 充值
  396. Route::post('recharge','admin/users.User/balanceRecharge');
  397. // 用户组管理
  398. Route::group('group',function () {
  399. // 恢复用户
  400. Route::post('/:id/restore', 'admin/users.Group/restore');
  401. });
  402. // 用户组资源路由
  403. Route::resource('group','admin/users.Group');
  404. // 用户关系表
  405. Route::rule('relation','admin/users.Relation/getRelation');
  406. // 摩的代理
  407. Route::group('motor_agent',function (){
  408. Route::get('/index', 'admin/users.motor_agent/index');
  409. Route::post('/check', 'admin/users.motor_agent/check');
  410. Route::get('/stats', 'admin/users.motor_agent/stats');
  411. Route::get('/create', 'admin/users.motor_agent/create');
  412. Route::post('/partnership', 'admin/users.motor_agent/partnership');
  413. Route::put('/update', 'admin/users.motor_agent/update');
  414. });
  415. // 摩的代理-提现
  416. Route::group('motor_agent_withdraw',function (){
  417. Route::get('/index', 'admin/users.motor_agent_withdraw/index');
  418. Route::post('/check', 'admin/users.motor_agent_withdraw/check');
  419. Route::get('/stats', 'admin/users.motor_agent_withdraw/stats');
  420. Route::get('/create', 'admin/users.motor_agent_withdraw/create');
  421. });
  422. });
  423. // 用户资源路由
  424. Route::resource('users','admin/users.User');
  425. // 代理
  426. Route::group('agent',function (){
  427. Route::group('agent',function (){
  428. Route::get('/index', 'admin/agent.agent/index');
  429. Route::get('/stats', 'admin/agent.agent/stats');
  430. Route::get('/personal', 'admin/agent.agent/personal');
  431. });
  432. });
  433. // 商城管理
  434. Route::group('store',function (){
  435. // 关于我们
  436. Route::rule('about','admin/store.System/about');
  437. // 数据统计
  438. Route::rule('/stat','admin/store.System/getAgentStat');
  439. // 商户管理
  440. Route::group('seller',function () {
  441. // 批量操作
  442. Route::rule('plectron','admin/store.Seller/plectron','PUT|DELETE');
  443. // 审核商户
  444. Route::post('/:id/allow', 'admin/store.Seller/allow');
  445. Route::post('/:id/refuse', 'admin/store.Seller/refuse');
  446. // 恢复商户
  447. Route::post('/:id/restore', 'admin/store.Seller/restore');
  448. });
  449. // 商户管理资源路由
  450. Route::resource('seller','admin/store.Seller');
  451. // 商品管理
  452. Route::group('product',function () {
  453. // 规格
  454. Route::post('spec','admin/store.Product/createSpec');
  455. Route::post('spec_value','admin/store.Product/createSpecValue');
  456. // 获取产品规格
  457. Route::get('sku/:id','admin/store.Product/getSkuById')->pattern(['id' => '\d+']);
  458. // 分类
  459. Route::group('category',function (){
  460. Route::get('/$','admin/store.Product/categories'); // 列表
  461. Route::post('/create','admin/store.Product/category'); // 新建
  462. Route::put('/update/:id','admin/store.Product/updateCategory'); // 更新
  463. Route::delete('/delete/:id','admin/store.Product/deleteCategory'); // 删除
  464. });
  465. // 订单
  466. Route::get('/order$','admin/store.Product/order'); // 订单列表
  467. Route::get('/order/:id/detail','admin/store.Product/getOrderDetailById'); // 删除订单
  468. // 订单处理
  469. // 售后
  470. Route::get('/service','admin/store.Product/getOrderService');
  471. // 单个操作
  472. Route::post('/service/:id/:action','admin/store.Product/actionServiceOrder')->pattern(['id' => '\d+']); // 操作订单
  473. Route::delete('/order/:id','admin/store.Product/deleteOrder'); // 删除订单
  474. Route::post('/order/:id/:action$','admin/store.Product/actionOrder')->pattern(['id' => '\d+']);
  475. // 操作订单
  476. Route::rule('/order/plectron','admin/store.Product/plectronOrder')->pattern(['id' => '\d+']);
  477. // 批量订单
  478. // 批量操作
  479. Route::rule('plectron','admin/store.Product/plectron','PUT|DELETE');
  480. });
  481. // 商户管理资源路由
  482. Route::resource('product','admin/store.Product');
  483. // 轮播图
  484. Route::group("banner",function (){
  485. Route::post('/item/create','admin/store.Banner/bannerItem'); // 新增
  486. Route::put('/item/update/:id','admin/store.Banner/updateBannerItem'); // 更新
  487. Route::delete('/item/delete/:id','admin/store.Banner/deleteBannerItem'); // 删除
  488. Route::rule('/item/plectron','admin/store.Banner/bannerItemPlectron','PUT|DELETE'); // 批量操作
  489. });
  490. Route::resource('banner','admin/store.Banner');
  491. // 摩的管理
  492. Route::group('taxi',function () {
  493. // 司机
  494. Route::group('user',function (){
  495. Route::get('/$','admin/store.Taxi/users'); // 司机列表
  496. Route::post('/create','admin/store.Taxi/createUser'); // 新增司机
  497. Route::put('/update/:id','admin/store.Taxi/updateUser'); // 更新司机
  498. Route::delete('/delete/:id','admin/store.Taxi/deleteUser'); // 删除司机
  499. });
  500. // 订单
  501. Route::group('order',function (){
  502. Route::get('/$','admin/store.Taxi/orders'); // 订单列表
  503. Route::delete('/:id','admin/store.Taxi/deleteOrder'); // 删除订单
  504. Route::post('/export','admin/store.Taxi/exportOrder'); // 导出订单
  505. Route::post('/:id/:action','admin/store.Taxi/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  506. Route::rule('/plectron','admin/store.Taxi/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  507. });
  508. // 分类
  509. Route::group('category',function (){
  510. Route::get('/$','admin/store.TaxiServiceCategory/index'); // 列表
  511. Route::post('/create','admin/store.TaxiServiceCategory/create'); // 新增
  512. Route::put('/update/:id','admin/store.TaxiServiceCategory/update'); // 更新
  513. Route::delete('/delete/:id','admin/store.TaxiServiceCategory/delete'); // 删除
  514. Route::put('/change/:id','admin/store.TaxiServiceCategory/change'); // 删除
  515. });
  516. // 批量操作
  517. Route::rule('plectron','admin/store.Taxi/plectron','PUT|DELETE');
  518. });
  519. // 摩的管理资源路由
  520. Route::resource('taxi','admin/store.Taxi');
  521. // 技能管理
  522. Route::group('skill',function () {
  523. // 师傅
  524. Route::group('user',function (){
  525. Route::get('/$','admin/store.Skill/users');
  526. Route::post('/create','admin/store.Skill/createUser');
  527. Route::put('/update/:id','admin/store.Skill/updateUser');
  528. Route::delete('/delete/:id','admin/store.Skill/deleteUser');
  529. // 批量操作
  530. Route::rule('/plectron','admin/store.Skill/plectronUser');
  531. });
  532. // 订单
  533. Route::group('order',function (){
  534. Route::get('/$','admin/store.Skill/orders'); // 订单列表
  535. Route::delete('/:id','admin/store.Skill/deleteOrder'); // 删除订单
  536. Route::post('/:id/:action','admin/store.Skill/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  537. Route::rule('/plectron','admin/store.Skill/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  538. });
  539. // 批量操作
  540. Route::rule('plectron','admin/store.Skill/plectron','PUT|DELETE');
  541. // 恢复商户
  542. Route::post('/:id/restore', 'admin/store.Skill/restore');
  543. });
  544. // 技能管理资源路由
  545. Route::resource('skill','admin/store.Skill');
  546. // 救援管理
  547. Route::group('rescue',function () {
  548. // 订单
  549. Route::group('order',function (){
  550. Route::get('/$','admin/store.Rescue/orders'); // 订单列表
  551. Route::delete('/:id','admin/store.Rescue/deleteOrder'); // 删除订单
  552. Route::post('/:id/:action','admin/store.Rescue/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  553. Route::rule('/plectron','admin/store.Rescue/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  554. });
  555. // 批量操作
  556. Route::rule('plectron','admin/store.Rescue/plectron','PUT|DELETE');
  557. // 恢复商户
  558. Route::post('/:id/restore', 'admin/store.Rescue/restore');
  559. });
  560. // 技能管理资源路由
  561. Route::resource('rescue','admin/store.Rescue');
  562. // 门店管理
  563. Route::group('stores',function () {
  564. // 批量操作
  565. Route::rule('plectron','admin/store.Stores/plectron','PUT|DELETE');
  566. // 恢复商户
  567. Route::post('/:id/restore', 'admin/store.Stores/restore');
  568. });
  569. // 门店管理
  570. Route::resource('stores','admin/store.Stores');
  571. // 接单管理
  572. Route::group('mission',function () {
  573. // 师傅
  574. Route::group('user',function (){
  575. Route::get('/$','admin/store.Mission/users');
  576. Route::post('/create','admin/store.Mission/createUser');
  577. Route::put('/:id','admin/store.Mission/updateUser');
  578. Route::delete('/:id','admin/store.Mission/deleteUser');
  579. // 批量操作
  580. Route::rule('/plectron','admin/store.Skill/plectronUser');
  581. });
  582. // 订单
  583. Route::group('order',function (){
  584. Route::get('/$','admin/store.Mission/orders'); // 订单列表
  585. Route::delete('/:id','admin/store.Mission/deleteOrder'); // 删除订单
  586. Route::post('/export','admin/store.Mission/exportOrder'); // 导出订单
  587. Route::post('/:id/:action','admin/store.Mission/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  588. Route::rule('/plectron','admin/store.Mission/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  589. });
  590. // 批量操作
  591. Route::rule('plectron','admin/store.Mission/plectron','PUT|DELETE');
  592. // 恢复商户
  593. Route::post('/:id/restore', 'admin/store.Mission/restore');
  594. });
  595. // 技能管理资源路由
  596. Route::resource('mission','admin/store.Mission');
  597. // 提现
  598. Route::group('withdraw',function (){
  599. // 批量操作
  600. Route::rule('/plectron','admin/store.Withdraw/plectron');
  601. });
  602. // 提现管理资源路由
  603. Route::resource('withdraw','admin/store.Withdraw');
  604. // 司机提现
  605. Route::group('taxiuserwithdraw',function (){
  606. // 批量操作
  607. Route::rule('/plectron','admin/store.TaxiUserWithdraw/plectron');
  608. });
  609. // 司机提现管理资源路由
  610. Route::resource('taxiuserwithdraw','admin/store.TaxiUserWithdraw');
  611. // 司机等级
  612. Route::group('taxiuserlevel',function (){
  613. Route::put('/update/:id','admin/store.TaxiUserLevel/update'); // 更新司机
  614. // 批量操作
  615. Route::rule('/plectron','admin/store.TaxiUserLevel/plectron');
  616. });
  617. // 司机等级管理资源路由
  618. Route::resource('taxiuserlevel','admin/store.TaxiUserLevel');
  619. // 文章
  620. Route::group('article',function (){
  621. // 分类
  622. Route::group('category',function (){
  623. Route::get('/$','admin/store.Article/categories'); // 列表
  624. Route::post('/create','admin/store.Article/category'); // 新建
  625. Route::put('/update/:id','admin/store.Article/updateCategory'); // 更新
  626. Route::delete('/delete/:id','admin/store.Article/deleteCategory'); // 删除
  627. });
  628. });
  629. // 文章管理资源路由
  630. Route::resource('article','admin/store.Article');
  631. // 技能管理
  632. Route::group('farmland',function () {
  633. // 地块
  634. Route::group('block',function (){
  635. Route::get('/$','admin/store.Farmland/getFarmlandBlockData'); // 列表
  636. Route::post('/$','admin/store.Farmland/createFarmlandBlock'); // 新建
  637. Route::put('/:id$','admin/store.Farmland/updateFarmlandBlock')->pattern(['id' => '\d+']); // 更新
  638. Route::delete('/:id$','admin/store.Farmland/deleteFarmlandBlock')->pattern(['id' => '\d+']); // 删除
  639. });
  640. // 品种
  641. Route::group('variety',function (){
  642. Route::get('/$','admin/store.Farmland/getFarmlandVarietyData'); // 列表
  643. Route::post('/$','admin/store.Farmland/createFarmlandVariety'); // 新建
  644. Route::put('/:id$','admin/store.Farmland/updateFarmlandVariety')->pattern(['id' => '\d+']); // 更新
  645. Route::delete('/:id$','admin/store.Farmland/deleteFarmlandVariety')->pattern(['id' => '\d+']); // 删除
  646. });
  647. // 分类
  648. Route::group('class',function (){
  649. Route::get('/$','admin/store.Farmland/getClassData'); // 列表
  650. Route::post('/$','admin/store.Farmland/createClass'); // 新建
  651. Route::put('/:id$','admin/store.Farmland/updateClass')->pattern(['id' => '\d+']); // 更新
  652. Route::delete('/:id$','admin/store.Farmland/deleteClass')->pattern(['id' => '\d+']); // 删除
  653. });
  654. // 分类
  655. Route::group('detail',function (){
  656. Route::get('/$','admin/store.Farmland/getFarmlandDetail'); // 列表
  657. Route::post('/$','admin/store.Farmland/createFarmlandDetail'); // 新建
  658. Route::put('/:id$','admin/store.Farmland/updateFarmlandDetail')->pattern(['id' => '\d+']); // 更新
  659. Route::delete('/:id$','admin/store.Farmland/deleteFarmlandDetail')->pattern(['id' => '\d+']); // 删除
  660. });
  661. // 订单
  662. Route::group('order',function (){
  663. Route::get('/$','admin/store.Farmland/orders'); // 订单列表
  664. Route::delete('/:id$','admin/store.Farmland/deleteOrder'); // 删除订
  665. Route::rule('/:id/shipping','admin/store.Farmland/orderShipping','GET|POST'); // 订单采摘列表
  666. Route::post('/:id/shipping','admin/store.Farmland/orderShipping'); // 订单采摘列表
  667. Route::rule('/:id/detail','admin/store.Farmland/orderDetail','GET|POST'); // 订单品种列表
  668. Route::rule('/detail/[:id]','admin/store.Farmland/orderDetailAction'); // 更新动态
  669. Route::rule('/:id/image','admin/store.Farmland/orderImage','GET|POST'); // 订单动态列表
  670. Route::rule('/image/[:id]','admin/store.Farmland/orderImageAction'); // 更新动态
  671. Route::post('/:id/:action','admin/store.Farmland/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  672. Route::rule('/plectron','admin/store.Farmland/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  673. });
  674. // 批量操作
  675. Route::rule('plectron','admin/store.Farmland/plectron','PUT|DELETE');
  676. });
  677. // 技能管理资源路由
  678. Route::resource('farmland','admin/store.Farmland');
  679. });
  680. Route::group('taxi',function (){
  681. Route::group('user',function () {
  682. Route::post('/check', 'admin/taxi.user/check');
  683. Route::post('/partnership', 'admin/taxi.user/partnership');
  684. });
  685. });
  686. /********************** 以下是系统管理 *********************/
  687. // permission
  688. Route::group('permission',function (){
  689. // permission
  690. Route::resource('perm','admin/auth.Permission');
  691. // 用户
  692. Route::group('users',function (){
  693. Route::get('/:id/roles', 'admin/auth.User/roles');
  694. // 批量操作
  695. Route::rule('plectron','admin/auth.User/plectron','PUT|DELETE');
  696. // 恢复用户
  697. Route::post('/:id/restore','admin/auth.User/restore');
  698. });
  699. Route::resource('users','admin/auth.User');
  700. // roles
  701. Route::group('roles',function (){
  702. Route::get('perm/:id', 'admin/auth.Role/permission');
  703. Route::put('auth/:id', 'admin/auth.Role/authority');
  704. });
  705. Route::resource('roles','admin/auth.Role');
  706. });
  707. // system
  708. Route::group('system',function (){
  709. // DataDictionary
  710. Route::group('database',function (){
  711. Route::get('/$', 'admin/system.DataDictionary/tables');
  712. Route::get('/:table', 'admin/system.DataDictionary/view');
  713. Route::post('optimize', 'admin/system.DataDictionary/optimize');
  714. Route::post('backup', 'admin/system.DataDictionary/backup');
  715. });
  716. // Setting
  717. Route::get('/setting','admin/system.Setting/index');
  718. Route::put('/setting/:group','admin/system.Setting/update');
  719. // Config
  720. Route::group('config',function (){
  721. Route::rule('/plectron','admin/system.Config/plectron','PUT|DELETE');
  722. });
  723. Route::resource('config','admin/system.Config');
  724. // Annex
  725. Route::group('annex', function (){
  726. Route::get('/$','admin/system.Annex/index');
  727. Route::post('/upload','admin/system.Annex/upload');
  728. Route::post('/ckeditor','admin/system.Annex/ckeditor');
  729. // 文件/文件夹操作
  730. Route::any('/operation','admin/system.Annex/operation');
  731. });
  732. // OperationLog
  733. Route::get('/operation','admin/system.OperationLog/index');
  734. Route::post('/operation/clear','admin/system.OperationLog/clear');
  735. });
  736. })->middleware(['JWTAuthMiddleware','CasbinAuthMiddleware']);
  737. })->middleware(['AttackCheckMiddleware'])->allowCrossDomain();
  738. // 代理后台管理
  739. // 登录鉴权用 JWTAuthMiddleware
  740. // 操作鉴权用 CasbinAuthMiddleware
  741. Route::group('agent',function (){
  742. // 独立验证码
  743. Route::get('/captcha',function (){
  744. $captcha = new Captcha(config('captcha.'));
  745. return $captcha->entry('manage');
  746. });
  747. // 清理缓存
  748. Route::get('clear',function (){
  749. exit(enjson(['code' => 10000, 'message' => '清理完成' , 'data' => \think\facade\Cache::clear()]));
  750. });
  751. // 管理登录 -- 独立跨域处理,验证码处理
  752. Route::post('login','agent/Auth/login')
  753. ->header('Access-Control-Allow-Origin', 'http://'.request()->rootDomain().'/agent')
  754. ->header('Access-Control-Allow-Credentials', 'true')
  755. ->allowCrossDomain();
  756. // 导出信息
  757. Route::rule('export/:model', 'agent/store.System/exportDataSheet');
  758. // 站点配置
  759. Route::get('config','agent/system.Config/webconfig');
  760. // 后续都要加中间件 检查用户登录 Authorization
  761. Route::group('/',function (){
  762. // 登录用户信息
  763. Route::any('person', 'agent/auth.user/person');
  764. /********************** 以下是业务管理 *********************/
  765. Route::group('order',function (){
  766. Route::group('/goods',function (){
  767. Route::get('/index', 'agent/order.goods/index');
  768. });
  769. Route::group('/mission',function (){
  770. Route::get('/index', 'agent/order.mission/index');
  771. });
  772. Route::group('/skill',function (){
  773. Route::get('/index', 'agent/order.skill/index');
  774. });
  775. Route::group('/taxi',function (){
  776. Route::get('/index', 'agent/order.taxi/index');
  777. Route::post('/dispense', 'agent/order.taxi/dispense');
  778. Route::post('/complete', 'agent/order.taxi/complete');
  779. Route::delete('/delete', 'agent/order.taxi/delete');
  780. });
  781. });
  782. // 商城管理
  783. Route::group('store',function (){
  784. // 关于我们
  785. Route::rule('about','admin/store.System/about');
  786. // 数据统计
  787. Route::rule('/stats','agent/finance.stats/index');
  788. // 商户管理
  789. Route::group('seller',function () {
  790. // 批量操作
  791. Route::rule('plectron','admin/store.Seller/plectron','PUT|DELETE');
  792. // 审核商户
  793. Route::post('/:id/allow', 'admin/store.Seller/allow');
  794. Route::post('/:id/refuse', 'admin/store.Seller/refuse');
  795. // 恢复商户
  796. Route::post('/:id/restore', 'admin/store.Seller/restore');
  797. });
  798. // 商户管理资源路由
  799. Route::resource('seller','admin/store.Seller');
  800. // 商品管理
  801. Route::group('product',function () {
  802. // 规格
  803. Route::post('spec','admin/store.Product/createSpec');
  804. Route::post('spec_value','admin/store.Product/createSpecValue');
  805. // 获取产品规格
  806. Route::get('sku/:id','admin/store.Product/getSkuById')->pattern(['id' => '\d+']);
  807. // 分类
  808. Route::group('category',function (){
  809. Route::get('/$','admin/store.Product/categories'); // 列表
  810. Route::post('/create','admin/store.Product/category'); // 新建
  811. Route::put('/update/:id','admin/store.Product/updateCategory'); // 更新
  812. Route::delete('/delete/:id','admin/store.Product/deleteCategory'); // 删除
  813. });
  814. // 订单
  815. Route::get('/order$','admin/store.Product/order'); // 订单列表
  816. Route::get('/order/:id/detail','admin/store.Product/getOrderDetailById'); // 删除订单
  817. // 订单处理
  818. // 售后
  819. Route::get('/service','admin/store.Product/getOrderService');
  820. // 单个操作
  821. Route::post('/service/:id/:action','admin/store.Product/actionServiceOrder')->pattern(['id' => '\d+']); // 操作订单
  822. Route::delete('/order/:id','admin/store.Product/deleteOrder'); // 删除订单
  823. Route::post('/order/:id/:action$','admin/store.Product/actionOrder')->pattern(['id' => '\d+']);
  824. // 操作订单
  825. Route::rule('/order/plectron','admin/store.Product/plectronOrder')->pattern(['id' => '\d+']);
  826. // 批量订单
  827. // 批量操作
  828. Route::rule('plectron','admin/store.Product/plectron','PUT|DELETE');
  829. });
  830. // 商户管理资源路由
  831. Route::resource('product','admin/store.Product');
  832. // 轮播图
  833. Route::group("banner",function (){
  834. Route::post('/item/create','admin/store.Banner/bannerItem'); // 新增
  835. Route::put('/item/update/:id','admin/store.Banner/updateBannerItem'); // 更新
  836. Route::delete('/item/delete/:id','admin/store.Banner/deleteBannerItem'); // 删除
  837. Route::rule('/item/plectron','admin/store.Banner/bannerItemPlectron','PUT|DELETE'); // 批量操作
  838. });
  839. Route::resource('banner','admin/store.Banner');
  840. // 摩的管理
  841. Route::group('taxi',function () {
  842. // 司机
  843. Route::group('user',function (){
  844. Route::get('/$','admin/store.Taxi/users'); // 司机列表
  845. Route::post('/create','admin/store.Taxi/createUser'); // 新增司机
  846. Route::put('/update/:id','admin/store.Taxi/updateUser'); // 更新司机
  847. Route::delete('/delete/:id','admin/store.Taxi/deleteUser'); // 删除司机
  848. });
  849. // 订单
  850. Route::group('order',function (){
  851. Route::get('/$','admin/store.Taxi/orders'); // 订单列表
  852. Route::delete('/:id','admin/store.Taxi/deleteOrder'); // 删除订单
  853. Route::post('/export','admin/store.Taxi/exportOrder'); // 导出订单
  854. Route::post('/:id/:action','admin/store.Taxi/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  855. Route::rule('/plectron','admin/store.Taxi/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  856. });
  857. // 分类
  858. Route::group('category',function (){
  859. Route::get('/$','admin/store.TaxiServiceCategory/index'); // 列表
  860. Route::post('/create','admin/store.TaxiServiceCategory/create'); // 新增
  861. Route::put('/update/:id','admin/store.TaxiServiceCategory/update'); // 更新
  862. Route::delete('/delete/:id','admin/store.TaxiServiceCategory/delete'); // 删除
  863. Route::put('/change/:id','admin/store.TaxiServiceCategory/change'); // 删除
  864. });
  865. // 批量操作
  866. Route::rule('plectron','admin/store.Taxi/plectron','PUT|DELETE');
  867. });
  868. // 摩的管理资源路由
  869. Route::resource('taxi','admin/store.Taxi');
  870. // 技能管理
  871. Route::group('skill',function () {
  872. // 师傅
  873. Route::group('user',function (){
  874. Route::get('/$','admin/store.Skill/users');
  875. Route::post('/create','admin/store.Skill/createUser');
  876. Route::put('/update/:id','admin/store.Skill/updateUser');
  877. Route::delete('/delete/:id','admin/store.Skill/deleteUser');
  878. // 批量操作
  879. Route::rule('/plectron','admin/store.Skill/plectronUser');
  880. });
  881. // 订单
  882. Route::group('order',function (){
  883. Route::get('/$','admin/store.Skill/orders'); // 订单列表
  884. Route::delete('/:id','admin/store.Skill/deleteOrder'); // 删除订单
  885. Route::post('/:id/:action','admin/store.Skill/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  886. Route::rule('/plectron','admin/store.Skill/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  887. });
  888. // 批量操作
  889. Route::rule('plectron','admin/store.Skill/plectron','PUT|DELETE');
  890. // 恢复商户
  891. Route::post('/:id/restore', 'admin/store.Skill/restore');
  892. });
  893. // 技能管理资源路由
  894. Route::resource('skill','admin/store.Skill');
  895. // 救援管理
  896. Route::group('rescue',function () {
  897. // 订单
  898. Route::group('order',function (){
  899. Route::get('/$','admin/store.Rescue/orders'); // 订单列表
  900. Route::delete('/:id','admin/store.Rescue/deleteOrder'); // 删除订单
  901. Route::post('/:id/:action','admin/store.Rescue/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  902. Route::rule('/plectron','admin/store.Rescue/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  903. });
  904. // 批量操作
  905. Route::rule('plectron','admin/store.Rescue/plectron','PUT|DELETE');
  906. // 恢复商户
  907. Route::post('/:id/restore', 'admin/store.Rescue/restore');
  908. });
  909. // 技能管理资源路由
  910. Route::resource('rescue','admin/store.Rescue');
  911. // 接单管理
  912. Route::group('mission',function () {
  913. // 师傅
  914. Route::group('user',function (){
  915. Route::get('/$','admin/store.Mission/users');
  916. Route::post('/create','admin/store.Mission/createUser');
  917. Route::put('/:id','admin/store.Mission/updateUser');
  918. Route::delete('/:id','admin/store.Mission/deleteUser');
  919. // 批量操作
  920. Route::rule('/plectron','admin/store.Skill/plectronUser');
  921. });
  922. // 订单
  923. Route::group('order',function (){
  924. Route::get('/$','admin/store.Mission/orders'); // 订单列表
  925. Route::delete('/:id','admin/store.Mission/deleteOrder'); // 删除订单
  926. Route::post('/export','admin/store.Mission/exportOrder'); // 导出订单
  927. Route::post('/:id/:action','admin/store.Mission/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  928. Route::rule('/plectron','admin/store.Mission/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  929. });
  930. // 批量操作
  931. Route::rule('plectron','admin/store.Mission/plectron','PUT|DELETE');
  932. // 恢复商户
  933. Route::post('/:id/restore', 'admin/store.Mission/restore');
  934. });
  935. // 技能管理资源路由
  936. Route::resource('mission','admin/store.Mission');
  937. // 提现
  938. Route::group('withdraw',function (){
  939. // 批量操作
  940. Route::rule('/plectron','admin/store.Withdraw/plectron');
  941. });
  942. // 提现管理资源路由
  943. Route::resource('withdraw','admin/store.Withdraw');
  944. // 文章
  945. Route::group('article',function (){
  946. // 分类
  947. Route::group('category',function (){
  948. Route::get('/$','admin/store.Article/categories'); // 列表
  949. Route::post('/create','admin/store.Article/category'); // 新建
  950. Route::put('/update/:id','admin/store.Article/updateCategory'); // 更新
  951. Route::delete('/delete/:id','admin/store.Article/deleteCategory'); // 删除
  952. });
  953. });
  954. // 文章管理资源路由
  955. Route::resource('article','admin/store.Article');
  956. // 技能管理
  957. Route::group('farmland',function () {
  958. // 地块
  959. Route::group('block',function (){
  960. Route::get('/$','admin/store.Farmland/getFarmlandBlockData'); // 列表
  961. Route::post('/$','admin/store.Farmland/createFarmlandBlock'); // 新建
  962. Route::put('/:id$','admin/store.Farmland/updateFarmlandBlock')->pattern(['id' => '\d+']); // 更新
  963. Route::delete('/:id$','admin/store.Farmland/deleteFarmlandBlock')->pattern(['id' => '\d+']); // 删除
  964. });
  965. // 品种
  966. Route::group('variety',function (){
  967. Route::get('/$','admin/store.Farmland/getFarmlandVarietyData'); // 列表
  968. Route::post('/$','admin/store.Farmland/createFarmlandVariety'); // 新建
  969. Route::put('/:id$','admin/store.Farmland/updateFarmlandVariety')->pattern(['id' => '\d+']); // 更新
  970. Route::delete('/:id$','admin/store.Farmland/deleteFarmlandVariety')->pattern(['id' => '\d+']); // 删除
  971. });
  972. // 分类
  973. Route::group('class',function (){
  974. Route::get('/$','admin/store.Farmland/getClassData'); // 列表
  975. Route::post('/$','admin/store.Farmland/createClass'); // 新建
  976. Route::put('/:id$','admin/store.Farmland/updateClass')->pattern(['id' => '\d+']); // 更新
  977. Route::delete('/:id$','admin/store.Farmland/deleteClass')->pattern(['id' => '\d+']); // 删除
  978. });
  979. // 分类
  980. Route::group('detail',function (){
  981. Route::get('/$','admin/store.Farmland/getFarmlandDetail'); // 列表
  982. Route::post('/$','admin/store.Farmland/createFarmlandDetail'); // 新建
  983. Route::put('/:id$','admin/store.Farmland/updateFarmlandDetail')->pattern(['id' => '\d+']); // 更新
  984. Route::delete('/:id$','admin/store.Farmland/deleteFarmlandDetail')->pattern(['id' => '\d+']); // 删除
  985. });
  986. // 订单
  987. Route::group('order',function (){
  988. Route::get('/$','admin/store.Farmland/orders'); // 订单列表
  989. Route::delete('/:id$','admin/store.Farmland/deleteOrder'); // 删除订
  990. Route::rule('/:id/shipping','admin/store.Farmland/orderShipping','GET|POST'); // 订单采摘列表
  991. Route::post('/:id/shipping','admin/store.Farmland/orderShipping'); // 订单采摘列表
  992. Route::rule('/:id/detail','admin/store.Farmland/orderDetail','GET|POST'); // 订单品种列表
  993. Route::rule('/detail/[:id]','admin/store.Farmland/orderDetailAction'); // 更新动态
  994. Route::rule('/:id/image','admin/store.Farmland/orderImage','GET|POST'); // 订单动态列表
  995. Route::rule('/image/[:id]','admin/store.Farmland/orderImageAction'); // 更新动态
  996. Route::post('/:id/:action','admin/store.Farmland/actionOrder')->pattern(['id' => '\d+']); // 操作订单
  997. Route::rule('/plectron','admin/store.Farmland/plectronOrder')->pattern(['id' => '\d+']); // 批量订单
  998. });
  999. // 批量操作
  1000. Route::rule('plectron','admin/store.Farmland/plectron','PUT|DELETE');
  1001. });
  1002. // 技能管理资源路由
  1003. Route::resource('farmland','admin/store.Farmland');
  1004. });
  1005. // 财务管理
  1006. Route::group('finance',function (){
  1007. // 明细
  1008. Route::group('/log',function (){
  1009. Route::get('/index', 'agent/finance.log/index');
  1010. });
  1011. Route::group('/withdraw',function (){
  1012. Route::get('/index', 'agent/finance.withdraw/index');
  1013. Route::get('/log', 'agent/finance.withdraw/log');
  1014. Route::post('/save', 'agent/finance.withdraw/save');
  1015. Route::put('/update', 'agent/finance.withdraw/update');
  1016. Route::delete('/delete', 'agent/finance.withdraw/delete');
  1017. });
  1018. });
  1019. /********************** 以下是系统管理 *********************/
  1020. // permission
  1021. Route::group('permission',function (){
  1022. // permission
  1023. Route::resource('perm','agent/auth.Permission');
  1024. // 用户
  1025. Route::group('users',function (){
  1026. Route::get('/:id/roles', 'agent/auth.User/roles');
  1027. // 批量操作
  1028. Route::rule('plectron','agent/auth.User/plectron','PUT|DELETE');
  1029. // 恢复用户
  1030. Route::post('/:id/restore','agent/auth.User/restore');
  1031. });
  1032. Route::resource('users','agent/auth.User');
  1033. // roles
  1034. Route::group('roles',function (){
  1035. Route::get('perm/:id', 'agent/auth.Role/permission');
  1036. Route::put('auth/:id', 'agent/auth.Role/authority');
  1037. });
  1038. Route::resource('roles','agent/auth.Role');
  1039. });
  1040. // system
  1041. Route::group('system',function (){
  1042. // DataDictionary
  1043. Route::group('database',function (){
  1044. Route::get('/$', 'agent/system.DataDictionary/tables');
  1045. Route::get('/:table', 'agent/system.DataDictionary/view');
  1046. Route::post('optimize', 'agent/system.DataDictionary/optimize');
  1047. Route::post('backup', 'agent/system.DataDictionary/backup');
  1048. });
  1049. // Setting
  1050. Route::get('/setting','agent/system.Setting/index');
  1051. Route::put('/setting/:group','agent/system.Setting/update');
  1052. // Config
  1053. Route::group('config',function (){
  1054. Route::rule('/plectron','agent/system.Config/plectron','PUT|DELETE');
  1055. });
  1056. Route::resource('config','agent/system.Config');
  1057. // Annex
  1058. Route::group('annex', function (){
  1059. Route::get('/$','agent/system.Annex/index');
  1060. Route::post('/upload','agent/system.Annex/upload');
  1061. Route::post('/ckeditor','agent/system.Annex/ckeditor');
  1062. // 文件/文件夹操作
  1063. Route::any('/operation','agent/system.Annex/operation');
  1064. });
  1065. // OperationLog
  1066. Route::get('/operation','agent/system.OperationLog/index');
  1067. Route::post('/operation/clear','agent/system.OperationLog/clear');
  1068. });
  1069. })->middleware(['JWTAuthMiddleware','\app\agent\middleware\CasbinAuthMiddleware']);
  1070. })->middleware(['\app\agent\middleware\AttackCheckMiddleware'])->allowCrossDomain();