<?php

namespace App\Http\Controllers\Channel\Finance;


use App\Http\Controllers\Channel\Finance\Transformers\BillTransformer;
use App\Modules\Finance\Services\BillService;
use Illuminate\Http\Request;


class BillsController extends BaseController
{
    /**
     * @apiDefine Finance 结算提现模块
     */

    /**
     * @apiVersion 1.0.0
     * @apiDescription 获取结算列表
     * @api {GET} bills 获取结算列表
     * @apiGroup Finance
     * @apiName bills
     * @apiParam   {String}  [search_name] 搜索名称
     * @apiParam   {String}  [start_time] 开始时间2017-01-01.(可不传)
     * @apiParam   {String}  [end_time] 结束时间2017-02-01.(可不传)
     * @apiSuccess   {String}  date 日期.
     * @apiSuccess   {Number}  recharge_amount 充值金额.
     * @apiSuccess   {Number}  settlement_price 结算金额.
     * @apiSuccess   {Number}  tallage 扣税金额.
     * @apiSuccess   {String}  rate 比例.
     * @apiSuccessExample {json} Success-Response:
     *
     *     {
     *         "code": 0,
     *         "msg": "",
     *         "data":
     *              {
     *                  "list":[
     *                             {
     *                               "date": "2017-11-18",
     *                               "recharge_amount": 1100,
     *                               "settlement_price": 440,
     *                               "tallage": 0,
     *                               "rate": "0.40%"
     *                               }
     *                          ]
     *                   "meta":{
     *                      "total": 4,
     *                       "per_page": 15,
     *                       "current_page": 1,
     *                       "last_page": 1,
     *                       "next_page_url": "",
     *                       "prev_page_url": ""
     *                          }
     *               }
     *     }
     */
	function get_list(Request $request) {
        $distribution_channel_id = $this->getChannelId();
        $distribution_channel_name = $this->getChannelName();
        $distribution_channel_name = '';

        $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? date('Ymd',strtotime($request->input('start_time'))) : '';
        $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? date('Ymd',strtotime($request->input('end_time'))) : '';
        $end_time = self::getMaxDay($end_time);

        $search_name = $request->has('search_name') ? $request->input('search_name') : '';

        $params = [
            'channel_id'=>$distribution_channel_id,
            'channel_name'=>$distribution_channel_name,
            'search_name'=>$search_name,
            'start_date'=>$start_time,
            'end_date'=>$end_time,
        ];
        $bills = BillService::getBillList($params);
        return response()->pagination(new BillTransformer(), $bills);
    }

    /**
     * @apiVersion 1.0.0
     * @apiDescription 获取结算导出
     * @api {GET} exportBills 获取结算导出
     * @apiGroup Finance
     * @apiName exportBills
     * @apiParam   {String}  [search_name] 搜索名称
     * @apiParam   {String}  [start_time] 开始时间2017-01-01.(可不传)
     * @apiParam   {String}  [end_time] 结束时间2017-02-01.(可不传)
     */
    function export(Request $request) {
        $distribution_channel_id = $this->getChannelId();
        $distribution_channel_name = $this->getChannelName();
        $distribution_channel_name = '';

        $start_time = $request->has('start_time') ? date('Ymd',strtotime($request->input('start_time'))) : '';
        $end_time = $request->has('end_time') ? date('Ymd',strtotime($request->input('end_time'))) : '';
        $end_time = self::getMaxDay($end_time);

        $search_name = $request->has('search_name') ? $request->input('search_name') : '';

        $params = [
            'channel_id'=>$distribution_channel_id,
            'channel_name'=>$distribution_channel_name,
            'search_name'=>$search_name,
            'start_date'=>$start_time,
            'end_date'=>$end_time,
        ];
        $bills = BillService::getBillList($params, true);

        header("Content-type:application/vnd.ms-excel");
        header("Content-Disposition:attachment;filename=" . "结算" . date("YmdHis") . ".csv");
        echo iconv("UTF-8","GBK","\"结算日期\",\"充值金额\",\"佣金比例\",\"扣税金额\",\"结算金额\"\r\n");
        if($bills)
        {
            foreach($bills as $bill)
            {
                echo("\"" . iconv("UTF-8","GBK",date('Y-m-d',strtotime($bill->date))) .  "\",");
                echo("\"" . (float)$bill->recharge_amount .  "\",");
                echo("\"" . ($bill->rate).'%' .  "\",");
                echo("\"" . (float)$bill->tallage .  "\",");
                echo("\"" . (float)$bill->settlement_price.  "\"\r\n");
            }
        }
        exit();
    }
}