| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- namespace App\Servers;
- use App\Models\GoodsSearch;
- use App\Models\SearchStr;
- use Illuminate\Support\Facades\DB;
- /**
- * 商品服务
- */
- class GoodsServer
- {
- static private $server = '';
- private function __construct()
- {
- }
- /**
- * 创建对象
- * @return GoodsServer
- */
- static function creatServer()
- {
- if (empty(self::$server)) {
- self::$server = new GoodsServer();
- }
- return self::$server;
- }
- /**
- * 记录搜索信息
- * @param $m_id
- * @param $shop_id
- * @param $search
- * @return bool
- */
- function setSearch($m_id,$shop_id, $search)
- {
- $search = strip_tags($search);
- $search = trim($search);
- if (empty($search)) return false;
- $search_id = SearchStr::where('search_str', $search)->where('shop_id',$shop_id)->value('id');
- if (empty($search_id)) {
- $search_info = SearchStr::create(['search_str' => $search, 'num' => 1, 'shop_id' => $shop_id]);
- GoodsSearch::create(['m_id' => $m_id, 'search_id' => $search_info->{'id'}, 'num' => 1, 'shop_id' => $shop_id]);
- } else {
- SearchStr::where('id', $search_id)->increment('num');
- $id = GoodsSearch::where('m_id', $m_id)->where('search_id', $search_id)->value('id');
- if (empty($id)) {
- GoodsSearch::create(['m_id' => $m_id, 'search_id' => $search_id, 'num' => 1, 'shop_id' => $shop_id]);
- } else {
- GoodsSearch::where('id', $id)->increment('num');
- }
- }
- return true;
- }
- /**
- * 获取搜索关键信息
- * @param $m_id
- * @param $shop_id
- * @return array
- */
- function getSearch($m_id,$shop_id)
- {
- // $hot_search = SearchStr::orderBy('type', 'desc')->orderBy('num', 'desc')->limit(10)->pluck('search_str');//热门搜索
- $hot_search = [];
- $my_search = GoodsSearch::from('goods_search as g')
- ->leftJoin('search_str as s', 's.id', '=', 'g.search_id')
- ->where('g.m_id', $m_id)
- ->where('g.shop_id', $shop_id)
- ->orderBy('g.id','desc')
- ->limit(30)
- ->pluck('s.search_str');
- return ['hot_search' => $hot_search, 'my_search' => $my_search];
- }
- }
|