SdkOrderSuccessLogic.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | saiadmin [ saiadmin快速开发框架 ]
  4. // +----------------------------------------------------------------------
  5. // | Author: your name
  6. // +----------------------------------------------------------------------
  7. namespace app\v1\logic\gameLog;
  8. use plugin\saiadmin\basic\BaseLogic;
  9. use plugin\saiadmin\exception\ApiException;
  10. use plugin\saiadmin\utils\Helper;
  11. use app\v1\model\gameLog\SdkOrderSuccess;
  12. use plugin\saiadmin\service\OpenSpoutWriter;
  13. /**
  14. * 订单记录表(支付成功)逻辑层
  15. */
  16. class SdkOrderSuccessLogic extends BaseLogic
  17. {
  18. /**
  19. * 构造函数
  20. */
  21. public function __construct()
  22. {
  23. $this->model = new SdkOrderSuccess();
  24. }
  25. /**
  26. * 导出数据
  27. */
  28. public function export($where = [])
  29. {
  30. // 传入的是多选game_id, 转换成字符串
  31. $where['game_id'] = is_array($where['game_id']) ? implode(',', $where['game_id']) : $where['game_id'];
  32. $query = $this->searchByAuth($where);
  33. $data = $this->getAll($query);
  34. $data = $this->trandformListColumn($data, ['game', 'ip', 'agent','auth', 'pay_channel']);
  35. $data = array_map(function($item){
  36. return [
  37. 'orderid' => $item['orderid'],
  38. 'user_name' => $item['user_name'],
  39. 'agent_id' => $item['agent_id'],
  40. 'site_id' => $item['site_id'],
  41. 'game_name' => $item['game_name'],
  42. 'server_id' => $item['server_id'],
  43. 'server_name' => $item['server_name'],
  44. 'pay_channel_name' => $item['pay_channel_name'],
  45. 'money' => $item['money'],
  46. 'pay_date' => $item['pay_date'],
  47. 'reg_date' => $item['reg_date'],
  48. // 'is_first_pay' => $item['is_first_pay'],
  49. 'agent_name' => $item['agent_name'],
  50. 'auth_name' => $item['auth_name'],
  51. ];
  52. }, $data);
  53. // 是否首次付费
  54. // $filter = [
  55. // 'is_first_pay' => [
  56. // ['value' => 1, 'label' => '是'],
  57. // ['value' => 0, 'label' => '否']
  58. // ]
  59. // ];
  60. $file_name = '充值明细_'.date('YmdHis').'.xlsx';
  61. $header = ['订单号', '用户名', '渠道ID', '广告位ID', '游戏名', '服务器ID', '服务器名', '支付方式', '充值金额', '充值时间', '注册时间', '渠道名', '负责人'];
  62. $writer = new OpenSpoutWriter($file_name);
  63. $writer->setWidth([15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]);
  64. $writer->setHeader($header);
  65. $writer->setData($data, null);
  66. // $writer->setData($data, null, $filter);
  67. $file_path = $writer->returnFile();
  68. return response()->download($file_path, urlencode($file_name));
  69. }
  70. }