IapDataLogic.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. /**
  3. * DayPayLogic.php UTF-8
  4. *
  5. *
  6. * @date : 2017/12/18 11:42
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : liguanglong <lgl@huosdk.com>
  10. * @version : HUOSDK 8.0
  11. */
  12. namespace huo\logic\data;
  13. use huo\model\common\CommonModel;
  14. use huo\model\data\PayExtModel;
  15. use huo\model\data\PayModel;
  16. use huo\model\game\GameModel;
  17. use huo\logic\user\UserLogic;
  18. class IapDataLogic extends CommonModel {
  19. protected $_id;
  20. protected $_agent_id;
  21. protected $_app_id;
  22. protected $_cp_id;
  23. public function __construct($data = []) {
  24. parent::__construct($data);
  25. List($this->_id, $this->_cp_id, $this->_agent_id, $this->_app_id)
  26. = (new UserLogic())->getRoleLevelID(session('ADMIN_ID'));
  27. }
  28. /**
  29. * iap计费统计
  30. * @param null $start_time
  31. * @param null $end_time
  32. * @param null $order_id
  33. * @param null $phone
  34. * @param null $imei
  35. * @param null $cp
  36. * @param null $app_id
  37. *
  38. * @return array
  39. */
  40. public function iapList($start_time = null, $end_time = null, $order_id = null, $phone = null, $imei = null, $cp = null, $app_id = null){
  41. $_pay_model = new PayModel();
  42. $_pay_ext_model = new PayExtModel();
  43. $_game_model = new GameModel();
  44. $_pay_model = $_pay_model->where('create_time', '>=', $start_time)
  45. ->where('create_time', '<=', $end_time);
  46. if($order_id){
  47. $_pay_model = $_pay_model->where('order_id', $order_id);
  48. }
  49. $_pay_model = $_pay_model->with('ext')
  50. ->with('game.cp')
  51. ->with(['member' => function($query){
  52. $query->with('country')->with('operator');
  53. }]);
  54. if($imei || $phone){
  55. if($imei){
  56. $_pay_ext_model = $_pay_ext_model->where('device_id', $imei);
  57. }
  58. if($phone){
  59. $_pay_ext_model = $_pay_ext_model->where('device_info', 'like', "%{$phone}%");
  60. }
  61. $_pay_model = $_pay_model->whereIn('id', $_pay_ext_model->column('pay_id'));
  62. }
  63. if($app_id){
  64. $_pay_model = $_pay_model->where('app_id', $app_id);
  65. }
  66. if($cp){
  67. $_pay_model = $_pay_model->whereIn('app_id', $_game_model->where('cp_id', $cp)->column('id'));
  68. }
  69. $_pay_model = $_pay_model->whereIn('app_id', $this->_app_id)
  70. ->whereIn('agent_id', $this->_agent_id)
  71. ->paginate(10);
  72. $_page = $_pay_model->render();
  73. $_data = $_pay_model->toArray()['data'];
  74. $this->handleData($_data);
  75. return [$_data, $_page];
  76. }
  77. /**
  78. * 封装
  79. * @param $data
  80. */
  81. private function handleData(&$data){
  82. if(!empty($data)){
  83. foreach ($data as &$val){
  84. $val['phone'] = null;
  85. $val['imei'] = null;
  86. $val['game_name'] = null;
  87. $val['product_name'] = null;
  88. $val['is_vip'] = null; //todo
  89. $val['protect_date'] = 'xx';
  90. $val['cp'] = null;
  91. $val['country'] = null;
  92. $val['operator'] = null;
  93. if(!empty($val['ext'])){
  94. $_to_ext = $val['ext'];
  95. $val['imei'] = $_to_ext['device_id'];
  96. $val['product_name'] = $_to_ext['product_name'];
  97. $val['is_vip'] = $_to_ext['role_vip'] == 0 ? '否' : '是';
  98. $_device_info = explode('||', $_to_ext['device_info']);
  99. if(count($_device_info)){
  100. $val['phone'] = $_device_info[0];
  101. }
  102. }
  103. if(!empty($val['game'])){
  104. $_to_game = $val['game'];
  105. if(!empty($_to_game['cp'])){
  106. $val['cp'] = $_to_game['cp']['company_name'];
  107. }
  108. $val['game_name'] = $val['game']['name'];
  109. }
  110. if(!empty($val['member'])){
  111. $_to_member = $val['member'];
  112. if(!empty($_to_member['country'])){
  113. $val['country'] = $_to_member['country']['en_name_abbr'];
  114. }
  115. if(!empty($_to_member['operator'])){
  116. $val['operator'] = $_to_member['operator']['name'];
  117. }
  118. }
  119. }
  120. }
  121. }
  122. }