| 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();    }}
 |