ShowPromotion.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  9. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  10. * =========================================================
  11. */
  12. namespace addon\divideticket\event;
  13. use think\facade\Db;
  14. /**
  15. * 活动展示
  16. */
  17. class ShowPromotion
  18. {
  19. /**
  20. * 活动展示
  21. * @param array $params
  22. * @return array
  23. */
  24. public function handle($params = [])
  25. {
  26. $data = [
  27. 'shop' => [
  28. [
  29. //插件名称
  30. 'name' => 'divideticket',
  31. //展示分类(根据平台端设置,admin(平台营销),shop:店铺营销,member:会员营销, tool:应用工具)
  32. 'show_type' => 'member',
  33. //展示主题
  34. 'title' => '好友瓜分券',
  35. //展示介绍
  36. 'description' => '帮助商家提升客单价',
  37. //展示图标
  38. 'icon' => 'addon/divideticket/icon.png',
  39. //跳转链接
  40. 'url' => 'divideticket://shop/divideticket/lists',
  41. 'summary' => $this->summary($params)
  42. ],
  43. ],
  44. ];
  45. return $data;
  46. }
  47. /**
  48. * 营销活动概况
  49. * @param $params
  50. * @return array
  51. */
  52. private function summary($params)
  53. {
  54. if (empty($params)) {
  55. return [];
  56. }
  57. //获取活动数量
  58. if (isset($params[ 'count' ])) {
  59. $count = model("promotion_friends_coupon")->getCount();
  60. return [
  61. 'count' => $count
  62. ];
  63. }
  64. //获取活动概况,需要获取开始时间与结束时间
  65. if (isset($params[ 'summary' ])) {
  66. $list = model("promotion_friends_coupon")->getList([
  67. [ '', 'exp', Db::raw('not ( (`start_time` >= ' . $params[ 'end_time' ] . ') or (`end_time` <= ' . $params[ 'start_time' ] . '))') ],
  68. [ 'site_id', '=', $params[ 'site_id' ] ],
  69. [ 'status', '<>', 2 ],
  70. [ 'status', '<>', -1 ]
  71. ], 'name as promotion_name,coupon_id as promotion_id,start_time,end_time');
  72. return !empty($list) ? [
  73. 'time_limit' => [
  74. 'count' => count($list),
  75. 'detail' => $list,
  76. 'color' => '#7BE295'
  77. ]
  78. ] : [];
  79. }
  80. }
  81. }