AppleOrderLogic.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. <?php
  2. /**
  3. * OrderLogic.php UTF-8
  4. * 订单逻辑
  5. *
  6. * @date : 2018/1/19 22:43
  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\game\GameModel;
  15. use huo\model\member\MemberModel;
  16. use huo\model\member\MemGameModel;
  17. use huo\model\order\PayAppleModel;
  18. use huolib\constant\CommonConst;
  19. class AppleOrderLogic extends CommonModel {
  20. /**
  21. * @param array $param
  22. *
  23. * @return array
  24. */
  25. public function getListWhere($param) {
  26. $_map = [];
  27. if (!empty($param['start_time']) && !empty($param['start_time'])) {
  28. $_map['create_time'] = ['between',
  29. [strtotime($param['start_time']),
  30. CommonConst::CONST_DAY_SECONDS + strtotime($param['end_time'])]];
  31. } else if (!empty($param['start_time'])) {
  32. $_map['create_time'] = ['gt', strtotime($param['start_time'])];
  33. } else if (!empty($param['end_time'])) {
  34. $_map['create_time'] = ['lt',
  35. CommonConst::CONST_DAY_SECONDS + strtotime($param['end_time'])];
  36. }
  37. if (!empty($param['trans_id'])) {
  38. $_map['trans_id'] = $param['trans_id'];
  39. }
  40. if (!empty($param['username'])) {
  41. $_id = (new MemberModel())->getIdByUsername($param['username']);
  42. $_map['mem_id'] = $_id;
  43. }
  44. if (!empty($param['mem_id'])) {
  45. $_map['mem_id'] = $param['mem_id'];
  46. }
  47. if (!empty($param['order_id'])) {
  48. $_map['order_id'] = $param['order_id'];
  49. }
  50. if (!empty($param['app_id'])) {
  51. $_apple_id = (new GameModel())->getAppleIdById($param['app_id']);
  52. $_map['apple_id'] = $_apple_id;
  53. }
  54. if (!empty($param['status'])) {
  55. $_map['status'] = $param['status'];
  56. }
  57. /*小号昵称搜索*/
  58. if (!empty($param['nickname'])) {
  59. $_mg_mem_ids = (new MemGameModel())->getIdsByNickname($param['nickname']);
  60. $_map['mg_mem_id'] = ['in', $_mg_mem_ids];
  61. }
  62. return $_map;
  63. }
  64. /**
  65. * @param $param
  66. * @param string $page
  67. * @param string $order
  68. *
  69. * @return array
  70. */
  71. public function getOrderList($param, $page = '1,10', $order = '-create_time') {
  72. $_map = $this->getListWhere($param);
  73. $_field = [
  74. 'id' => 'id',
  75. 'order_id' => 'order_id',
  76. 'mem_id' => 'mem_id',
  77. 'trans_id' => 'trans_id',
  78. 'currency' => 'currency',
  79. 'status' => 'status',
  80. 'pay_time' => 'pay_time',
  81. 'create_time' => 'create_time',
  82. 'check_cnt' => 'check_cnt',
  83. 'last_check_time' => 'last_check_time',
  84. ];
  85. return $this->getList($_field, $_map, $page, $order);
  86. }
  87. /**
  88. * 获取订单列表
  89. *
  90. * @param array $field
  91. * @param $where
  92. * @param string $page
  93. * @param string $order
  94. *
  95. * @return array
  96. */
  97. public function getList($field = [], $where, $page = '1,10', $order = '-create_time') {
  98. $_map = $where;
  99. $_model = new PayAppleModel();
  100. $_count = $_model->where($_map)->count();
  101. if (empty($_count)) {
  102. return [
  103. 'count' => 0,
  104. 'list' => []
  105. ];
  106. }
  107. $_field = $field;
  108. if (empty($field)) {
  109. $_field = [];
  110. }
  111. $_order = $_model->orderFilter($order);
  112. $_datas = $_model
  113. ->with('mem,pay')
  114. ->where($_map)
  115. ->field($_field)
  116. ->order($_order)
  117. ->page($page)
  118. ->select();
  119. if (is_object($_datas)) {
  120. $_datas = $_datas->toArray();
  121. }
  122. if (empty($_datas)) {
  123. return [
  124. 'count' => $_count,
  125. 'list' => []
  126. ];
  127. }
  128. $_list = $_datas;
  129. $_mem_game_model = new MemGameModel();
  130. $_game_model = new GameModel();
  131. foreach ($_datas as $_k => $_v) {
  132. $_list[$_k]['app_id'] = !empty($_v['pay']) ? $_v['pay']['app_id'] : 0;
  133. $_list[$_k]['mg_mem_id'] = !empty($_v['pay']) ? $_v['pay']['mg_mem_id'] : 0;
  134. $_list[$_k]['username'] = !empty($_v['mem']) ? $_v['mem']['username'] : '';
  135. $_list[$_k]['nickname'] = $_mem_game_model->getNicknameById($_list[$_k]['mg_mem_id']);
  136. $_list[$_k]['game_name'] = $_game_model->getNameById($_list[$_k]['app_id']);
  137. unset($_v['mem']);
  138. unset($_v['pay']);
  139. }
  140. return [
  141. 'count' => $_count,
  142. 'list' => $_list
  143. ];
  144. }
  145. }