GoodsServer.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace App\Servers;
  3. use App\Models\GoodsSearch;
  4. use App\Models\SearchStr;
  5. use Illuminate\Support\Facades\DB;
  6. /**
  7. * 商品服务
  8. */
  9. class GoodsServer
  10. {
  11. static private $server = '';
  12. private function __construct()
  13. {
  14. }
  15. /**
  16. * 创建对象
  17. * @return GoodsServer
  18. */
  19. static function creatServer()
  20. {
  21. if (empty(self::$server)) {
  22. self::$server = new GoodsServer();
  23. }
  24. return self::$server;
  25. }
  26. /**
  27. * 记录搜索信息
  28. * @param $m_id
  29. * @param $shop_id
  30. * @param $search
  31. * @return bool
  32. */
  33. function setSearch($m_id,$shop_id, $search)
  34. {
  35. $search = strip_tags($search);
  36. $search = trim($search);
  37. if (empty($search)) return false;
  38. $search_id = SearchStr::where('search_str', $search)->where('shop_id',$shop_id)->value('id');
  39. if (empty($search_id)) {
  40. $search_info = SearchStr::create(['search_str' => $search, 'num' => 1, 'shop_id' => $shop_id]);
  41. GoodsSearch::create(['m_id' => $m_id, 'search_id' => $search_info->{'id'}, 'num' => 1, 'shop_id' => $shop_id]);
  42. } else {
  43. SearchStr::where('id', $search_id)->increment('num');
  44. $id = GoodsSearch::where('m_id', $m_id)->where('search_id', $search_id)->value('id');
  45. if (empty($id)) {
  46. GoodsSearch::create(['m_id' => $m_id, 'search_id' => $search_id, 'num' => 1, 'shop_id' => $shop_id]);
  47. } else {
  48. GoodsSearch::where('id', $id)->increment('num');
  49. }
  50. }
  51. return true;
  52. }
  53. /**
  54. * 获取搜索关键信息
  55. * @param $m_id
  56. * @param $shop_id
  57. * @return array
  58. */
  59. function getSearch($m_id,$shop_id)
  60. {
  61. // $hot_search = SearchStr::orderBy('type', 'desc')->orderBy('num', 'desc')->limit(10)->pluck('search_str');//热门搜索
  62. $hot_search = [];
  63. $my_search = GoodsSearch::from('goods_search as g')
  64. ->leftJoin('search_str as s', 's.id', '=', 'g.search_id')
  65. ->where('g.m_id', $m_id)
  66. ->where('g.shop_id', $shop_id)
  67. ->orderBy('g.id','desc')
  68. ->limit(30)
  69. ->pluck('s.search_str');
  70. return ['hot_search' => $hot_search, 'my_search' => $my_search];
  71. }
  72. }