OrderStatsController.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: hp
  5. * Date: 2017/11/30
  6. * Time: 17:24
  7. */
  8. namespace App\Http\Controllers\Manage\Trade;
  9. use App\Http\Controllers\Manage\BaseController;
  10. use App\Http\Controllers\Manage\Trade\Transformers\OrderStatTransformer;
  11. use App\Modules\Trade\Services\OrderStatService;
  12. use App\Modules\Channel\Services\ChannelService;
  13. use Illuminate\Http\Request;
  14. class OrderStatsController extends BaseController
  15. {
  16. /**
  17. * @apiDefine Trade 交易订单
  18. */
  19. /**
  20. * @apiVersion 1.0.0
  21. * @api {GET} trade/orderStats 获取渠道统计列表
  22. * @apiGroup Trade
  23. * @apiName orderStats
  24. * @apiParam {Number} distribution_channel_id 渠道id.
  25. * @apiParam {Number} phone 手机号码.
  26. * @apiSuccess {Number} distribution_channel_id 渠道id.
  27. * @apiSuccess {Number} distribution_channel_name 渠道名称.
  28. * @apiSuccess {Number} phone 渠道手机号码.
  29. * @apiSuccess {Number} pay_success_user_num 总付费用户数.
  30. * @apiSuccess {Number} total_recharge_amount 总付费总额.
  31. * @apiSuccess {String} unpaid_num 未付费订单数.
  32. * @apiSuccess {String} paid_num 付费订单数.
  33. * @apiSuccess {String} promotion_total_uv 推广uv数.
  34. * @apiSuccess {String} promotion_total_pv 推广pv数.
  35. * @apiSuccess {String} send_order_num 派单数.
  36. * @apiSuccess {String} register_user_num 注册用户数.
  37. * @apiSuccess {String} force_user_num 关注用户数.
  38. * @apiSuccess {String} ticket_recharge_pay_user_num 普通充值用户数
  39. * @apiSuccess {Number} year_recharge_user_num 包年VIP充值用户数
  40. * @apiSuccess {String} created_at 创建时间
  41. * @apiSuccess {String} updated_at 更新时间
  42. */
  43. function index(Request $request)
  44. {
  45. $distribution_channel_id = $request->has('distribution_channel_id') ? (int)$request->input('distribution_channel_id') : null;
  46. $phone = $request->has('phone') ? (int)$request->input('phone') : '';
  47. $stats = OrderStatService::getList($distribution_channel_id,$phone);
  48. return response()->pagination(new OrderStatTransformer(), $stats);
  49. }
  50. function export(Request $request)
  51. {
  52. $distribution_channel_id = $request->has('distribution_channel_id') ? (int)$request->input('distribution_channel_id') : null;
  53. $phone = $request->has('phone') ? (int)$request->input('phone') : '';
  54. $stats = OrderStatService::getList($distribution_channel_id,$phone,true);
  55. header("Content-type:application/vnd.ms-excel");
  56. header("Content-Disposition:attachment;filename=" . "渠道汇总统计列表" . date("YmdHis") . ".csv");
  57. echo iconv("UTF-8","GBK","\"渠道ID\",\"渠道名称\",\"累计派单数\",\"累计新增点击数\",\"累计新增人数\",\"新增关注人数\",\"累计注册人数\",\"普通付费人数\",\"包年VIP人数\",\"订单成功率\",\"累计充值总额\",\"公众号数量\",\"公众号名称\"\r\n");
  58. if($stats)
  59. {
  60. foreach($stats as $stat){
  61. echo("\"" . $stat->distribution_channel_id . "\",");
  62. echo("\"" . iconv('utf-8','gbk',$stat->nickname) . "\",");
  63. echo("\"" . (int)$stat->send_order_num . "\",");
  64. echo("\"" . (int)$stat->promotion_total_pv . "\",");
  65. echo("\"" . (int)$stat->promotion_total_uv . "\",");
  66. echo("\"" . (int)$stat->force_user_num . "\",");
  67. echo("\"" . (int)$stat->register_user_num . "\",");
  68. echo("\"" . (int)$stat->ticket_recharge_pay_user_num . "\",");
  69. echo("\"" . (int)$stat->year_pay_user_num . "\",");
  70. $per = (float)$stat->unpaid_num+(float)$stat->paid_num > 0 ? round(((float)$stat->paid_num/((float)$stat->unpaid_num+(float)$stat->paid_num))*100,2) : 0;
  71. echo("\"" . $per. "%\",");
  72. echo("\"" . (float)$stat->total_recharge_amount . "\",");
  73. echo("\"" . (int)$stat->official_account_num . "\",");
  74. echo("\"" . iconv('utf-8','gbk',$stat->official_account_names) . "\"\r\n");
  75. }
  76. }
  77. exit();
  78. }
  79. }