<?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\CutLog;
use App\Models\Cut;

class CutController extends ApiController {
	/**
	 *
	 * @api {post} cut/do 砍砍砍
	 * @apiName cut/do
	 * @apiGroup cut
	 * @apiParamExample {curl} Example usage:
	 * http://59.110.137.245:8081/api/cut/do?json=ewogICJib2R5IiA6IHsKICAgICJnb29kc19pZCIgOiA3NAogIH0sCiAgImhlYWRlciIgOiB7CiAgICAic2lnbiIgOiAiMGExMzIzZTI1ZGJlMGZiMjcyNDBjMThhNmE4NjJmMGIiLAogICAgInZlcnNpb24iIDogIjUuMS4wIiwKICAgICJjaGFubmVsIiA6ICIyIiwKICAgICJpZGZhIiA6ICIwMzNFQUU2NC0xQURGLTQ2QkQtOEU1RC05NUY4NzI0QkEwQUEiLAogICAgInRlcm1pbmFsIiA6IDEsCiAgICAidHJhbnNhY3Rpb25fdHlwZSIgOiAiaW5pdGlhbGl6ZSIsCiAgICAiY2l0eV9pZCIgOiAiMTIwMTAwIiwKICAgICJ0b2tlbiIgOiAiZWI1N2M2NzdhMjYyMDU4NTgyYmQwZjQzNTFhNDg4YjkiLAogICAgImltZWkiIDogIjcwMDMxRTkwLUIzQTgtNENDQi04Q0YwLTYwNkJFQjVGNDRDQSIsCiAgICAidGltZV9zdGFtcCIgOiAiMTU2MTM2MTY4NyIsCiAgICAiaXAiIDogIjEwMC0xMDctNC0xNTIiLAogICAgInVhIiA6ICJpUGhvbmUgNnMgUGx1cyIsCiAgICAibmV0d29ya19vcGVyIiA6ICIxIiwKICAgICJuZXR3b3JrX3N0YXR1cyIgOiAiMSIsCiAgICAiYmxhY2tfYm94IiA6ICJleUowYjJ0bGJrbGtJam9pZVhOd2NqVjBSbkZpTjBSTlFWaFNWblpFWm5GS1JVTkpNRzlNUW0xSFNscFJkbXBNY2tSdmJ6WndNM1pNU2tGUFZqZzJkV2xvVUU5WWRYQm9kbXRwUXpWMFdsaHZUVWxYYWtkYVVITkRUVkJTVVdScVZtYzlQU0lzSW05eklqb2lhVTlUSWl3aWMyVnhTV1FpT2lJeE5UVTNPVEkzTXpVM016a3lNVEEzTkRJeE1TSXNJbkJ5YjJacGJHVlVhVzFsSWpvMU1qWXNJblpsY25OcGIyNGlPaUl6TGpJdU1pSjkiLAogICAgIm1lc3NhZ2VfaWQiIDogIjIwMTkwNjI0MTUzNDQ3MTYzMDE1NjEzNjE2ODciCiAgfQp9
	 * @apiParam {int} goods_id 商品id 
	 * @apiParam {int} cut_id 砍价id 非必传 如果传就是帮砍，如果不传就是发起
	 * @apiSuccess {String} cut_price 砍掉的金额
	 * @apiPermission token 必传
	 */
	function do(Request $request) {
		$goodsId = $request->goods_id;
		$userId=$request->user_id;
		$goods = Goods::find ( $goodsId );
		$isSelfCut=!$request->exists('cut_id');		
		if (1) {
			// new
			if ($isSelfCut) {
				//是否有进行中的
				$condition['user_id']=$userId;
				$condition['status']=1;
				$condition['goods_id']=$goodsId;
				if(Cut::where($condition)->count()){
					return $this->error(1,'您已参加，请去详情页查看');
				}
				// 自
				$rate = rand ( 60, 65 );
				$differentPrice = $goods->price - $goods->base_price;
			} else {
				// 帮
				$rate = rand ( 30, 35 );
				$alreadyCutPrice = CutLog::where ( 'goods_id', $goodsId )->sum ( 'cut_price' );
				$differentPrice = $goods->price - $alreadyCutPrice;
			}
		} else {
			// old
			if (1) {
				// 自
				$rate = rand ( 50, 55 );
				$differentPrice = $goods->price - $goods->base_price;
			} else {
				// 帮
				$rate = rand ( 20, 30 );
				$alreadyCutPrice = CutLog::where ( 'goods_id', $goodsId )->sum ( 'cut_price' );
				$differentPrice = $goods->price - $alreadyCutPrice;
			}
		}
		$cutPrice = $differentPrice * $rate / 100;
		$cutData ['user_id'] = $userId;
		$cutData ['goods_id'] = $goodsId;
		$cutData ['current_price'] = $goods->price - $cutPrice;
		Cut::create ( $cutData );
		$cutLogData ['cut_user_id'] = $userId;
		$cutLogData ['cut_price'] = $cutPrice;
		$cutLogData ['goods_id'] = $goodsId;
		CutLog::create ( $cutLogData );

		$resDate['cut_price']=$cutPrice;
		return $this->success ($resDate);
	}
	function detail(Request $request) {
		$goodsId = 74;
		$goods = Goods::find ( $goodsId );
		if (CutLog::where ( 'goods_id', $goodsId )->where ( 'user_id', $userId )->count ()) {
			// 自 发
		}
		$alreadyCutPrice = CutLog::where ( 'goods_id', $goodsId )->sum ( 'cut_price' );
		$sku ['price'] = $goods->price;
		$sku ['current_price'] = $goods->price - $alreadyCutPrice;
		$sku ['base_price'] = $goods->base_price;
		$sku ['aleady_cut_price'] = $alreadyCutPrice;
		$sku ['different_price'] = $sku ['current_price'] - $goods->base_price;
		$cutCondition ['goods_id'] = $goodsId;
		$cutCondition ['user_id'] = $userId;
		$helperList = CutLog::select ( [ 
				'id as nickname',
				'cut_price'
		] )->where ( $cutCondition )->get ();
		$resData ['sku'] = $sku;
		$resData ['help_list'] = $helperList;
		return $this->success ( $resData );
	}
	/**
	 *
	 * @api {post} cut/my 我的乐砍价
	 * @apiName cut/my
	 * @apiGroup cut
	 * @apiParamExample {curl} Example usage:
	 * http://59.110.137.245:8081/api/cut/my?json=ewogICJib2R5IiA6IHsKICB9LAogICJoZWFkZXIiIDogewogICAgInNpZ24iIDogIjBhMTMyM2UyNWRiZTBmYjI3MjQwYzE4YTZhODYyZjBiIiwKICAgICJ2ZXJzaW9uIiA6ICI1LjEuMCIsCiAgICAiY2hhbm5lbCIgOiAiMiIsCiAgICAiaWRmYSIgOiAiMDMzRUFFNjQtMUFERi00NkJELThFNUQtOTVGODcyNEJBMEFBIiwKICAgICJ0ZXJtaW5hbCIgOiAxLAogICAgInRyYW5zYWN0aW9uX3R5cGUiIDogImluaXRpYWxpemUiLAogICAgImNpdHlfaWQiIDogIjEyMDEwMCIsCiAgICAidG9rZW4iIDogImViNTdjNjc3YTI2MjA1ODU4MmJkMGY0MzUxYTQ4OGI5IiwKICAgICJpbWVpIiA6ICI3MDAzMUU5MC1CM0E4LTRDQ0ItOENGMC02MDZCRUI1RjQ0Q0EiLAogICAgInRpbWVfc3RhbXAiIDogIjE1NjEzNjE2ODciLAogICAgImlwIiA6ICIxMDAtMTA3LTQtMTUyIiwKICAgICJ1YSIgOiAiaVBob25lIDZzIFBsdXMiLAogICAgIm5ldHdvcmtfb3BlciIgOiAiMSIsCiAgICAibmV0d29ya19zdGF0dXMiIDogIjEiLAogICAgImJsYWNrX2JveCIgOiAiZXlKMGIydGxia2xrSWpvaWVYTndjalYwUm5GaU4wUk5RVmhTVm5aRVpuRktSVU5KTUc5TVFtMUhTbHBSZG1wTWNrUnZielp3TTNaTVNrRlBWamcyZFdsb1VFOVlkWEJvZG10cFF6VjBXbGh2VFVsWGFrZGFVSE5EVFZCU1VXUnFWbWM5UFNJc0ltOXpJam9pYVU5VElpd2ljMlZ4U1dRaU9pSXhOVFUzT1RJM016VTNNemt5TVRBM05ESXhNU0lzSW5CeWIyWnBiR1ZVYVcxbElqbzFNallzSW5abGNuTnBiMjRpT2lJekxqSXVNaUo5IiwKICAgICJtZXNzYWdlX2lkIiA6ICIyMDE5MDYyNDE1MzQ0NzE2MzAxNTYxMzYxNjg3IgogIH0KfQ==
	 * @apiParam {int} page 页码
	 * @apiSuccess {String} notice_text 顶部文案
	 * @apiSuccess {list[Map]} sku_list  砍价商品分页列表
	 * @apiSuccess (sku_list) {Int} current_page 当前页
	 * @apiSuccess (sku_list) {Int} total 总页数
	 * @apiSuccess (sku_list) {List[Map]} data 分页数据
	 * @apiSuccess (data) {string} goods_id 管理系统生成的砍价唯一id 与乐友无关
	 * @apiSuccess (data) {string} sku sku
	 * @apiSuccess (data) {string} name 商品名称
	 * @apiSuccess (data) {string} img_url 商品主图
	 * @apiSuccess (data) {string} status 状态 1:进行中 2:已完成 0:失败
	 * @apiSuccess (data) {string} final_price 砍成价【只有status=2时才需关注】
	 * @apiSuccess (data) {string} still_cut_price 还可砍 【只有status=1时才需关注】
	 * @apiSuccess (data) {string} distance_end_time 结束时间(时间戳) 【只有status=1时才需关注】
	 * @apiPermission token 必传
	 */
	function my(Request $request) {
		$condition ['cut.user_id'] = 1111;
		// select(['cut.goods_id','goods.name','goods.img_url','status','goods.base_price'])->
		$skuList = Cut::select ( DB::raw ( "cut.goods_id,goods.sku,goods.img_url,goods.name,goods.base_price,cut.status,cut.final_price,cut.current_price-goods.base_price as still_cut_price,unix_timestamp(cut.created_at)+3600*2 as distance_end_time" ) )->leftJoin ( 'goods', 'cut.goods_id', 'goods.id' )->paginate ( 10 );
		$resData ['notice_text'] = '数量有限,先到先得';

		$resData ['sku_list'] = $skuList;
		return $this->success ( $resData );
	}
}
