123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- <?php
- /**
- * Created by PhpStorm.
- * User: hp
- * Date: 2017/12/1
- * Time: 14:17
- */
- namespace App\Http\Controllers\Channel\SendOrder;
- use App\Http\Controllers\Channel\BaseController;
- use App\Http\Controllers\Channel\SendOrder\Transformers\SendOrderBreakevenStatsTransformer;
- use App\Modules\Statistic\Services\SendOrderBreakevenStatsService;
- use Illuminate\Http\Request;
- class SendOrderBreakevenStatsController extends BaseController
- {
- /**
- * @apiDefine sendOrder 派单
- */
- /**
- * @apiVersion 1.0.0
- * @api {GET} sendOrder/getSendOrderBreakevenStats 获取30日回本率数据
- * @apiGroup sendOrder
- * @apiName getSendOrderBreakevenStats
- * @apiParam {String} [start_date] 开始日期
- * @apiParam {String} [end_date] 结束日期
- *
- * @apiSuccess {Number} id id.
- * @apiSuccess {Number} distribution_channel_id 渠道id.
- * @apiSuccess {Number} official_account_id 服务号id.
- * @apiSuccess {String} official_account_name 服务号名称.
- * @apiSuccess {String} date 日期
- * @apiSuccess {Number} force_user_num 粉丝数
- * @apiSuccess {Number} total_force_user_num 总粉丝数
- * @apiSuccess {Number} unsubscribe_in_one_day_user_num 24小时取关用户数
- * @apiSuccess {String} created_at 创建时间
- * @apiSuccess {String} updated_at 更新时间
- * @apiSuccess {Number} recharge_amount_in_one_day 24小时充值
- * @apiSuccess {Number} recharge_amount_in_three_days 72小时充值
- * @apiSuccess {Number} recharge_amount_in_one_month 30天充值
- * @apiSuccess {Number} recharge_amount_in_two_months 60天充值
- * @apiSuccess {Number} recharge_amount_in_three_months 90天充值
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data": [
- * {
- * "id": 2,
- * "distribution_channel_id": 2,
- * "official_account_id": 1233,
- * "official_account_name": "杭州掌维",
- * "date": "2018-2-9",
- * "force_user_num": 11,
- * "total_force_user_num": 111,
- * "unsubscribe_in_one_day_user_num": 5,
- * "created_at": ""2017-12-01 10:20:04"",
- * "updated_at": ""2017-12-01 10:20:04"",
- * "recharge_amount_in_one_day": 9,
- * "recharge_amount_in_three_days": 6,
- * "recharge_amount_in_one_month": 23,
- * "recharge_amount_in_two_months":11,
- * "recharge_amount_in_three_months": 112
- * }
- * ]
- * }
- */
- function getSendOrderBreakevenStats(Request $request)
- {
- $params = [];
- $distribution_channel_id = $this->getChannelId();
- $request->has('end_date') && $request->input('end_date') && $params['end_date'] = $request->input('end_date');
- $request->has('start_date') && $request->input('start_date') && $params['start_date'] = $request->input('start_date');
- $params['distribution_channel_id'] = $distribution_channel_id;
- $data = SendOrderBreakevenStatsService::getInfos($params, false);
- return response()->pagination(new SendOrderBreakevenStatsTransformer(), $data);
- }
- /**
- * @apiVersion 1.0.0
- * @api {GET} sendOrder/exportSendOrderBreakevenStats 导出30日回本率数据
- * @apiGroup sendOrder
- * @apiName exportSendOrderBreakevenStats
- *
- * @apiParam {String} [start_date] 开始日期
- * @apiParam {String} [end_date] 结束日期
- * @apiSuccess {Number} id id.
- * @apiSuccess {Number} distribution_channel_id 渠道id.
- * @apiSuccess {Number} official_account_id 服务号id.
- * @apiSuccess {String} official_account_name 服务号名称.
- * @apiSuccess {String} date 日期
- * @apiSuccess {Number} force_user_num 粉丝数
- * @apiSuccess {Number} total_force_user_num 总粉丝数
- * @apiSuccess {Number} unsubscribe_in_one_day_user_num 24小时取关用户数
- * @apiSuccess {String} created_at 创建时间
- * @apiSuccess {String} updated_at 更新时间
- * @apiSuccess {Number} recharge_amount_in_one_day 24小时充值
- * @apiSuccess {Number} recharge_amount_in_three_days 72小时充值
- * @apiSuccess {Number} recharge_amount_in_one_month 30天充值
- * @apiSuccess {Number} recharge_amount_in_two_months 60天充值
- * @apiSuccess {Number} recharge_amount_in_three_months 90天充值
- * @apiSuccessExample {json} Success-Response:
- *
- * {
- * "code": 0,
- * "msg": "",
- * "data": [
- * {
- * "id": 2,
- * "distribution_channel_id": 2,
- * "official_account_id": 1233,
- * "official_account_name": "杭州掌维",
- * "date": "2018-2-9",
- * "force_user_num": 11,
- * "total_force_user_num": 111,
- * "unsubscribe_in_one_day_user_num": 5,
- * "created_at": ""2017-12-01 10:20:04"",
- * "updated_at": ""2017-12-01 10:20:04"",
- * "recharge_amount_in_one_day": 9,
- * "recharge_amount_in_three_days": 6,
- * "recharge_amount_in_one_month": 23,
- * "recharge_amount_in_two_months":11,
- * "recharge_amount_in_three_months": 112
- * }
- * ]
- * }
- */
- function exportSendOrderBreakevenStats(Request $request)
- {
- $params = [];
- $distribution_channel_id = $this->getChannelId();
- $params['distribution_channel_id'] = $distribution_channel_id;
- $request->has('end_date') && $request->input('end_date') && $params['end_date'] = $request->input('end_date');
- $request->has('start_date') && $request->input('start_date') && $params['start_date'] = $request->input('start_date');
- $data = SendOrderBreakevenStatsService::getInfos($params, true);
- header("Content-type:application/vnd.ms-excel");
- header("Content-Disposition:attachment;filename=" . "数据统计" . date("YmdHis") . ".csv");
- echo("\"" . mb_convert_encoding("\"日期\",\"渠道id\",\"服务号id\",\"服务号名称\",\"粉丝数\",\"总粉丝数\",\"24小时取关用户数\",\"创建时间\",\"更新时间\",\"24小时充值\",\"72小时充值\",\"30天充值\",\"60天充值\",\"90天充值\"\r\n", "GBK", "UTF-8") . "\",");
- if ($data) {
- foreach ($data as $item) {
- echo("\"" . mb_convert_encoding(date('Y-m-d', strtotime($item->date)), "GBK", "UTF-8") . "\",");
- echo("\"" . $item->distribution_channel_id . "\",");
- echo("\"" . $item->official_account_id . "\",");
- echo("\"" . mb_convert_encoding($item->official_account_name, "GBK", "UTF-8") . "\",");
- echo("\"" . $item->force_user_num . "\",");
- echo("\"" . $item->total_force_user_num . "\",");
- echo("\"" . $item->unsubscribe_in_one_day_user_num . "\",");
- echo("\"" . mb_convert_encoding(date('Y-m-d H:i:s', strtotime($item->created_at)), "GBK", "UTF-8") . "\",");
- echo("\"" . mb_convert_encoding(date('Y-m-d H:i:s', strtotime($item->updated_at)), "GBK", "UTF-8") . "\",");
- echo("\"" . $item->recharge_amount_in_one_day . "\",");
- echo("\"" . $item->recharge_amount_in_three_days . "\",");
- echo("\"" . $item->recharge_amount_in_one_month . "\",");
- echo("\"" . $item->recharge_amount_in_two_months . "\",");
- echo("\"" . $item->recharge_amount_in_three_months . "\"\r\n");
- }
- }
- exit();
- }
- }
|