StoreVisit.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace app\admin\model\store;
  3. use crmeb\traits\ModelTrait;
  4. use crmeb\basic\BaseModel;
  5. use app\admin\model\user\User;
  6. /**
  7. * TODO 产品浏览记录
  8. * Class StoreVisit
  9. * @package app\admin\model\store
  10. */
  11. class StoreVisit extends BaseModel
  12. {
  13. /**
  14. * 数据表主键
  15. * @var string
  16. */
  17. protected $pk = 'id';
  18. /**
  19. * 模型名称
  20. * @var string
  21. */
  22. protected $name = 'store_visit';
  23. use ModelTrait;
  24. /**
  25. * @param $date
  26. * @param array $class
  27. * @return array
  28. * @throws \think\db\exception\DataNotFoundException
  29. * @throws \think\db\exception\ModelNotFoundException
  30. * @throws \think\exception\DbException
  31. */
  32. public static function getVisit($date, $class = [])
  33. {
  34. $model = new self();
  35. switch ($date) {
  36. case null:
  37. case 'today':
  38. case 'week':
  39. case 'year':
  40. if ($date == null) $date = 'month';
  41. $model = $model->whereTime('add_time', $date);
  42. break;
  43. case 'quarter':
  44. list($startTime, $endTime) = User::getMonth('n');
  45. $model = $model->where('add_time', '>', $startTime);
  46. $model = $model->where('add_time', '<', $endTime);
  47. break;
  48. default:
  49. list($startTime, $endTime) = explode('-', $date);
  50. $model = $model->where('add_time', '>', strtotime($startTime));
  51. $model = $model->where('add_time', '<', strtotime($endTime));
  52. break;
  53. }
  54. $list = $model->group('type')->field('sum(count) as sum,product_id,cate_id,type,content')->order('sum desc')->limit(0, 10)->select()->toArray();
  55. $view = [];
  56. foreach ($list as $key => $val) {
  57. $now_list['name'] = $val['type'] == 'viwe' ? '浏览量' : '搜索';
  58. $now_list['value'] = $val['sum'];
  59. $now_list['class'] = isset($class[$key]) ? $class[$key] : '';
  60. $view[] = $now_list;
  61. }
  62. if (empty($list)) {
  63. $view = [['name' => '暂无数据', 'value' => 100, 'class' => '']];
  64. }
  65. return $view;
  66. }
  67. }