OrderStatController.php 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: hp
  5. * Date: 2017/12/1
  6. * Time: 11:37
  7. */
  8. namespace App\Http\Controllers\Channel\Trade;
  9. use App\Http\Controllers\Channel\BaseController;
  10. use App\Http\Controllers\Channel\Trade\Transformers\OrdersRechargeTransformer;
  11. use App\Http\Controllers\Channel\Trade\Transformers\OrderStatTransformer;
  12. use App\Http\Controllers\Channel\Trade\Transformers\OrderTransformer;
  13. use App\Modules\SendOrder\Services\SendOrderForceDayStatService;
  14. use App\Modules\SendOrder\Services\SendOrderService;
  15. use App\Modules\SendOrder\Services\SendOrderStatService;
  16. use App\Modules\Trade\Services\OrderStatService;
  17. use App\Modules\Channel\Services\ChannelService;
  18. use Illuminate\Http\Request;
  19. class OrderStatController extends BaseController
  20. {
  21. /**
  22. * @apiDefine Trade 订单
  23. */
  24. /**
  25. * @apiVersion 1.0.0
  26. * @api {GET} trade/getChannelTotalStat 获取账号下所有渠道订单统计数据
  27. * @apiGroup Trade
  28. * @apiName getChannelTotalStat
  29. * @apiSuccess {String} ticket_recharge_user_num 普通充值用户数.
  30. * @apiSuccess {String} year_recharge_user_num 包年VIP充值用户数.
  31. * @apiSuccess {String} total_recharge_amount 总充值金额.
  32. * @apiSuccess {Number} unpaid_num 未支付用户数
  33. * @apiSuccess {String} paid_num 付费用用户数
  34. * @apiSuccess {String} promotion_total_uv uv
  35. * @apiSuccess {String} force_user_num 强关用户数
  36. * @apiSuccessExample {json} Success-Response:
  37. *
  38. * {
  39. * "code": 0,
  40. * "msg": "",
  41. * "data": [
  42. * {
  43. * "date": "2017-12-01",
  44. * "pay_success_user_num": 1212,
  45. * "ticket_recharge_user_num": 1212,
  46. * "year_recharge_user_num": 1212,
  47. * "total_recharge_amount": 1212,
  48. * "unpaid_num": 0,
  49. * "paid_num": 12,
  50. * "promotion_total_uv": 1512094804,
  51. * "promotion_total_pv": 1512094804,
  52. * "force_user_num": 1512094804
  53. * }
  54. * ]
  55. * }
  56. */
  57. function getChannelTotalStat(Request $request)
  58. {
  59. $channel_user_id = $this->getChannelUserId();
  60. if(!$channel_user_id) return response()->error('PARAM_ERROR');
  61. $distribution_channel_ids = ChannelService::getUserChannelIds($channel_user_id);
  62. $stats = OrderStatService::getChannelTotalStat($distribution_channel_ids);
  63. $stats->cost_sum = SendOrderService::getCostStats($distribution_channel_ids);
  64. return response()->item(new OrderStatTransformer(), $stats);
  65. }
  66. public function getSendOrdersRechargeStats(Request $request) {
  67. $channel_user_id = $this->getChannelUserId();
  68. if(!$channel_user_id) return response()->error('PARAM_ERROR');
  69. $distribution_channel_ids = ChannelService::getUserChannelIdsV2($channel_user_id);
  70. $stats = SendOrderStatService::getSendOrdersRechargeDetail($distribution_channel_ids);
  71. return response()->pagination(new OrdersRechargeTransformer(),$stats);
  72. }
  73. public function exportSendOrdersRechargeStats(){
  74. $channel_user_id = $this->getChannelUserId();
  75. if(!$channel_user_id) return response()->error('PARAM_ERROR');
  76. $distribution_channel_ids = ChannelService::getUserChannelIdsV2($channel_user_id);
  77. $stats = SendOrderStatService::exportSendOrdersRechargeDetail($distribution_channel_ids);
  78. saveExcelData($stats['header'],$stats['data'],'');
  79. }
  80. }