marketing.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. use app\common\middleware\AllowOriginMiddleware;
  12. use app\common\middleware\LogMiddleware;
  13. use app\common\middleware\MerchantAuthMiddleware;
  14. use app\common\middleware\MerchantTokenMiddleware;
  15. use think\facade\Route;
  16. use app\common\middleware\MerchantCheckBaseInfoMiddleware;
  17. Route::group(function () {
  18. //商品列表, 用于活动筛选的商品信息
  19. Route::get('product_list', 'merchant.store.product.Product/product_list');
  20. //秒杀活动
  21. Route::group('store/seckill/active', function () {
  22. Route::get('lst', '/list')->name('merchantStoreSeckillActiveGetActiveList')->option([
  23. '_alias' => '列表',
  24. ]);
  25. Route::get('detail/:id', '/detail')->name('merchantStoreSeckillActiveGetActiveInfo')->option([
  26. '_alias' => '详情',
  27. ]);
  28. Route::get('select', '/select')->name('merchantStoreSeckillActiveGetActiveAll')->option([
  29. '_alias' => '列表',
  30. ]);
  31. Route::get('chart_panel/:id', '/chart_panel')->name('merchantStoreSeckillActiveChartPanel')->option([
  32. '_alias' => '活动统计数据面板',
  33. ]);
  34. Route::get('chart_people/:id', '/chart_people')->name('merchantStoreSeckillActiveChartPeople')->option([
  35. '_alias' => '活动参与人统计列表',
  36. ]);
  37. Route::get('chart_order/:id', '/chart_order')->name('merchantStoreSeckillActiveChartOrder')->option([
  38. '_alias' => '活动订单统计列表',
  39. ]);
  40. Route::get('chart_product/:id', '/chart_product')->name('merchantStoreSeckillActiveChartProduct')->option([
  41. '_alias' => '活动商品统计列表',
  42. ]);
  43. })->prefix('merchant.store.seckill.SeckillActive')->option([
  44. '_path' => '/marketing/seckill/store_seckill/list',
  45. '_auth' => true,
  46. ]);
  47. //秒杀商品
  48. Route::group('store/seckill_product', function () {
  49. Route::get('lst', '/get_page_list')->name('merchantStoreSeckillProductPageLst')->option([
  50. '_alias' => '分页列表',
  51. ]);
  52. Route::get('list', '/get_list')->name('merchantStoreSeckillProductLst')->option([
  53. '_alias' => '列表',
  54. ]);
  55. Route::get('product_list', '/get_product_list')->name('merchantStoreSeckillProductGetProductList')->option([
  56. '_alias' => '商品列表',
  57. ]);
  58. Route::get('lst_filter', '/getStatusFilter')->name('merchantStoreSeckillProductLstFilter')->option([
  59. '_alias' => '统计',
  60. ]);
  61. Route::post('create', '/create')->name('merchantStoreSeckillProductCreate')->option([
  62. '_alias' => '添加 ',
  63. ]);
  64. Route::get('detail/:id', '/detail')->name('merchantStoreSeckillProductDetail')->option([
  65. '_alias' => '详情',
  66. ]);
  67. Route::post('status/:id', '/switchStatus')->name('merchantStoreSeckillProductSwitchStatus')->option([
  68. '_alias' => '修改状态',
  69. ]);
  70. Route::post('labels/:id', '/setLabels')->name('merchantStoreSeckillProductSetLabels')->option([
  71. '_alias' => '设置标签',
  72. ]);
  73. Route::post('update/:id', '/update')->name('merchantStoreSeckillProductUpdate')->option([
  74. '_alias' => '修改商品',
  75. ]);
  76. Route::delete('delete/:id', '/delete')->name('merchantStoreSeckillProductDelete')->option([
  77. '_alias' => '加入回收站',
  78. ]);
  79. Route::delete('destory/:id', '/destory')->name('merchantStoreSeckillProductDestory')->option([
  80. '_alias' => '删除',
  81. ]);
  82. Route::post('restore/:id', '/restore')->name('merchantStoreSeckillProductRestore')->option([
  83. '_alias' => '恢复',
  84. ]);
  85. Route::post('sort/:id', '/updateSort')->name('merchantStoreSeckillProductUpdateSort')->option([
  86. '_alias' => '排序',
  87. ]);
  88. Route::post('preview', '/preview')->name('merchantStoreSeckillProductPreview')->option([
  89. '_alias' => '预览',
  90. ]);
  91. })->prefix('merchant.store.seckill.SeckillProduct')->option([
  92. '_path' => '/marketing/seckill/product/list',
  93. '_auth' => true,
  94. ]);
  95. //秒杀场次
  96. Route::get('store/seckill/time/lst', 'merchant.store.seckill.SeckillTime/lst');
  97. //预售商品
  98. Route::group('store/product/presell', function () {
  99. Route::get('lst', '/lst')->name('merchantStoreProductPresellLst')->option([
  100. '_alias' => '列表',
  101. ]);
  102. Route::post('create', '/create')->name('merchantStoreProductPresellCreate')->option([
  103. '_alias' => '添加',
  104. ]);
  105. Route::get('detail/:id', '/detail')->name('merchantStoreProductPresellDetail')->option([
  106. '_alias' => '详情',
  107. ]);
  108. Route::post('update/:id', '/update')->name('merchantStoreProductPresellUpdate')->option([
  109. '_alias' => '编辑',
  110. ]);
  111. Route::delete('delete/:id', '/delete')->name('merchantStoreProductPresellDelete')->option([
  112. '_alias' => '删除',
  113. ]);
  114. Route::post('status/:id', '/switchStatus')->name('merchantStoreProductPresellStatus')->option([
  115. '_alias' => '修改状态',
  116. ]);
  117. Route::get('number', '/number')->option([
  118. '_alias' => '统计',
  119. '_auth' => false,
  120. ]);
  121. Route::post('sort/:id', '/updateSort')->name('merchantStoreProductPresellUpdateSort')->option([
  122. '_alias' => '排序',
  123. ]);
  124. Route::post('preview', '/preview')->name('merchantStoreProductPresellPreview')->option([
  125. '_alias' => '预览',
  126. ]);
  127. Route::post('labels/:id', '/setLabels')->name('merchantStoreProductPreselltLabels')->option([
  128. '_alias' => '设置标签',
  129. ]);
  130. })->prefix('merchant.store.product.ProductPresell')->option([
  131. '_path' => '/marketing/presell/list',
  132. '_auth' => true,
  133. '_append'=> [
  134. [
  135. '_name' =>'merchantUploadImage',
  136. '_path' =>'/marketing/presell/list',
  137. '_alias' => '上传图片',
  138. '_auth' => true,
  139. ],
  140. [
  141. '_name' =>'merchantAttachmentLst',
  142. '_path' =>'/marketing/presell/list',
  143. '_alias' => '图片列表',
  144. '_auth' => true,
  145. ],
  146. ]
  147. ]);
  148. //助力商品
  149. Route::group('store/product/assist', function () {
  150. Route::get('lst', '/lst')->name('merchantStoreProductAssistLst')->option([
  151. '_alias' => '列表 ',
  152. ]);
  153. Route::post('create', '/create')->name('merchantStoreProductAssistCreate')->option([
  154. '_alias' => '添加',
  155. ]);
  156. Route::get('detail/:id', '/detail')->name('merchantStoreProductAssistDetail')->option([
  157. '_alias' => '详情',
  158. ]);
  159. Route::post('update/:id', '/update')->name('merchantStoreProductAssistUpdate')->option([
  160. '_alias' => '编辑',
  161. ]);
  162. Route::delete('delete/:id', '/delete')->name('merchantStoreProductAssistDelete')->option([
  163. '_alias' => '删除',
  164. ]);
  165. Route::post('status/:id', '/switchStatus')->name('merchantStoreProductAssistStatus')->option([
  166. '_alias' => '修改状态',
  167. ]);
  168. Route::post('sort/:id', '/updateSort')->name('merchantStoreProductAssistUpdateSort')->option([
  169. '_alias' => '排序',
  170. ]);
  171. Route::post('preview', '/preview')->name('merchantStoreProductAssistPreview')->option([
  172. '_alias' => '预览',
  173. ]);
  174. Route::post('labels/:id', '/setLabels')->name('merchantStoreProductAssistLabels')->option([
  175. '_alias' => '设置标签',
  176. ]);
  177. })->prefix('merchant.store.product.ProductAssist')->option([
  178. '_path' => '/marketing/assist/list',
  179. '_auth' => true,
  180. '_append'=> [
  181. [
  182. '_name' =>'merchantUploadImage',
  183. '_path' =>'/marketing/assist/list',
  184. '_alias' => '上传图片',
  185. '_auth' => true,
  186. ],
  187. [
  188. '_name' =>'merchantAttachmentLst',
  189. '_path' =>'/marketing/assist/list',
  190. '_alias' => '图片列表',
  191. '_auth' => true,
  192. ],
  193. ]
  194. ]);
  195. //助力活动
  196. Route::group('store/product/assist_set', function () {
  197. Route::get('lst', '/lst')->name('merchantStoreProductAssistSetLst')->option([
  198. '_alias' => '活动列表',
  199. ]);
  200. Route::get('detail/:id', '/detail')->name('merchantStoreProductAssistSetDetail')->option([
  201. '_alias' => '活动详情',
  202. ]);
  203. })->prefix('merchant.store.product.ProductAssistSet')->option([
  204. '_path' => '/marketing/assist/assist_set',
  205. '_auth' => true,
  206. ]);
  207. //拼团商品
  208. Route::group('store/product/group', function () {
  209. Route::get('lst', '/lst')->name('merchantStoreProductGroupLst')->option([
  210. '_alias' => '列表',
  211. ]);
  212. Route::post('create', '/create')->name('merchantStoreProductGroupCreate')->option([
  213. '_alias' => '添加',
  214. ]);
  215. Route::get('detail/:id', '/detail')->name('merchantStoreProductGroupDetail')->option([
  216. '_alias' => '详情',
  217. ]);
  218. Route::post('update/:id', '/update')->name('merchantStoreProductGroupUpdate')->option([
  219. '_alias' => '编辑',
  220. ]);
  221. Route::delete('delete/:id', '/delete')->name('merchantStoreProductGroupDelete')->option([
  222. '_alias' => '删除',
  223. ]);
  224. Route::post('status/:id', '/switchStatus')->name('merchantStoreProductGroupStatus')->option([
  225. '_alias' => '修改状态',
  226. ]);
  227. Route::post('sort/:id', '/updateSort')->name('merchantStoreProductGroupSort')->option([
  228. '_alias' => '排序',
  229. ]);
  230. Route::post('preview', '/preview')->name('merchantStoreProductGroupPreview')->option([
  231. '_alias' => '预览',
  232. ]);
  233. Route::post('labels/:id', '/setLabels')->name('merchantStoreProductGroupLabels')->option([
  234. '_alias' => '设置标签',
  235. ]);
  236. })->prefix('merchant.store.product.ProductGroup')->option([
  237. '_path' => '/marketing/combination/combination_goods',
  238. '_auth' => true,
  239. '_append'=> [
  240. [
  241. '_name' =>'merchantUploadImage',
  242. '_path' =>'/marketing/combination/combination_goods',
  243. '_alias' => '上传图片',
  244. '_auth' => true,
  245. ],
  246. [
  247. '_name' =>'merchantAttachmentLst',
  248. '_path' =>'/marketing/combination/combination_goods',
  249. '_alias' => '图片列表',
  250. '_auth' => true,
  251. ],
  252. ]
  253. ]);
  254. Route::get('config/others/group_buying', 'admin.system.config.ConfigOthers/getGroupBuying')
  255. ->name('merchantConfigGroupBuying')->option([
  256. '_alias' => '拼团配置',
  257. '_path' => '/marketing/combination/combination_goods',
  258. '_auth' => true,
  259. ]);;
  260. //拼团活动
  261. Route::group('store/product/group/buying', function () {
  262. Route::get('lst', '/lst')->name('merchantStoreProductGroupBuyingLst')->option([
  263. '_alias' => '活动列表 ',
  264. ]);
  265. Route::get('detail/:id', '/detail')->name('merchantStoreProductGroupBuyingDetail')->option([
  266. '_alias' => '活动详情',
  267. ]);
  268. })->prefix('merchant.store.product.ProductGroupBuying')->option([
  269. '_path' => '/marketing/combination/combination_list',
  270. '_auth' => true,
  271. '_append'=> [
  272. [
  273. '_name' =>'merchantUploadImage',
  274. '_path' =>'/marketing/combination/combination_list',
  275. '_alias' => '上传图片',
  276. '_auth' => true,
  277. ],
  278. [
  279. '_name' =>'merchantAttachmentLst',
  280. '_path' =>'/marketing/combination/combination_list',
  281. '_alias' => '图片列表',
  282. '_auth' => true,
  283. ],
  284. ]
  285. ]);
  286. //直播间
  287. Route::group('broadcast/room', function () {
  288. Route::get('lst', '/lst')->name('merchantBroadcastRoomLst')->option([
  289. '_alias' => '列表 ',
  290. ]);
  291. Route::get('detail/:id', '/detail')->name('merchantBroadcastRoomDetail')->option([
  292. '_alias' => '详情',
  293. ]);
  294. Route::get('create/form', '/createForm')->name('merchantBroadcastRoomCreateForm')->option([
  295. '_alias' => '添加表单',
  296. '_auth' => false,
  297. '_form' => 'merchantBroadcastRoomCreate',
  298. ]);
  299. Route::post('create', '/create')->name('merchantBroadcastRoomCreate')->option([
  300. '_alias' => '添加',
  301. ]);
  302. Route::get('update/form/:id', '/updateForm')->name('merchantBroadcastRoomUpdateForm')->option([
  303. '_alias' => '编辑表单',
  304. '_auth' => false,
  305. '_form' => 'merchantBroadcastRoomUpdate',
  306. ]);
  307. Route::post('update/:id', '/update')->name('merchantBroadcastRoomUpdate')->option([
  308. '_alias' => '编辑',
  309. ]);
  310. Route::post('status/:id', '/changeStatus')->name('merchantBroadcastRoomChangeStatus')->option([
  311. '_alias' => '修改状态',
  312. ]);
  313. Route::post('export_goods', '/exportGoods')->name('merchantBroadcastRoomExportGoods')->option([
  314. '_alias' => '导入商品',
  315. ]);
  316. Route::post('rm_goods', '/rmExportGoods')->name('merchantBroadcastRoomRmExportGoods')->option([
  317. '_alias' => '删除商品',
  318. ]);
  319. Route::post('mark/:id', '/mark')->name('merchantBroadcastRoomMark')->option([
  320. '_alias' => '备注',
  321. ]);
  322. Route::get('goods/:id', '/goodsList')->name('merchantBroadcastRoomGoods')->option([
  323. '_alias' => '商品详情',
  324. ]);
  325. Route::post('closeKf/:id', '/closeKf')->name('merchantBroadcastRoomCloseKf')->option([
  326. '_alias' => '关闭客服',
  327. ]);
  328. Route::post('comment/:id', '/banComment')->name('merchantBroadcastRoomCloseComment')->option([
  329. '_alias' => '禁言',
  330. ]);
  331. Route::post('feedsPublic/:id', '/isFeedsPublic')->name('merchantBroadcastRoomCloseFeeds')->option([
  332. '_alias' => '收录',
  333. ]);
  334. Route::post('on_sale/:id', '/onSale')->name('merchantBroadcastOnSale')->option([
  335. '_alias' => '商品上下架',
  336. ]);
  337. Route::delete('delete/:id', '/delete')->name('merchantBroadcastRoomDelete')->option([
  338. '_alias' => '删除',
  339. ]);
  340. Route::get('addassistant/form/:id', '/addAssistantForm')->name('merchantBroadcastAddAssistantForm')->option([
  341. '_alias' => '添加客服表单',
  342. '_auth' => false,
  343. '_form' => 'merchantBroadcastAddAssistant',
  344. ]);
  345. Route::post('addassistant/:id', '/addAssistant')->name('merchantBroadcastAddAssistant')->option([
  346. '_alias' => '添加 客服',
  347. ]);
  348. Route::get('push_message/:id', '/pushMessage')->name('merchantBroadcastPushMessage')->option([
  349. '_alias' => '消息推送',
  350. ]);
  351. })->prefix('merchant.store.broadcast.BroadcastRoom')->option([
  352. '_path' => '/marketing/studio/list',
  353. '_auth' => true,
  354. '_append'=> [
  355. [
  356. '_name' =>'merchantUploadImage',
  357. '_path' =>'/marketing/studio/list',
  358. '_alias' => '上传图片',
  359. '_auth' => true,
  360. ],
  361. [
  362. '_name' =>'merchantAttachmentLst',
  363. '_path' =>'/marketing/studio/list',
  364. '_alias' => '图片列表',
  365. '_auth' => true,
  366. ],
  367. ]
  368. ]);
  369. //直播小助手
  370. Route::group('broadcast/assistant', function () {
  371. Route::get('lst', '/lst')->name('merchantBroadcastAssistantLst')->option([
  372. '_alias' => '列表',
  373. ]);
  374. Route::get('create/form', '/createForm')->name('merchantBroadcastAssistantCreateForm')->option([
  375. '_alias' => '添加表单',
  376. '_auth' => false,
  377. '_form' => 'merchantBroadcastAssistantCreate',
  378. ]);
  379. Route::post('create', '/create')->name('merchantBroadcastAssistantCreate')->option([
  380. '_alias' => '添加',
  381. ]);
  382. Route::get('update/:id/form', '/updateForm')->name('merchantBroadcastAssistantUpdateForm')->option([
  383. '_alias' => '编辑表单',
  384. '_auth' => false,
  385. '_form' => 'merchantBroadcastAssistantUpdate',
  386. ]);
  387. Route::post('update/:id', '/update')->name('merchantBroadcastAssistantUpdate')->option([
  388. '_alias' => '编辑',
  389. ]);
  390. Route::post('mark/:id', '/mark')->name('merchantBroadcastAssistantMark')->option([
  391. '_alias' => '备注',
  392. ]);
  393. Route::delete('delete/:id', '/delete')->name('merchantBroadcastAssistantDelete')->option([
  394. '_alias' => '删除',
  395. ]);
  396. })->prefix('merchant.store.broadcast.BroadcastAssistant')->option([
  397. '_path' => '/marketing/studio/assistant',
  398. '_auth' => true,
  399. '_append'=> [
  400. [
  401. '_name' =>'merchantUploadImage',
  402. '_path' =>'/marketing/studio/assistant',
  403. '_alias' => '上传图片',
  404. '_auth' => true,
  405. ],
  406. [
  407. '_name' =>'merchantAttachmentLst',
  408. '_path' =>'/marketing/studio/assistant',
  409. '_alias' => '图片列表',
  410. '_auth' => true,
  411. ],
  412. ]
  413. ]);
  414. //直播间商品
  415. Route::group('broadcast/goods', function () {
  416. Route::get('lst', '/lst')->name('merchantBroadcastGoodsLst')->option([
  417. '_alias' => '列表',
  418. ]);
  419. Route::get('detail/:id', '/detail')->name('merchantBroadcastGoodsDetail')->option([
  420. '_alias' => '详情',
  421. ]);
  422. Route::get('create/form', '/createForm')->name('merchantBroadcastGoodsCreateForm')->option([
  423. '_alias' => '添加表单',
  424. '_auth' => false,
  425. '_form' => 'merchantBroadcastGoodsCreate',
  426. ]);
  427. Route::post('create', '/create')->name('merchantBroadcastGoodsCreate')->option([
  428. '_alias' => '添加',
  429. ]);
  430. Route::get('update/form/:id', '/updateForm')->name('merchantBroadcastGoodsUpdateForm')->option([
  431. '_alias' => '编辑表单',
  432. '_auth' => false,
  433. '_form' => 'merchantBroadcastGoodsUpdate',
  434. ]);
  435. Route::post('update/:id', '/update')->name('merchantBroadcastGoodsUpdate')->option([
  436. '_alias' => '编辑',
  437. ]);
  438. Route::post('status/:id', '/changeStatus')->name('merchantBroadcastGoodsChangeStatus')->option([
  439. '_alias' => '修改状态',
  440. ]);
  441. Route::post('mark/:id', '/mark')->name('merchantBroadcastGoodsMark')->option([
  442. '_alias' => '备注',
  443. ]);
  444. Route::delete('delete/:id', '/delete')->name('merchantBroadcastGoodsDelete')->option([
  445. '_alias' => '删除',
  446. ]);
  447. Route::post('batch_create', '/batchCreate')->name('merchantBroadcastGoodsbatchCreate')->option([
  448. '_alias' => '批量添加',
  449. ]);
  450. })->prefix('merchant.store.broadcast.BroadcastGoods')->option([
  451. '_path' => '/marketing/studio/list',
  452. '_auth' => true,
  453. '_append'=> [
  454. [
  455. '_name' =>'merchantUploadImage',
  456. '_path' =>'/marketing/studio/list',
  457. '_alias' => '上传图片',
  458. '_auth' => true,
  459. ],
  460. [
  461. '_name' =>'merchantAttachmentLst',
  462. '_path' =>'/marketing/studio/list',
  463. '_alias' => '图片列表',
  464. '_auth' => true,
  465. ],
  466. ]
  467. ]);
  468. //积分
  469. Route::group('integral',function(){
  470. Route::get('lst','/getList')->name('merchantIntegralList')->option([
  471. '_alias' => '列表',
  472. ]);
  473. Route::get('title','/getTitle')->name('merchantIntegralTitle')->option([
  474. '_alias' => '统计',
  475. ]);
  476. })->prefix('merchant.user.UserIntegral')->option([
  477. '_path' => '/marketing/integral/log',
  478. '_auth' => true,
  479. '_append'=> [
  480. [
  481. '_name' =>'merchantConfigForm',
  482. '_path' =>'/marketing/integral/log',
  483. '_alias' => '配置获取',
  484. '_auth' => true,
  485. ],
  486. [
  487. '_name' =>'merchantConfigSave',
  488. '_path' =>'/marketing/integral/log',
  489. '_alias' => '配置保存',
  490. '_auth' => true,
  491. ],
  492. ]
  493. ]);
  494. })->middleware(AllowOriginMiddleware::class)
  495. ->middleware(MerchantTokenMiddleware::class, true)
  496. ->middleware(MerchantAuthMiddleware::class)
  497. ->middleware(MerchantCheckBaseInfoMiddleware::class)
  498. ->middleware(LogMiddleware::class);