<?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;
use App\Services\OSS;
use Image;
use App\Models\UserCutMsgClose;
use App\Jobs\CloseCut;

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} address_id 地址id
	 * @apiParam {int} cut_id 砍价id 非必传 如果传就是帮砍，如果不传就是发起
	 * @apiSuccess {String} cut_price 砍掉的金额
	 * @apiSuccess {Int} cut_id 砍价id
	 * @apiPermission token 必传
	 */
	function do(Request $request) {
		$goodsId = $request->goods_id;
		$userId = $request->user_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 );
		}
		$goods = Goods::find ( $goodsId );
		if (! $goods)
			return $this->error ( 1002, '该商品不存在' );
		$userInfo = getUserInfoByToken ( $request->token );
		$nickname = $userInfo ['nick_name'];
		$avatar = $userInfo ['avatar'];
		//新老用户
        $is_new = true;

		if (! $request->exists ( 'cut_id' )) {
			// 发
			// 是否有进行中的
			$condition ['user_id'] = $userId;
			$condition ['status'] = 1;
			$condition ['goods_id'] = $goodsId;

			if (Cut::where ( $condition )->count ()) {
				return $this->error ( 1, '您已参加，请去详情页查看' );
			}

            //是否首次
            $is_first = Cut::where ( 'user_id', $userId )->count ();
			if ($is_new) {
			    if($is_first){
                    $rate = rand ( 60, 65 );
                }else{
                    $rate = rand ( 40, 50 );
                }
			} else {
				// old
				if ($is_first) {
					// 首
					$rate = rand ( 50, 55 );
				} else {
					// 非首
                    $rate = rand ( 40, 50 );
				}
			}
            $differentPrice = $goods->price - $goods->base_price;

			$cutPrice = sprintf("%01.2f",$differentPrice * $rate / 100);
			$cutData ['address_id']=$request->address_id;
			$cutData ['user_id'] = $userId;
			$cutData ['goods_id'] = $goodsId;
			$cutData ['current_price'] = $goods->price - $cutPrice;
			$cutData ['price'] = $goods->price;
			$cutData ['base_price'] = $goods->base_price;
			$cutData ['address_id'] = $request->address_id ?? 0;
			$cutData ['is_free_shipping'] = $goods->is_free_shipping ;
			$cut = Cut::create ( $cutData );
			$cutLogData ['cut_id'] = $cut->id;
			$cutLogData ['cut_user_id'] = $userId;
			$cutLogData ['cut_price'] = $cutPrice;
			$cutLogData ['goods_id'] = $goodsId;
			$cutLogData ['nickname'] = $nickname;
			$cutLogData ['avatar'] = $avatar;
			$cutLogData ['type'] = 1;
			CutLog::create ( $cutLogData );

			$resDate ['cut_price'] = $cutPrice;
			$resDate ['cut_id'] = $cut->id;
			//推入异步队列 两小时后关闭砍价
			CloseCut::dispatch($cut->id)->delay(now()->addMinutes(120));
			return $this->success ( $resDate );
		} else {
            $cutId = $request->cut_id;
            $cut = Cut::find($cutId);
            if ($goods->cut_num == (CutLog::where ( 'cut_id', $cutId )->count ()) + 1) {
                // // 如果达到标准 final
                $cutPrice = number_format($cut->current_price - $goods->base_price, 2);

            }else {
                // 帮
                $differentPrice = $cut->price - $cut->base_price;
                $leftPrice = $cut->current_price - $cut->base_price;
                if ($cut->user_id == $userId)
                    return $this->error(3, '自己不能自己');
                // 同一商品只能一次
                if (CutLog::where('cut_user_id', $userId)->where('cut_id', $cutId)->count())
                    return $this->error(2, '您已经帮过');

                $is_first = CutLog::where('cut_user_id', $userId)->where('type', 2)->count();
                if ($is_first) {
                    if ($is_new) {
                        $rate = rand(30, 35);
                    } else {
                        $rate = rand(20, 25);
                    }
                    //剩余差价
                    $cutPrice = $leftPrice * $rate / 100;
                } else {
                    //看是第几刀 按差价算
                    $cuts = CutLog::where('cut_id', $cutId)->count();
                    if ($cuts == 1) {
                        //第二刀
                        $rate = rand(20, 30);
                        $cutPrice = $differentPrice * $rate / 100;
                    } else {
                        //平均
                        $leftCuts = $goods->cut_num - $cuts;
                        $cutPrice = $leftPrice / $leftCuts * mt_rand(80, 120) / 100;
                    }
                }

                $cutPrice = sprintf("%01.2f", $cutPrice);
            }
            $cut->current_price = $cut->current_price - $cutPrice;
            $cut->save();
            $cutLogData ['cut_id'] = $cutId;
            $cutLogData ['cut_user_id'] = $userId;
            $cutLogData ['cut_price'] = $cutPrice;
            $cutLogData ['goods_id'] = $goodsId;

            $cutLogData ['nickname'] = $nickname;
            $cutLogData ['avatar'] = $avatar;
            CutLog::create($cutLogData);

			$resDate ['cut_price'] = $cutPrice;
			$resDate ['cut_id'] = $cutId;
			
			return $this->success ( $resDate );
		}
	}
	/**
	 *
	 * @api {post} cut/detail 砍价详情
	 * @apiName cut/detail
	 * @apiGroup cut
	 * @apiParamExample {curl} Example usage:
	 * http://59.110.137.245:8081/api/cut/detail?json=ewoJImJvZHkiOiB7CgkJImN1dF9pZCI6ICI0MyIKCX0sCgkiaGVhZGVyIjogewoJCSJzaWduIjogIjBhMTMyM2UyNWRiZTBmYjI3MjQwYzE4YTZhODYyZjBiIiwKCQkidmVyc2lvbiI6ICI1LjEuMCIsCgkJImNoYW5uZWwiOiAiMiIsCgkJImlkZmEiOiAiMDMzRUFFNjQtMUFERi00NkJELThFNUQtOTVGODcyNEJBMEFBIiwKCQkidGVybWluYWwiOiAxLAoJCSJ0cmFuc2FjdGlvbl90eXBlIjogImluaXRpYWxpemUiLAoJCSJjaXR5X2lkIjogIjEyMDEwMCIsCgkJInRva2VuIjogImViNTdjNjc3YTI2MjA1ODU4MmJkMGY0MzUxYTQ4OGI5IiwKCQkiaW1laSI6ICI3MDAzMUU5MC1CM0E4LTRDQ0ItOENGMC02MDZCRUI1RjQ0Q0EiLAoJCSJ0aW1lX3N0YW1wIjogIjE1NjEzNjE2ODciLAoJCSJpcCI6ICIxMDAtMTA3LTQtMTUyIiwKCQkidWEiOiAiaVBob25lIDZzIFBsdXMiLAoJCSJuZXR3b3JrX29wZXIiOiAiMSIsCgkJIm5ldHdvcmtfc3RhdHVzIjogIjEiLAoJCSJibGFja19ib3giOiAiZXlKMGIydGxia2xrSWpvaWVYTndjalYwUm5GaU4wUk5RVmhTVm5aRVpuRktSVU5KTUc5TVFtMUhTbHBSZG1wTWNrUnZielp3TTNaTVNrRlBWamcyZFdsb1VFOVlkWEJvZG10cFF6VjBXbGh2VFVsWGFrZGFVSE5EVFZCU1VXUnFWbWM5UFNJc0ltOXpJam9pYVU5VElpd2ljMlZ4U1dRaU9pSXhOVFUzT1RJM016VTNNemt5TVRBM05ESXhNU0lzSW5CeWIyWnBiR1ZVYVcxbElqbzFNallzSW5abGNuTnBiMjRpT2lJekxqSXVNaUo5IiwKCQkibWVzc2FnZV9pZCI6ICIyMDE5MDYyNDE1MzQ0NzE2MzAxNTYxMzYxNjg3IgoJfQp9
	 * @apiParam {int} cut_id 砍价id
	 * @apiSuccess {String} cut_id 砍价id
	 * @apiSuccess {String} avatar 头像
	 * @apiSuccess {String} goods_id 商品
	 * @apiSuccess {String} address_id 地址id
	 * @apiSuccess {Map} sku  商品信息
	 * @apiSuccess (sku) {String} sku  sku
	 * @apiSuccess (sku) {String} price  售价
	 * @apiSuccess (sku) {String} current_price  当前价格
	 * @apiSuccess (sku) {string} name 商品名称
	 * @apiSuccess (sku) {String} base_price  底价
	 * @apiSuccess (sku) {String} aleady_cut_price 已经砍掉的价格
	 * @apiSuccess (sku) {String} different_price 还差XX元  【只有type=2,4,6时才需关注】
	 * @apiSuccess (sku) {String} img_url 商品图
	 * @apiSuccess {String} avatar 最上方头像
	 * @apiSuccess {string} cut_end_time 砍价结束时间
	 * @apiSuccess {string} trigger_close 1:关闭 0:开启
	 * @apiSuccess {List[Map]} helper_list 好友帮助列表
	 *
	 * @apiSuccess (helper_list) nickname 昵称
	 * @apiSuccess (helper_list) cut_price 砍掉的价格
	 * @apiSuccess  {Int} type 1:发起-到底价2:发起-未到底价 3:帮砍-已帮-到底 4:帮砍-已帮-未到底价 5:帮砍-未帮-已到底价 6:帮砍-未帮-未到底价
	 * @apiPermission token 必传
	 */
	function detail(Request $request) {
		$rules = [ 
				'cut_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 );
		}

		$cutId = $request->cut_id;
		$userId = $request->user_id;
		$cut = Cut::find ( $cutId );
		if (! $cut)
			return $this->error ( 1000, '错误的cut_id' );
		$goods = Goods::find ( $cut->goods_id );
		if (isset($userId) && $cut->user_id == $userId) {
			// 自
			if ($goods->base_price == $cut->current_price) {
				// 到底
				$type = 1;
			} else {
				$type = 2;
			}
		} else {
			// 帮
			$helpCondition = [ 
					'cut_id' => $cutId,
					'cut_user_id' => $userId
			];
			if (isset($userId) && CutLog::where ('cut_id',$cutId)->where('cut_user_id',$userId)->count ()) {
				// 已帮
				if ($goods->base_price == $cut->current_price) {
					// 到底
					$type = 3;
				} else {
					$type = 4;
				}
			} else {
				// 没帮
				if ($goods->base_price == $cut->current_price) {
					// 到底
					$type = 5;
				} else {
					$type = 6;
				}
			}
		}
		$alreadyCutPrice = CutLog::where ( 'cut_id', $cutId )->sum ( 'cut_price' );
		$sku ['sku'] = $goods->sku;
		$sku ['price'] = $goods->price;
		$sku ['current_price'] = sprintf("%01.2f",  $goods->price - $alreadyCutPrice);
		$sku ['base_price'] = $goods->base_price;
		$sku ['aleady_cut_price'] = sprintf("%01.2f",$alreadyCutPrice);
		$sku ['different_price'] = sprintf("%01.2f",$sku ['current_price'] - $goods->base_price);
		$sku ['name'] = $goods->name;
		$sku ['img_url'] = $goods->img_url;
		$cutCondition ['cut_id'] = $cutId;
		$helperList = CutLog::select ( [ 
				'nickname',
				'cut_price',
				'avatar'
		] )->where ( $cutCondition )->get ();

		$resData ['cut_id'] = $cutId;
		$resData ['address_id'] = $cut->address_id;
		$resData ['avatar'] = CutLog::where('cut_id',$cutId)->orderBy('id')->first()->avatar;
		$resData ['goods_id'] = $cut->goods_id;
		$resData ['sku'] = $sku;
		$resData ['cut_end_time'] = strtotime ( CutLog::where ( 'cut_id', $cutId )->first ()->created_at ) + 3600 * 2;
		$resData ['trigger_close'] = UserCutMsgClose::where('user_id',$userId)->count();
		$resData ['helper_list'] = $helperList;
		$resData ['type'] = $type;
		$resData['is_free_shipping'] = $cut->is_free_shipping;
		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} cut_id 管理系统生成的砍价唯一id 与乐友无关
	 * @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'] = $request->user_id;
		// select(['cut.goods_id','goods.name','goods.img_url','status','goods.base_price'])->
		// $skuList = Cut::select ( DB::raw ( "cut.id as cut_id,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'] = '数量有限,先到先得';

		$skuList = Cut::where ( $condition )->select ( 'id as cut_id', 'goods_id', 'status', 'price', 'base_price', 'final_price', 'current_price', 'created_at' )->with ( [ 
				'goods' => function ($query) {
					$query->select ( 'id', 'sku', 'img_url', 'name' );
				}
		] )->orderBy ( 'id', 'desc' )->paginate ( 10 );
		foreach ( $skuList as $k => $v ) {
		    if(!$v->goods){
		        unset($skuList[$k]);
		        continue;
            }
			$v->still_cut_price = round($v->current_price - $v->base_price, 2);
			$v->distance_end_time = strtotime ( $v->created_at ) + 3600 * 2;
			$v->sku = $v->goods->sku;
			$v->img_url = $v->goods->img_url;
			$v->name = $v->goods->name;
			unset ( $v->goods );
		}

		$resData ['sku_list'] = $skuList;
		return $this->success ( $resData );
	}
	/**
	 *
	 * @api {post} cut/get_qrcode 获取小程序二维码
	 * @apiName cut/get_qrcode
	 * @apiGroup cut
	 * @apiParamExample {curl} Example usage:
	 * http://59.110.137.245:8081/api/cut/get_qrcode?json=ewogICJib2R5IiA6IHsKICAgICJjdXRfaWQiIDogNTAKICB9LAogICJoZWFkZXIiIDogewogICAgInNpZ24iIDogIjBhMTMyM2UyNWRiZTBmYjI3MjQwYzE4YTZhODYyZjBiIiwKICAgICJ2ZXJzaW9uIiA6ICI1LjEuMCIsCiAgICAiY2hhbm5lbCIgOiAiMiIsCiAgICAiaWRmYSIgOiAiMDMzRUFFNjQtMUFERi00NkJELThFNUQtOTVGODcyNEJBMEFBIiwKICAgICJ0ZXJtaW5hbCIgOiAxLAogICAgInRyYW5zYWN0aW9uX3R5cGUiIDogImluaXRpYWxpemUiLAogICAgImNpdHlfaWQiIDogIjEyMDEwMCIsCiAgICAidG9rZW4iIDogImViNTdjNjc3YTI2MjA1ODU4MmJkMGY0MzUxYTQ4OGI5IiwKICAgICJpbWVpIiA6ICI3MDAzMUU5MC1CM0E4LTRDQ0ItOENGMC02MDZCRUI1RjQ0Q0EiLAogICAgInRpbWVfc3RhbXAiIDogIjE1NjEzNjE2ODciLAogICAgImlwIiA6ICIxMDAtMTA3LTQtMTUyIiwKICAgICJ1YSIgOiAiaVBob25lIDZzIFBsdXMiLAogICAgIm5ldHdvcmtfb3BlciIgOiAiMSIsCiAgICAibmV0d29ya19zdGF0dXMiIDogIjEiLAogICAgImJsYWNrX2JveCIgOiAiZXlKMGIydGxia2xrSWpvaWVYTndjalYwUm5GaU4wUk5RVmhTVm5aRVpuRktSVU5KTUc5TVFtMUhTbHBSZG1wTWNrUnZielp3TTNaTVNrRlBWamcyZFdsb1VFOVlkWEJvZG10cFF6VjBXbGh2VFVsWGFrZGFVSE5EVFZCU1VXUnFWbWM5UFNJc0ltOXpJam9pYVU5VElpd2ljMlZ4U1dRaU9pSXhOVFUzT1RJM016VTNNemt5TVRBM05ESXhNU0lzSW5CeWIyWnBiR1ZVYVcxbElqbzFNallzSW5abGNuTnBiMjRpT2lJekxqSXVNaUo5IiwKICAgICJtZXNzYWdlX2lkIiA6ICIyMDE5MDYyNDE1MzQ0NzE2MzAxNTYxMzYxNjg3IgogIH0KfQ==
	 * @apiParam {int} cut_id 砍价id
	 * @apiSuccess {String} qrcode_url 二维码完整url
	 * @apiPermission token 必传
	 */
	function getQrCode(Request $request) {
		$cutId = $request->cut_id;
		$app = app ( 'wechat.mini_program' );
		$data = $app->app_code->getUnlimit ( 'cut_id-' . $cutId, [ 
				'page' => 'pages/index/main',
				'width' => 600
		] );
		$base64 = base64_encode ( $data );
		$img = Image::make ( $base64 );
		$ossKey = time () . '.jpg';
		$fileFullName = public_path ( $ossKey );
		$img->save ( $fileFullName );

		$res = OSS::publicUpload ( OSS::getBucket (), $ossKey, $fileFullName, [ 
				'ContentType' => 'image/jpg'
		] );
		unlink ( $fileFullName );
		$resData ['qrcode_url'] = OSS::getPublicObjectURL ( OSS::getBucket (), $ossKey );
		return $this->success ( $resData );
	}

    /**
     *
     * @api {post} cut/update_order 更新订单
     * @apiName cut/updateOrder
     * @apiGroup cut
     * @apiParam {int} cut_id 砍价ID
     * @apiParam {int} order_id 订单号
     * @apiPermission token 必传
     */
	function updateOrder(Request $request){
	    $order_id = $request->order_id;
        $user_id = $request->user_id;
        $cut_id = $request->cut_id;
        $cut = Cut::find($cut_id);
        if(!$cut){
            $this->error('401', '数据错误');
        }
        if($cut->user_id != $user_id){
            $this->error('401', '数据错误');
        }

        $cut->order_id = $order_id;
        $cut->status = 2;
        $res = $cut->save();

        return $res ? $this->success() : $this->error('400', '下单失败');
    }
}
