<?php

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use JiGuang\JSMS as JSMS;
use Illuminate\Support\Facades\Redis;
use App\Models\Banners;
use App\Services\CategoryService;
use App\Models\Product;
use App\Models\CartItem;
/**
 *
 * Copyright: Copyright (c) 2019 LanRu-Caifu
 *
 * @Description:  商城
 * @version: v1.0.0
 * @author: fengyichao
 * @date: 2019年7月31日 下午1:37:30
 *
 * Modification History:
 * Date         Author          Version            Description
 *---------------------------------------------------------*
 * 2019年7月31日     fengyichao           v1.0.0               修改原因
 */
class ShopController  extends ApiController {
	public function __construct(CategoryService $categoryService) {
		$this->categoryService = $categoryService;
	}
	/**
	 *
	 * @api {post} shop/index 商城-首页
	 * @apiName shop/index
	 * @apiGroup shop
	 * @apiParam {int} page 页码
	 * @apiSuccess {List[Map]} banners 顶部轮播
	 * @apiSuccess (banners){String} image 图片
	 * @apiSuccess (banners){String} url 链接
	 * @apiSuccess {List[Map]} categorys 顶部轮播
	 * @apiSuccess (categorys){int} id 分类id
	 * @apiSuccess (categorys){String} name 分类名称
	 * @apiSuccess {Object} products 商品对象
	 * @apiSuccess (products) {List[Map]}  data 商品分页数据
	 * @apiSuccess (data) {int}  id 商品id
	 * @apiSuccess (data) {int}  category_id 分类id
	 * @apiSuccess (data) {string}  title 商品标题
	 * @apiSuccess (data) {string}  price 价格
	 * @apiSuccess (data) {string}  image 图片地址 需要前端自行拼接阿里云前缀
	 * @apiSuccess (products) {int}  current_page 当前页
	 * @apiSuccess (products) {int}  last_page 最后一页(总页数)
	 * @apiSuccess {int} cart_num cart_num 购物车数量 未登录返0
	 * @apiParamExample {curl} Example usage:
	 * http://www.zhufuwuyou.net/api/shop/index?page=1
	 */
	function index(Request $request) {
		$cartNum=0;
		$page = $request->input ( 'page', 1 );
		// 轮播图
		$banners = Banners::select ( [ 
				'image',
				'url'
		] )->where ( 'status', 1 )->where ( 'start_at', '<=', getDateTime () )->where ( 'end_at', '>=', getDateTime () )->get ();
		$resData ['banners'] = $banners;
		// 分类
		$categorys = $this->categoryService->getCategoryTree ();

		
		$resData ['categorys'] = $categorys;
		//商品
		
		$products = Product::paginate ( 15, [
				'id','category_id','title','price','image'
		], 'page', $page );
		$resData ['products'] = $products;
		//如果已经登录读取购物车数量
		if($request->exists('user_id')){
			$cartNum=CartItem::where('user_id',$request->user_id)->count();
		}
		$resData ['cart_num'] = $cartNum;
		return $this->success ( $resData );
	}
}
