1 changed files with 79 additions and 0 deletions
			
			
		@ -0,0 +1,79 @@ | 
				
			|||
<?php | 
				
			|||
 | 
				
			|||
namespace App\Http\Controllers\Api; | 
				
			|||
use App\Http\Controllers\Controller; | 
				
			|||
use App\Models\AgentProduct; | 
				
			|||
use App\Models\Product; | 
				
			|||
use Illuminate\Support\Facades\DB; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * 代理商产品 | 
				
			|||
 * Class AgentProductController | 
				
			|||
 * @package App\Http\Controllers\Api | 
				
			|||
 */ | 
				
			|||
class AgentProductController extends Controller | 
				
			|||
{ | 
				
			|||
	// 代理商产品列表
 | 
				
			|||
	public function index() | 
				
			|||
	{ | 
				
			|||
		$channel_id = request()->input('channel_id'); | 
				
			|||
		if ($channel_id) { | 
				
			|||
			$where['channel_id'] = $channel_id; | 
				
			|||
		} | 
				
			|||
 | 
				
			|||
		$where['agent_id'] = $this->agent_id; | 
				
			|||
 | 
				
			|||
		$list = AgentProduct::where($where) | 
				
			|||
			->with(['product' => fn($query) => $query->select('id', 'title', 'pictures')]) | 
				
			|||
			->select('id', 'sale', 'product_id', 'price', 'original_price') | 
				
			|||
			->orderBy('id', 'DESC') | 
				
			|||
			->simplePaginate(); | 
				
			|||
		return $this->success($list); | 
				
			|||
	} | 
				
			|||
 | 
				
			|||
	// 产品详情
 | 
				
			|||
	public function show() | 
				
			|||
	{ | 
				
			|||
		$id = request()->input('id'); | 
				
			|||
		if (!$id || !ctype_digit($id)) { | 
				
			|||
			return $this->error('无效的ID'); | 
				
			|||
		} | 
				
			|||
 | 
				
			|||
		// TODO 此处待优化
 | 
				
			|||
		$data = DB::table('agent_products AS ap') | 
				
			|||
			->leftJoin('products AS p', 'p.id', '=', 'ap.product_id') | 
				
			|||
			//->leftJoin('product_infos AS pi', 'p.id', '=', 'pi.product_id')
 | 
				
			|||
			->select('ap.*', 'p.title', 'p.pictures') | 
				
			|||
			->where('ap.id', $id) | 
				
			|||
			->where(['ap.status' => 1, 'p.status' => 1]) | 
				
			|||
			->first(); | 
				
			|||
 | 
				
			|||
		if (!$data) { | 
				
			|||
			return $this->error('产品不存在或已下架'); | 
				
			|||
		} | 
				
			|||
		$coupon_ids = explode(',', $data->coupon_ids); | 
				
			|||
		$data->coupon_ids = DB::table('coupons')->whereIn('id', $coupon_ids)->pluck('tag'); | 
				
			|||
		$data->pictures = json_decode($data->pictures, true); | 
				
			|||
		unset($data->deleted_at); | 
				
			|||
		return $this->success($data); | 
				
			|||
	} | 
				
			|||
 | 
				
			|||
	// 人气爆款
 | 
				
			|||
	/*public function hot() | 
				
			|||
	{ | 
				
			|||
		$list = Product::get(['title', 'price', 'original_price', 'pictures', 'sale']); | 
				
			|||
		return $this->success($list); | 
				
			|||
	}*/ | 
				
			|||
 | 
				
			|||
	// 猜你喜欢
 | 
				
			|||
	public function guessLike() | 
				
			|||
	{ | 
				
			|||
		$page = request()->only('page'); | 
				
			|||
		if ($page && !ctype_digit($page)) { | 
				
			|||
			return $this->error('页码错误'); | 
				
			|||
		} | 
				
			|||
 | 
				
			|||
		$list = Product::get(['title', 'price', 'original_price', 'pictures', 'sale'])->simplePaginate(); | 
				
			|||
		return $this->success($list); | 
				
			|||
	} | 
				
			|||
} | 
				
			|||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue