PluginApplication.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: shenyang
  5. * Date: 2018/12/24
  6. * Time: 3:38 PM
  7. */
  8. namespace Yunshop\ActivityApply;
  9. use Config;
  10. use Yunshop\ActivityApply\services\MemberCenterService;
  11. use Yunshop\Integral\Common\CommonService;
  12. use Yunshop\Integral\Common\Config\MenuHook;
  13. use Yunshop\InterestsDividend\listeners\OrderPaidListener;
  14. class PluginApplication extends \app\common\services\PluginApplication
  15. {
  16. protected function setConfig()
  17. {
  18. \app\common\modules\shop\ShopConfig::current()->set('observer.goods.activity-apply', [
  19. 'class' => \Yunshop\ActivityApply\common\models\ActivityApplyGoods::class,
  20. 'function_save' => 'relationSave'
  21. ]);
  22. // 设置插件ID
  23. \app\common\modules\shop\ShopConfig::current()->set('plugins.activity-apply.id', ACTIVITY_APPLY_PLUGIN_ID);
  24. \app\common\modules\shop\ShopConfig::current()->set('shop-foundation.order.activity_apply_order_operations',
  25. [
  26. 'waitPay' => [
  27. \Yunshop\SnatchRegiment\api\order\operations\Pay::class,
  28. \Yunshop\SnatchRegiment\api\order\operations\Close::class,
  29. ],
  30. 'complete' => [
  31. \Yunshop\SnatchRegiment\api\order\operations\Refund::class,
  32. ]
  33. ]
  34. );
  35. }
  36. public function getTemplateItems()
  37. {
  38. return ['activity_enrol' => [
  39. 'title' => '活动报名(活动报名消息通知)',
  40. 'subtitle' => '活动报名消息通知',
  41. 'value' => 'activity_enrol',
  42. 'param' => [
  43. '昵称','活动金额','活动名称','时间'
  44. ]
  45. ], 'activity_sign' => [
  46. 'title' => '活动报名(活动签到消息通知)',
  47. 'subtitle' => '活动签到消息通知',
  48. 'value' => 'activity_sign',
  49. 'param' => [
  50. '昵称','活动名称','手机号码','时间'
  51. ]
  52. ]];
  53. }
  54. protected function setMenuConfig()
  55. {
  56. /**
  57. * 菜单、权限、路由
  58. */
  59. \app\backend\modules\menu\Menu::current()->setPluginMenu('activity-apply', [
  60. 'name' => '活动报名',
  61. 'type' => 'industry',
  62. 'url' => 'plugin.activity-apply.admin.activity-apply-calssify.index',// url 可以填写http 也可以直接写路由
  63. 'url_params' => '',//如果是url填写的是路由则启用参数否则不启用
  64. 'permit' => 1,//如果不设置则不会做权限检测
  65. 'menu' => 1,//如果不设置则不显示菜单,子菜单也将不显示
  66. 'top_show' => 0,
  67. 'left_first_show' => 0,
  68. 'left_second_show' => 1,
  69. 'icon' => 'fa-link',//菜单图标
  70. 'list_icon' => 'activity-apply',//菜单图标
  71. 'parents' => [],
  72. 'child'=>[
  73. 'plugin.activity-apply.admin.activity-apply-calssify'=> [
  74. 'name' => '活动分类',
  75. 'permit' => 1,
  76. 'menu' => 1,
  77. 'icon' => '',
  78. 'url' => 'plugin.activity-apply.admin.activity-apply-calssify.index',
  79. 'url_params' => [],
  80. 'parents' => ['activity-apply'],
  81. 'child' =>[
  82. 'plugin.activity-apply.admin.activity-apply-calssify-add' => [
  83. 'name' => '添加分类',
  84. 'permit' => 1,
  85. 'menu' => 0,
  86. 'icon' => '',
  87. 'url' => 'plugin.activity-apply.admin.activity-apply-calssify.add',
  88. 'url_params' => [],
  89. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-calssify']
  90. ],
  91. 'plugin.activity-apply.admin.activity-apply-calssify-edit' => [
  92. 'name' => '编辑分类',
  93. 'perimt' => 1,
  94. 'menu' => 0,
  95. 'icon' => '',
  96. 'url' => 'plugin.activity-apply.admin.activity-apply-calssify.edit',
  97. 'url_params' => [],
  98. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-calssify']
  99. ],
  100. 'plugin.activity-apply.admin.activity-apply-calssify-is_open' => [
  101. 'name' => '删除分类',
  102. 'perimt' => 1,
  103. 'menu' => 0,
  104. 'icon' => '',
  105. 'url' => 'plugin.activity-apply.admin.activity-apply-calssify.is_open',
  106. 'url_params' => [],
  107. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-calssify']
  108. ],
  109. 'plugin.activity-apply.admin.activity-apply-calssify-change-is-open' => [
  110. 'name' => '启用/禁用',
  111. 'permit' => 0,
  112. 'menu' => 0,
  113. 'icon' => '',
  114. 'url' => 'plugin.activity-apply.admin.activity-apply-calssify.change-is-open',
  115. 'url_params' => [],
  116. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-calssify']
  117. ],
  118. ]
  119. ],
  120. 'plugin.activity-apply.admin.activity-apply-activity' => [
  121. 'name' => '报名活动',
  122. 'permit' => 1,
  123. 'menu' => 1,
  124. 'icon' => '',
  125. 'url' => 'plugin.activity-apply.admin.activity-apply-activity.index',
  126. 'url_params' => [],
  127. 'parents' => ['activity-apply'],
  128. 'child' => [
  129. 'plugin.activity-apply.admin.activity-apply-activity' => [
  130. 'name' => '报名活动管理',
  131. 'permit' => 1,
  132. 'menu' => 0,
  133. 'icon' => '',
  134. 'url' => 'plugin.activity-apply.admin.activity-apply-activity.index',
  135. 'url_params' => [],
  136. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity'],
  137. 'child' => []
  138. ],
  139. 'plugin.activity-apply.admin.activity-apply-activity-add' => [
  140. 'name' => '添加活动',
  141. 'permit' => 1,
  142. 'menu' => 0,
  143. 'icon' => '',
  144. 'url' => 'plugin.activity-apply.admin.activity-apply-activity.add',
  145. 'url_params' => [],
  146. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  147. ],
  148. 'plugin.activity-apply.admin.activity-apply-activity-search-coupon' => [
  149. 'name' => '搜索商品',
  150. 'permit' => 1,
  151. 'menu' => 0,
  152. 'icon' => '',
  153. 'url' => 'plugin.activity-apply.admin.activity-apply-activity.search-coupon',
  154. 'url_params' => [],
  155. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  156. ],
  157. 'plugin.activity-apply.admin.activity-apply-activity-edit' => [
  158. 'name' => '编辑活动',
  159. 'permit' => 1,
  160. 'menu' => 0,
  161. 'icon' => '',
  162. 'url' => 'plugin.activity-apply.admin.activity-apply-activity.edit',
  163. 'url_params' => [],
  164. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  165. ],
  166. 'plugin.activity-apply.admin.activity-apply-activity-delete' => [
  167. 'name' => '删除活动',
  168. 'permit' => 1,
  169. 'menu' => 0,
  170. 'icon' => '',
  171. 'url' => 'plugin.activity-apply.admin.activity-apply-activity.delete',
  172. 'url_params' => [],
  173. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  174. ],
  175. 'plugin.activity-apply.admin.activity-apply-activity-export' => [
  176. 'name' => '活动导出',
  177. 'permit' => 1,
  178. 'menu' => 0,
  179. 'icon' => '',
  180. 'url' => 'plugin.activity-apply.admin.activity-apply-activity.export',
  181. 'url_params' => [],
  182. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  183. ],
  184. 'plugin.activity-apply.admin.activity-apply-activity-enrol' => [
  185. 'name' => '活动报名数据',
  186. 'permit' => 1,
  187. 'menu' => 0,
  188. 'icon' => '',
  189. 'url' => 'plugin.activity-apply.admin.activity-apply-activity.enrol',
  190. 'url_params' => [],
  191. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  192. ],
  193. 'plugin.activity-apply.admin.activity-apply-activity-enrolExport' => [
  194. 'name' => '活动报名数据导出',
  195. 'permit' => 1,
  196. 'menu' => 0,
  197. 'icon' => '',
  198. 'url' => 'plugin.activity-apply.admin.activity-apply-activity.enrolExport',
  199. 'url_params' => [],
  200. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  201. ],
  202. 'plugin.activity-apply.admin.activity-apply-activity-enrol-details' => [
  203. 'name' => '活动报名数据表单详情',
  204. 'permit' => 1,
  205. 'menu' => 0,
  206. 'icon' => '',
  207. 'url' => 'plugin.activity-apply.admin.activity-apply-activity.enrol-details',
  208. 'url_params' => [],
  209. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  210. ],
  211. 'plugin.activity-apply.admin.activity-apply-activity-setPutaway' => [
  212. 'name' => '启用/禁用',
  213. 'permit' => 0,
  214. 'menu' => 0,
  215. 'icon' => '',
  216. 'url' => 'plugin.activity-apply.admin.activity-apply-activity.setPutaway',
  217. 'url_params' => [],
  218. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  219. ],
  220. 'plugin.activity-apply.admin.activity-apply-activity-setProperty' => [
  221. 'name' => '推荐/精选/热门',
  222. 'permit' => 0,
  223. 'menu' => 0,
  224. 'icon' => '',
  225. 'url' => 'plugin.activity-apply.admin.activity-apply-activity.setProperty',
  226. 'url_params' => [],
  227. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  228. ],
  229. 'plugin.activity-apply.admin.set.index' => [
  230. 'name' => '活动信息',
  231. 'permit' => 1,
  232. 'menu' => 0,
  233. 'icon' => '',
  234. 'url' => 'plugin.activity-apply.admin.set.index',
  235. 'url_params' => [],
  236. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  237. ],
  238. 'plugin.activity-apply.admin.marketing' => [
  239. 'name' => '营销设置',
  240. 'permit' => 1,
  241. 'menu' => 0,
  242. 'icon' => '',
  243. 'url' => 'plugin.activity-apply.admin.set.marketing',
  244. 'url_params' => [],
  245. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  246. ],
  247. 'plugin.activity-apply.admin.fenrun' => [
  248. 'name' => '分润设置',
  249. 'permit' => 1,
  250. 'menu' => 0,
  251. 'icon' => '',
  252. 'url' => 'plugin.activity-apply.admin.set.fenrun',
  253. 'url_params' => [],
  254. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  255. ],
  256. 'plugin.activity-apply.admin.cash' => [
  257. 'name' => '返现设置',
  258. 'permit' => 1,
  259. 'menu' => 0,
  260. 'icon' => '',
  261. 'url' => 'plugin.activity-apply.admin.set.cash',
  262. 'url_params' => [],
  263. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  264. ],
  265. 'plugin.activity-apply.admin.code' => [
  266. 'name' => '活动二维码',
  267. 'permit' => 1,
  268. 'menu' => 0,
  269. 'icon' => '',
  270. 'url' => 'plugin.activity-apply.admin.activity-apply-activity.get-codes',
  271. 'url_params' => [],
  272. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-activity']
  273. ]
  274. ]
  275. ],
  276. 'plugin.activity-apply.admin.activity-apply-order'=> [
  277. 'name' => '付费订单',
  278. 'permit'=> 1,
  279. 'menu' =>1,
  280. 'icon' =>'',
  281. 'url' => 'plugin.activity-apply.admin.activity-apply-order.index',
  282. 'url_parmas'=>[],
  283. 'parents' => ['activity-apply'],
  284. 'child'=> [
  285. 'plugin.activity-apply.admin.activity-apply-order-export' => [
  286. 'name' => '订单导出',
  287. 'permit' => 1,
  288. 'menu' => 0,
  289. 'icon' => '',
  290. 'url' => 'plugin.activity-apply.admin.activity-apply-order.export',
  291. 'url_params' => [],
  292. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-order']
  293. ],
  294. 'plugin.activity-apply.admin.activity-apply-order-index' => [
  295. 'name' => '订单搜索',
  296. 'permit' => 1,
  297. 'menu' => 0,
  298. 'icon' => '',
  299. 'url' => 'plugin.activity-apply.admin.activity-apply-order.index',
  300. 'url_params' => [],
  301. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-order']
  302. ],
  303. 'plugin.activity-apply.admin.activity-apply-order-detail' => [
  304. 'name' => '订单详情',
  305. 'permit' => 1,
  306. 'menu' => 0,
  307. 'icon' => '',
  308. 'url' => 'plugin.activity-apply.admin.activity-apply-order.detail',
  309. 'url_params' => [],
  310. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-order']
  311. ],
  312. ]
  313. ],
  314. 'plugin.activity-apply.admin.activity-apply-lantetn-slide'=> [
  315. 'name' => '幻灯片',
  316. 'permit' => 1,
  317. 'menu' => 1,
  318. 'icon' => '',
  319. 'url' => 'plugin.activity-apply.admin.activity-apply-lantetn-slide.index',
  320. 'url_parmas' => [],
  321. 'parents' => ['activity-apply'],
  322. 'child' => [
  323. 'plugin.activity-apply.admin.activity-apply-lantetn-slide-add' => [
  324. 'name' => '添加幻灯片',
  325. 'permit' => 1,
  326. 'menu' => 0,
  327. 'icon' => '',
  328. 'url' => 'plugin.activity-apply.admin.activity-apply-lantetn-slide.add',
  329. 'url_params' => [],
  330. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-lantetn-slide']
  331. ],
  332. 'plugin.activity-apply.admin.activity-apply-lantetn-slide-edit' => [
  333. 'name' => '编辑幻灯片',
  334. 'perimt' => 1,
  335. 'menu' => 0,
  336. 'icon' => '',
  337. 'url' => 'plugin.activity-apply.admin.activity-apply-lantetn-slide.edit',
  338. 'url_params' => [],
  339. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-lantetn-slide']
  340. ],
  341. 'plugin.activity-apply.admin.activity-apply-lantetn-slide-deleted' => [
  342. 'name' => '删除幻灯片',
  343. 'perimt' => 1,
  344. 'menu' => 0,
  345. 'icon' => '',
  346. 'url' => 'plugin.activity-apply.admin.activity-apply-lantetn-slide.deleted',
  347. 'url_params' => [],
  348. 'parents' => ['activity-apply', 'plugin.activity-apply.admin.activity-apply-lantetn-slide']
  349. ],
  350. ]
  351. ],
  352. 'plugin.activity-apply.admin.activity-apply-set' => [
  353. 'name' => ' 基础设置',
  354. 'permit' => 1,
  355. 'menu' => 1,
  356. 'icon' => '',
  357. 'url' => 'plugin.activity-apply.admin.activity-apply-set.index',
  358. 'url_params' => [],
  359. 'parents' => ['activity-apply']
  360. ]
  361. ]
  362. ]);
  363. }
  364. public function getFrontendWidgetConfig(): array
  365. {
  366. return [
  367. 'member_center.activity-apply' => MemberCenterService::class,
  368. ];
  369. }
  370. public function boot()
  371. {
  372. $events = app('events');
  373. /**
  374. * 创建订单
  375. * OrderCreatedListener
  376. */
  377. $events->subscribe(\Yunshop\ActivityApply\Listener\OrderCreatedListener::class);
  378. /**
  379. * 支付完成
  380. */
  381. $events->subscribe(\Yunshop\ActivityApply\Listener\OrderPaidListener::class);
  382. /**
  383. * 订单完成
  384. *
  385. */
  386. //分润,积分,爱心值
  387. $events->subscribe(\Yunshop\ActivityApply\Listener\OrderReceiveListener::class);
  388. /**
  389. * 订单取消
  390. * OrderCanceledListener
  391. */
  392. $events->subscribe(\Yunshop\ActivityApply\Listener\OrderCanceledListener::class);
  393. /**
  394. * 定时任务
  395. */
  396. \Event::listen('cron.collectJobs', function () {
  397. \Cron::add('ActivityApply', '*/10 * * * *', function () {
  398. (new \Yunshop\ActivityApply\services\TimedTaskServices)->handle();
  399. });
  400. });
  401. }
  402. public function register()
  403. {
  404. // 活动报名插件的ID
  405. define('ACTIVITY_APPLY_PLUGIN_ID', 46);
  406. }
  407. }