latitude = request()->latitude;
$this->longitude = request()->longitude;
/**
* @var $storeMo Store
*/
$storeMo = app(Store::class);
$data = [];
switch ($coupon['use_type']){
case 4 : $data = $this->getStore($coupon, $storeMo); break;
case 9 : $data = $this->getStoreAndGoods($coupon, $storeMo); break;
case 5 : $data = $this->getIndependentStore($coupon, $storeMo); break;
default : break;
}
//判断是否为独立后台标识
$data['is_shop'] = $coupon['plugin_id'] ? true : false;
return $data;
}
/**
* 优惠卷是独立门店和使用类型是5
* 获取独立门店数据
* @param Store $storeMo
* @param Coupon $coupon
* @return array
*/
private function getIndependentStore(Coupon $coupon, Store $storeMo) : array
{
$data = [];
if($coupon['plugin_id']){
$store = $storeMo->getStoreList([$coupon['storeids']], $this->latitude, $this->longitude)->toArray();
$data['store_list'] = $store['data'];
}
return $data;
}
/**
*
指定门店
* 获取门店
* @param Coupon $coupon
* @param Store $storeMo
* @return array
*/
private function getStore($coupon, $storeMo) : array
{
$store_ids = json_decode($coupon['storeids']);
$data = [];
$store_list = [];
if($store_ids != null){
$store_list = $storeMo->getStoreList($store_ids, $this->latitude, $this->longitude);
}
$data['condition_type'] = 1;
$data['store_list'] = $store_list;
return $data;
}
/**
* 选择商品+选择门店
* 获取商品和门店
* @param Coupon $coupon
* @param Store $storeMo
* @return array
*/
private function getStoreAndGoods($coupon, $storeMo) : array
{
/*门店*/
$use_conditions = unserialize($coupon['use_conditions']);
$store_list = [];
if($use_conditions['is_all_store'] == 1){ // 全选门店
$store_list = $storeMo->getStoreList([], $this->latitude, $this->longitude);
}elseif ($use_conditions['store_ids'] != null){ //指定门店
$store_list = $storeMo->getStoreList($use_conditions['store_ids'], $this->latitude, $this->longitude);
}
/*门店*/
/*商品*/
$goods_list = [];
$goods_mo = Goods::select(['title', 'price', 'thumb', 'id'])->uniacid();
if($use_conditions['is_all_good'] == 1){ // 全选商品
$goods_list = $goods_mo->limit(10)->get();
}elseif ($use_conditions['good_ids'] != null){ //指定商品
$goods_list = $goods_mo->whereIn('id', $use_conditions['good_ids']?:[])->paginate(16,[],'goods_page');
}
/*商品*/
$data['goods_list'] = $goods_list;
$data['store_list'] = $store_list;
$data['condition_type'] = 2;
$data['is_all_good'] = $use_conditions['is_all_good'];
$data['is_all_store'] = $use_conditions['is_all_store'];
return $data;
}
}