route.php 54 KB

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