| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 | <?php/** * Created by PhpStorm. * User: hp * Date: 2017/12/1 * Time: 11:37 */namespace App\Http\Controllers\Channel\Trade;use App\Http\Controllers\Channel\BaseController;use App\Http\Controllers\Channel\Trade\Transformers\OrderDayStatTransformer;use App\Modules\Trade\Services\OrderDayStatService;use App\Modules\Channel\Services\ChannelService;use Illuminate\Http\Request;class OrderDayStatController extends BaseController{    /**     * @apiDefine Trade 订单     */    /**     * @apiVersion 1.0.0     * @api {GET} trade/orderDayStats 获取日订单统计数据     * @apiGroup Trade     * @apiName orderDayStats     * @apiParam {Number}  begin_time 开始时间.     * @apiParam {Number}  end_time 结束时间.     * @apiSuccess {Number}  date 日期.     * @apiSuccess {String}  pay_success_user_num 总付费用户数     * @apiSuccess {String}  ticket_recharge_user_num 普通充值用户数.     * @apiSuccess {String}  year_recharge_user_num 包年VIP充值用户数.     * @apiSuccess {String}  total_recharge_amount 总充值金额.     * @apiSuccess {Number}  unpaid_num 未支付用户数     * @apiSuccess {String}  paid_num 付费用用户数     * @apiSuccess {String}  promotion_total_uv uv     * @apiSuccess {String}  promotion_total_pv pv     * @apiSuccess {String}  force_user_num 强关用户数     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *     *         "data": [     *            {     *              "date": "2017-12-01",     *              "pay_success_user_num": 1212,     *              "ticket_recharge_user_num": 1212,     *              "year_recharge_user_num": 1212,     *              "total_recharge_amount": 1212,     *              "unpaid_num": 0,     *              "paid_num": 12,     *              "promotion_total_uv": 1512094804,     *              "promotion_total_pv": 1512094804,     *              "force_user_num": 1512094804     *            }     *        ]     *     }     */    function search(Request $request)    {        $begin_time = $request->has('begin_time') ? $request->input('begin_time') : '';        $end_time = $request->has('end_time') ? $request->input('end_time') : '';        if(!$begin_time || !$end_time){            //return response()->error('PARAM_ERROR');        }        //if()        $distribution_channel_id = $this->getChannelId();        if(!$distribution_channel_id) return response()->error('PARAM_ERROR');        $stats = OrderDayStatService::search(compact('distribution_channel_id','begin_time','end_time'));        return response()->pagination(new OrderDayStatTransformer(), $stats);    }        /**     * 账号级别的日统计     * @param Request $request     */    function accountSearch(Request $request)    {    	$begin_time = $request->has('begin_time') ? $request->input('begin_time') : '';    	$end_time = $request->has('end_time') ? $request->input('end_time') : '';    	if(!$begin_time || !$end_time){    		//return response()->error('PARAM_ERROR');    	}    	$channel_user_id = $this->getChannelUserId();    	if(!$channel_user_id) return response()->error('PARAM_ERROR');    	     	$channels = ChannelService::getByChannelUserId($channel_user_id);    	$stats = [];    	$distribution_channel_id  = [];    	foreach($channels as $channel){    		$distribution_channel_id[] = $channel->id;    	}    	\Log::info('AccountSearch:$channel_user_id:'.$channel_user_id.' $distribution_channel_id:'.json_encode($distribution_channel_id));    	     	$stats = OrderDayStatService::AccountSearch(compact('distribution_channel_id','begin_time','end_time'));    	         	return response()->pagination(new OrderDayStatTransformer(), $stats);    }    /**     * @apiVersion 1.0.0     * @api {GET} trade/exportOrderDayStats 导出日订单统计数据     * @apiGroup Trade     * @apiName exportOrderDayStats     * @apiParam {Number}  begin_time 开始时间.     * @apiParam {Number}  end_time 结束时间.     * @apiSuccess {Number}  date 日期.     * @apiSuccess {String}  pay_success_user_num 总付费用户数     * @apiSuccess {String}  ticket_recharge_user_num 普通充值用户数.     * @apiSuccess {String}  year_recharge_user_num 包年VIP充值用户数.     * @apiSuccess {String}  total_recharge_amount 总充值金额.     * @apiSuccess {Number}  unpaid_num 未支付用户数     * @apiSuccess {String}  paid_num 付费用用户数     * @apiSuccess {String}  promotion_total_uv uv     * @apiSuccess {String}  promotion_total_pv pv     * @apiSuccess {String}  force_user_num 强关用户数     */    function export(Request $request)    {        $begin_time = $request->has('begin_time') ? $request->input('begin_time') : '';        $end_time = $request->has('end_time') ? $request->input('end_time') : '';        $distribution_channel_id = $this->getChannelId();        if(!$distribution_channel_id) return response()->error('PARAM_ERROR');        $stats = OrderDayStatService::search(compact('distribution_channel_id','begin_time','end_time'),true);        header("Content-type:application/vnd.ms-excel");        header("Content-Disposition:attachment;filename=" . "订单列表" . date("YmdHis") . ".csv");        echo iconv("UTF-8","GBK","\"日期\",\"充值总额\",\"普通充值用户数\",\"年费VIP人数\",\"成功订单数\",\"订单总数\",\"当日新增用户\",\"当日新用户关注\"\r\n");        if($stats)        {            foreach($stats as $stat){                            echo("\"" . $stat->date .  "\",");                echo("\"" . $stat->total_recharge_amount .  "\",");                echo("\"" . $stat->ticket_recharge_user_num .  "\",");                echo("\"" . $stat->year_recharge_user_num .  "\",");                echo("\"" . $stat->paid_num .  "\",");                echo("\"" . ($stat->unpaid_num+$stat->paid_num) .  "\",");                echo("\"" . $stat->promotion_total_uv .  "\",");                echo("\"" . $stat->force_user_num .  "\"\r\n");            }        }        exit();    }}
 |