This commit is contained in:
mkm 2023-11-08 14:48:43 +08:00
parent 07d3b2ce98
commit 2c72112def
2 changed files with 35 additions and 18 deletions

View File

@ -92,14 +92,11 @@ class CloudWarehouse extends BaseController
// } // }
/** /**
* 云仓商品列表 * type_id 13云仓商品列表
* @return mixed * @return mixed
*/ */
public function index($street_code, $page = 1, $category_id = 0,$location='') public function index($street_code, $page = 1, $category_id = 0,$location='')
{ {
// if ($category_id == 0) {
// return app('json')->fail('分类id不能为0');
// }
$cloud_product = Db::name('cloud_product')->where('street_code', $street_code)->where('status', 1)->page($page)->column('product_id'); $cloud_product = Db::name('cloud_product')->where('street_code', $street_code)->where('status', 1)->page($page)->column('product_id');
$where = [ $where = [
'is_show' => 1, 'is_show' => 1,
@ -118,23 +115,32 @@ class CloudWarehouse extends BaseController
}else{ }else{
$limit=$page*10; $limit=$page*10;
} }
$count=Db::name('merchant')->where('coordinates','<>','')->count(); $where=[
$select=Db::query("select mer_id,mer_name ,ST_Distance(coordinates, POINT($lon,$lat)) AS distance from eb_merchant where coordinates !='' ORDER BY distance LIMIT $limit, 10;"); 'type_id'=>13,
foreach ($select as $k => $v) { 'is_de'=>0,
$where['mer_id']=$v['mer_id']; 'mer_state'=>1
$product_list = Db::name('store_product')->where($where) ];
->limit(3) $mer_id=Db::name('merchant')->where($where)->column('mer_id');
// $select=Db::query("select mer_id,mer_name ,ST_Distance(coordinates, POINT($lon,$lat)) AS distance from eb_merchant where coordinates !='' and type_id= 13 and is_del=0 and mer_state=1 ORDER BY distance LIMIT 100;");
// halt($select);
if ($mer_id) {
$where['mer_id']=$mer_id;
$select = Db::name('store_product')->where($where)
->withAttr('sku', function ($value, $data) { ->withAttr('sku', function ($value, $data) {
$find = Db::name('store_product_attr_value')->where('mer_id', $data['mer_id'])->where('product_id', $data['product_id'])->find(); $find = Db::name('store_product_attr_value')->where('mer_id', $data['mer_id'])->where('product_id', $data['product_id'])->find();
return ['' => $find]; return ['' => $find];
}) })
->withAttr('merchant', function ($value, $data) {
$find= Db::name('merchant')->where('mer_id', $data['mer_id'])->field('mer_id,mer_name')->find();
return $find;
})
->select(); ->select();
foreach ($product_list as $k1 => $v1){ // foreach ($product_list as $k1 => $v1){
$arr=$v1; // $arr=$v1;
$v['distance']=round($v['distance'],2).'km'; // $v['distance']=round($v['distance'],2).'km';
$arr['merchant']=$v; // $arr['merchant']=$v;
$list[]=$arr; // $list[]=$arr;
} // }
} }

View File

@ -170,6 +170,7 @@ class StoreSpu extends BaseController
{ {
[$page, $limit] = $this->getPage(); [$page, $limit] = $this->getPage();
$where = $this->request->params(['common','mer_id']); $where = $this->request->params(['common','mer_id']);
$params = $this->request->params(['location']);
$typeIdArray = Db::name('MerchantType')->whereNotIn('type_code', Merchant::TypeCode['TypeCloudWarehouse'] . ',' .Merchant::TypeCode['TypeSupplyChain'])->column('mer_type_id'); $typeIdArray = Db::name('MerchantType')->whereNotIn('type_code', Merchant::TypeCode['TypeCloudWarehouse'] . ',' .Merchant::TypeCode['TypeSupplyChain'])->column('mer_type_id');
$where['is_gift_bag'] = 0; $where['is_gift_bag'] = 0;
//1:星级 //1:星级
@ -196,8 +197,18 @@ class StoreSpu extends BaseController
} }
$where['product_type'] = 0; $where['product_type'] = 0;
$where['is_stock'] = 1; $where['is_stock'] = 1;
$where['mer_ids'] = Merchant::getInstance()->whereIn('type_id', implode(',', $typeIdArray ??[])) if($params['location']!=''){
->where(['status' => 1, 'mer_state' => 1, 'is_del' => 0])->column('mer_id'); [$lon,$lat]=explode(',',$params['location']);
$select=Db::query("select mer_id,ST_Distance(coordinates, POINT($lon,$lat)) AS distance from eb_merchant where coordinates !='' and type_id IN ('10', '17') and is_del=0 and mer_state=1 ORDER BY distance LIMIT 100;");
$arr=[];
foreach($select as $k=>$v){
$arr[]=$v['mer_id'];
}
if($arr){
$where['mer_ids'] =$arr;
}
}
$data = $this->repository->getApiSearch($where, $page, $limit, $this->userInfo); $data = $this->repository->getApiSearch($where, $page, $limit, $this->userInfo);
return app('json')->success($data); return app('json')->success($data);
} }