<?php

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use JiGuang\JSMS as JSMS;
use Redis;
use App\Http\Controllers\Transformers\TeacherTransformer;
use Dingo\Api\Http\Response;
use Validator;
use App\Models\Notice;
use App\Models\Banners;
use App\Models\Goods;
use DB;
use App\Models\UserCutMsgClose;
use App\Models\Activity;
use App\Models\Cut;

class GoodsController extends ApiController {
	/**
	 *
	 * @api {post} goods/detail 商品详情(我方部分)
	 * @apiName goods/detail
	 * @apiGroup goods
	 * @apiParamExample {curl} Example usage:
	 * http://59.110.137.245:8081/api/goods/detail?json=ewogICJib2R5IiA6IHsKICAgICJnb29kc19pZCIgOiA3NAogIH0sCiAgImhlYWRlciIgOiB7CiAgICAic2lnbiIgOiAiMGExMzIzZTI1ZGJlMGZiMjcyNDBjMThhNmE4NjJmMGIiLAogICAgInZlcnNpb24iIDogIjUuMS4wIiwKICAgICJjaGFubmVsIiA6ICIyIiwKICAgICJpZGZhIiA6ICIwMzNFQUU2NC0xQURGLTQ2QkQtOEU1RC05NUY4NzI0QkEwQUEiLAogICAgInRlcm1pbmFsIiA6IDEsCiAgICAidHJhbnNhY3Rpb25fdHlwZSIgOiAiaW5pdGlhbGl6ZSIsCiAgICAiY2l0eV9pZCIgOiAiMTIwMTAwIiwKICAgICJ0b2tlbiIgOiAiZWI1N2M2NzdhMjYyMDU4NTgyYmQwZjQzNTFhNDg4YjkiLAogICAgImltZWkiIDogIjcwMDMxRTkwLUIzQTgtNENDQi04Q0YwLTYwNkJFQjVGNDRDQSIsCiAgICAidGltZV9zdGFtcCIgOiAiMTU2MTM2MTY4NyIsCiAgICAiaXAiIDogIjEwMC0xMDctNC0xNTIiLAogICAgInVhIiA6ICJpUGhvbmUgNnMgUGx1cyIsCiAgICAibmV0d29ya19vcGVyIiA6ICIxIiwKICAgICJuZXR3b3JrX3N0YXR1cyIgOiAiMSIsCiAgICAiYmxhY2tfYm94IiA6ICJleUowYjJ0bGJrbGtJam9pZVhOd2NqVjBSbkZpTjBSTlFWaFNWblpFWm5GS1JVTkpNRzlNUW0xSFNscFJkbXBNY2tSdmJ6WndNM1pNU2tGUFZqZzJkV2xvVUU5WWRYQm9kbXRwUXpWMFdsaHZUVWxYYWtkYVVITkRUVkJTVVdScVZtYzlQU0lzSW05eklqb2lhVTlUSWl3aWMyVnhTV1FpT2lJeE5UVTNPVEkzTXpVM016a3lNVEEzTkRJeE1TSXNJbkJ5YjJacGJHVlVhVzFsSWpvMU1qWXNJblpsY25OcGIyNGlPaUl6TGpJdU1pSjkiLAogICAgIm1lc3NhZ2VfaWQiIDogIjIwMTkwNjI0MTUzNDQ3MTYzMDE1NjEzNjE2ODciCiAgfQp9
	 * @apiParam {int} goods_id 商品id(由首页列表返回)
	 * @apiSuccess {string} is_has_cutting 是否有正在砍价的 1:有 0:无
	 * @apiSuccess {string} sku 本商品当前sku
	 * @apiSuccess {string} goods_name 商品名称
	 * @apiSuccess {list[Map]} anthor_sku  本商品其他sku
	 * @apiSuccess (anthor_sku) {string} sku sku
	 * @apiSuccess (anthor_sku) {string} name 商品名称
	 * @apiSuccess (anthor_sku) {string} base_price 底价
	 * @apiSuccess (anthor_sku) {string} is_free_shipping 是否包邮 0:不包邮 1:包邮
	 * @apiSuccess {string} distance_end_time 结束时间(时间戳)
	 * @apiSuccess {string} current_cut_id 当前用户当前商品正在发起的cut_id
	 * @apiPermission token 必传
	 */
	function detail(Request $request) {
		$resData ['is_has_cutting'] = 0;
		if (isset ( $request->user_id )) {
			$userId=$request->user_id;
			$cut = Cut::where ( 'status', 1 )->where ( 'user_id', $userId )->where ( 'goods_id', $request->goods_id )->first ();
			$resData ['is_has_cutting'] = $cut ? 1 : 0;
			$resData ['current_cut_id'] = $cut ? $cut->id : '';
		}
		$rules = [ 
				'goods_id' => [ 
						'required'
				]
		];
		$validator = app ( 'validator' )->make ( $request->all (), $rules );
		if ($validator->fails ()) {
			$message = '';
			foreach ( $validator->errors ()->toArray () as $key => $value ) {
				$message .= $key . ':' . $value [0] . ',';
			}
			$message = trim ( $message, ',' );
			return $this->error ( 1000, '参数有误:' . $message );
		}
		$goodsId = $request->goods_id;
		$goods = Goods::find ( $goodsId );
		if (! $goods)
			return $this->error ( 1002, '该商品不存在' );

		$productId = $goods->product_id;
		$anthorSku = Goods::where ( 'product_id', $productId )->where ( 'activity_id', $goods->activity_id )->get ( [ 
				'id as goods_id',
				'sku',
				'name',
				'base_price',
				'is_free_shipping'
		] );
		$resData ['goods_id'] = $goods->id;
		$resData ['goods_name'] = $goods->name;
		$resData ['sku'] = $goods->sku;
		$resData ['base_price'] = $goods->base_price;
		$resData ['anthor_sku'] = $anthorSku;
		$lastActivity = Activity::find ( $goods->activity_id );
		$distanceEndTime = strtotime ( $lastActivity->endtime );
		$resData ['distance_end_time'] = $distanceEndTime;
		return $this->success ( $resData );
	}
}
