PtbOrderLogic.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <?php
  2. /**
  3. * PtbChargeLogic.php UTF-8
  4. * 玩家平台币充值订单逻辑
  5. *
  6. * @date : 2018/5/18 21:03
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : wuyonghong <wyh@huosdk.com>
  10. * @version : HUOSDK 8.0
  11. */
  12. namespace huo\logic\finance;
  13. use huo\logic\member\MemberLogic;
  14. use huo\model\common\CommonModel;
  15. use huo\model\finance\PtbOrderModel;
  16. use huolib\constant\CommonConst;
  17. class PtbOrderLogic extends CommonModel {
  18. /**
  19. * @param array $param
  20. *
  21. * @return array
  22. */
  23. protected function getWhere($param = []) {
  24. $_map = [];
  25. if (!empty($param['start_time']) && !empty($param['end_time'])) {
  26. $_map['ptb_order_model.create_time'] = ['between', [strtotime($param['start_time']),
  27. CommonConst::CONST_DAY_SECONDS + strtotime(
  28. $param['end_time']
  29. )]];
  30. } else if (!empty($param['start_time'])) {
  31. $_map['ptb_order_model.create_time'] = ['gt', strtotime($param['start_time'])];
  32. } else if (!empty($param['end_time'])) {
  33. $_map['ptb_order_model.create_time'] = ['lt',
  34. CommonConst::CONST_DAY_SECONDS + strtotime($param['end_time'])];
  35. }
  36. if (!empty($param['order_id'])) {
  37. $_map['order_id'] = $param['order_id'];
  38. }
  39. if (!empty($param['mem_id'])) {
  40. $_map['mem_id'] = $param['mem_id'];
  41. }
  42. if (!empty($param['from_id'])) {
  43. $_map['from_id'] = $param['from_id'];
  44. }
  45. if (!empty($param['app_id'])) {
  46. $_map['app_id'] = $param['app_id'];
  47. }
  48. if (!empty($param['status'])) {
  49. $_map['ptb_order_model.status'] = $param['status'];
  50. }
  51. if (!empty($param['username'])) {
  52. $_mem_ids = (new MemberLogic())->getIdsByUsername($param['username']);
  53. $_map['ptb_order_model.mem_id'] = ['in', $_mem_ids];
  54. }
  55. if (!empty($param['agent_id'])) {
  56. $_mem_ids = (new MemberLogic())->getIdsByAgentId($param['agent_id']);
  57. $_map['ptb_order_model.mem_id'] = ['in', $_mem_ids];
  58. }
  59. return $_map;
  60. }
  61. public function getField($agent_id) {
  62. return [];
  63. }
  64. /**
  65. * 获取获取记录
  66. *
  67. * @param $mem_id
  68. * @param $param
  69. * @param string $page
  70. * @param string $order
  71. *
  72. * @return array
  73. */
  74. public function getMemList($mem_id, $param = [], $page = '1,10', $order = '-create_time') {
  75. $_map = $this->getWhere($param);
  76. $_field = $this->getField($mem_id);
  77. if (!empty($mem_id)) {
  78. $_map['mem_id'] = $mem_id;
  79. }
  80. return $this->getList($_field, $_map, $page, $order);
  81. }
  82. /**
  83. * 获取列表
  84. *
  85. * @param array $field
  86. * @param array $where
  87. * @param string $page
  88. * @param string $order
  89. *
  90. * @return array
  91. */
  92. public function getList($field = [], $where, $page = '1,10', $order = '-create_time') {
  93. $_map = $where;
  94. $_model = new PtbOrderModel();
  95. $_count = $_model->alias('ptb_order_model')->where($_map)->count();
  96. if (empty($_count)) {
  97. return [
  98. 'count' => 0,
  99. 'list' => []
  100. ];
  101. }
  102. // $_sum_field = [
  103. // 'sum(amount)' => 'sum_amount',
  104. // 'sum(real_amount)' => 'sum_real_amount',
  105. // 'sum(rebate_cnt)' => 'sum_rebate_cnt',
  106. // 'sum(ptb_cnt)' => 'sum_ptb_cnt'
  107. // ];
  108. // $_sum_data = $_model
  109. // ->alias('ptb_order_model')
  110. // ->field($_sum_field)
  111. // ->where($where)
  112. // ->find();
  113. // if (is_object($_sum_data)) {
  114. // $_sum_data = $_sum_data->toArray();
  115. // }
  116. // $_sum = [];
  117. // foreach ($_sum_data as $_k => $_v) {
  118. // $_sum[$_k] = StrUtils::formatNumber($_v);
  119. // }
  120. $_field = $field;
  121. if (empty($field)) {
  122. $_field = [];
  123. }
  124. $_order = $_model->orderFilter($order);
  125. $_datas = $_model
  126. ->alias('ptb_order_model')
  127. ->with('mem')
  128. ->with('game')
  129. ->where($where)
  130. ->field($_field)
  131. ->order($_order)
  132. ->page($page)
  133. ->select();
  134. if (is_object($_datas)) {
  135. $_datas = $_datas->toArray();
  136. }
  137. if (empty($_datas)) {
  138. return [
  139. 'count' => $_count,
  140. // 'sum' => $_sum,
  141. 'list' => []
  142. ];
  143. }
  144. foreach ($_datas as $_k => $_v) {
  145. $_datas[$_k]['username'] = !empty($_v['mem']) ? $_v['mem']['username'] : '';
  146. }
  147. foreach ($_datas as $_k => $_v) {
  148. $_datas[$_k]['gamename'] = !empty($_v['game']) ? $_v['game']['name'] : '';
  149. }
  150. return [
  151. 'count' => $_count,
  152. // 'sum' => $_sum,
  153. 'list' => $_datas
  154. ];
  155. }
  156. /**
  157. * 获取玩家消费列表
  158. *
  159. * @param array $where
  160. * @param string $page
  161. * @param string $order
  162. *
  163. * @return array
  164. */
  165. public function getCostList($where = [], $page = '1,10', $order = '-create_time') {
  166. $_where = $this->getWhere($where);
  167. $_field = [];
  168. return $this->getList($_field, $_where, $page, $order);
  169. }
  170. }