ShowPromotion.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  9. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  10. * =========================================================
  11. */
  12. namespace addon\jielong\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' => 'jielong',
  31. //店铺端展示分类 shop:营销活动 member:互动营销
  32. 'show_type' => 'shop',
  33. //展示主题
  34. 'title' => '社群接龙',
  35. //展示介绍
  36. 'description' => '接龙购买,快速成单',
  37. //展示图标
  38. 'icon' => 'addon/jielong/icon.png',
  39. //跳转链接
  40. 'url' => 'jielong://shop/jielong/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_jielong")->getCount([ [ 'site_id', '=', $params[ 'site_id' ] ] ]);
  60. return [
  61. 'count' => $count
  62. ];
  63. }
  64. //获取活动概况,需要获取开始时间与结束时间
  65. if (isset($params[ 'summary' ])) {
  66. $list = model("promotion_jielong")->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', '<>', 3 ]
  71. ], 'jielong_name as promotion_name,jielong_id as promotion_id,start_time,end_time');
  72. return !empty($list) ? [
  73. 'time_limit' => [
  74. 'count' => count($list),
  75. 'detail' => $list,
  76. 'color' => '#E066FF'
  77. ]
  78. ] : [];
  79. }
  80. }
  81. }