SdkListLogic.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <?php
  2. /**
  3. * SdkListLogic.php UTF-8
  4. * 订单表
  5. *
  6. * @date : 2018/5/19 14:10
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : wuyonghong <wyh@huosdk.com>
  10. * @version : HUOSDK 8.0
  11. */
  12. namespace huo\logic\order;
  13. use huo\model\common\CommonModel;
  14. use huo\model\order\OrderModel;
  15. use huolib\constant\CommonConst;
  16. use huolib\constant\OrderConst;
  17. use huolib\tool\StrUtils;
  18. class SdkListLogic extends CommonModel {
  19. /**
  20. * @param array $param
  21. *
  22. * @return array
  23. */
  24. protected function getWhere($param = []) {
  25. $_map = [];
  26. if (!empty($param['start_time'])) {
  27. $_map['order_model.create_time'] = ['gt', strtotime($param['start_time'])];
  28. }
  29. if (!empty($param['end_time'])) {
  30. $_map['order_model.create_time'] = ['lt', CommonConst::CONST_DAY_SECONDS + strtotime($param['end_time'])];
  31. }
  32. if (!empty($param['order_id'])) {
  33. $_map['order_id'] = $param['order_id'];
  34. }
  35. if (!empty($param['username'])) {
  36. $_map['username'] = $param['username'];
  37. }
  38. if (!empty($param['mem_id'])) {
  39. $_map['mem_id'] = $param['mem_id'];
  40. }
  41. if (!empty($param['game_id'])) {
  42. $_map['order_model.app_id'] = $param['game_id'];
  43. }
  44. if (!empty($param['agent_id'])) {
  45. $_map['order_model.agent_id'] = $param['agent_id'];
  46. }
  47. if (!empty($param['sub_agent_id'])) {
  48. $_map['order_model.agent_id'] = $param['sub_agent_id'];
  49. }
  50. if (!empty($param['payway'])) {
  51. $_map['payway'] = $param['payway'];
  52. }
  53. return $_map;
  54. }
  55. public function getField($agent_id) {
  56. return [];
  57. }
  58. /**
  59. * 获取获取记录
  60. *
  61. * @param array $param
  62. * @param string $page
  63. * @param string $order
  64. *
  65. * @return array
  66. */
  67. public function getAgentList($param = [], $page = '1,10', $order = '-create_time') {
  68. $_map = $this->getWhere($param);
  69. $_field = [
  70. 'order_model.create_time' => 'create_time',
  71. 'order_model.order_id' => 'order_id',
  72. 'order_model.mem_id' => 'mem_id',
  73. 'order_model.agent_id' => 'agent_id',
  74. 'order_model.app_id' => 'app_id',
  75. 'order_model.payway' => 'payway',
  76. 'order_model.amount' => 'amount',
  77. 'order_model.real_amount' => 'real_amount',
  78. ];
  79. $_map['order_model.status'] = OrderConst::PAY_STATUS_SUC;
  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 OrderModel();
  95. $_count = $_model->with('mem')->where($_map)->count();
  96. if (empty($_count)) {
  97. return [
  98. 'count' => 0,
  99. 'sum' => [],
  100. 'list' => []
  101. ];
  102. }
  103. $_sum_field = [
  104. 'sum(amount)' => 'sum_amount',
  105. 'sum(real_amount)' => 'sum_real_amount',
  106. // 'sum(rebate_cnt)' => 'sum_rebate_cnt',
  107. ];
  108. $_sum_data = $_model
  109. ->with('mem')
  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_field as $_k => $_v) {
  118. $_sum[$_v] = StrUtils::formatNumber($_sum_data[$_v]);
  119. }
  120. $_field = $field;
  121. if (empty($field)) {
  122. $_field = [];
  123. }
  124. $_order = $_model->orderFilter($order);
  125. $_datas = $_model
  126. ->with('mem')
  127. ->with('agent')
  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. $_data = [];
  145. foreach ($_datas as $_k => $_v) {
  146. foreach ($field as $_f) {
  147. $_data[$_k][$_f] = $_v[$_f];
  148. }
  149. $_data[$_k]['username'] = !empty($_v['mem']) ? $_v['mem']['username'] : '';
  150. $_data[$_k]['agent_name'] = !empty($_v['agent']) ? $_v['agent']['user_login'] : '';
  151. $_data[$_k]['gamename'] = !empty($_v['game']) ? $_v['game']['name'] : '';
  152. }
  153. return [
  154. 'count' => $_count,
  155. 'sum' => $_sum,
  156. 'list' => $_data
  157. ];
  158. }
  159. }