MemListLogic.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <?php
  2. /**
  3. * MemListLogic.php UTF-8
  4. * 玩家列表逻辑处理
  5. *
  6. * @date : 2018/5/19 15:00
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : wuyonghong <wyh@huosdk.com>
  10. * @version : HUOSDK 8.0
  11. */
  12. namespace huo\logic\member;
  13. use huo\controller\agent\AgentCache;
  14. use huo\controller\member\MemCache;
  15. use huo\model\common\CommonModel;
  16. use huo\model\member\MemberModel;
  17. use huo\model\member\MgRoleModel;
  18. use huolib\constant\CommonConst;
  19. use huolib\constant\OrderConst;
  20. class MemListLogic extends CommonModel {
  21. /**
  22. * @param array $param
  23. *
  24. * @return array
  25. */
  26. protected function getWhere($param = []) {
  27. $_map = [];
  28. $_srart_time = 1;
  29. $_end_time = time();
  30. if (!empty($param['start_time'])) {
  31. $_srart_time = strtotime($param['start_time']);
  32. }
  33. if (!empty($param['end_time'])) {
  34. $_end_time = strtotime($param['end_time'].'23:59:59');
  35. }
  36. $_map['mg_role_model.create_time'] = ['between', [$_srart_time, $_end_time]];
  37. if (!empty($param['mem_id'])) {
  38. $_map['mg.mem_id'] = $param['mem_id'];
  39. }
  40. if (empty($param['mem_id']) && !empty($param['username'])) {
  41. $_map['mg.mem_id'] = (new MemberModel())->getIdByUsername(trim($param['username']));
  42. }
  43. if (!empty($param['game_id'])) {
  44. $_map['mg_role_model.app_id'] = $param['game_id'];
  45. }
  46. if (!empty($param['app_id'])) {
  47. $_map['mg_role_model.app_id'] = $param['app_id'];
  48. }
  49. if (!empty($param['server_name'])) {
  50. $_map['mg_role_model.server_name'] = trim($param['server_name']);
  51. }
  52. if (!empty($param['role_name'])) {
  53. $_map['mg_role_model.role_name'] = ['like', trim($param['role_name']).'%'];
  54. }
  55. if (!empty($param['mg_mem_id'])) {
  56. $_map['mg_role_model.mg_mem_id'] = $param['mg_mem_id'];
  57. }
  58. if (!empty($param['os'])) {
  59. $_map['mg_role_model.os'] = $param['os'];
  60. if ('default' == $param['os']){
  61. $_map['mg_role_model.os'] = '';
  62. }
  63. }
  64. return $_map;
  65. }
  66. public function getField($agent_id) {
  67. return [];
  68. }
  69. /**
  70. * 获取获取记录
  71. *
  72. * @param array $param
  73. * @param string $page
  74. * @param string $order
  75. *
  76. * @return array
  77. */
  78. public function getRoleList($param = [], $page = '1,10', $order = '-mg.create_time') {
  79. $_map = $this->getWhere($param);
  80. $_field = [
  81. 'mg_role_model.mg_mem_id' => 'mg_mem_id',
  82. 'mg_role_model.app_id' => 'app_id',
  83. 'mg_role_model.server_id' => 'server_id',
  84. 'mg_role_model.server_name' => 'server_name',
  85. 'mg_role_model.role_id' => 'role_id',
  86. 'mg_role_model.role_name' => 'role_name',
  87. 'mg_role_model.role_level' => 'role_level',
  88. 'mg_role_model.money' => 'money',
  89. 'mg_role_model.combat_num' => 'combat_num',
  90. 'mg_role_model.role_vip' => 'role_vip',
  91. 'mg_role_model.ext' => 'ext',
  92. 'mg_role_model.os' => 'os',
  93. 'mg_role_model.create_time' => 'create_time',
  94. 'mg_role_model.update_time' => 'update_time',
  95. 'mg.mem_id' => 'mem_id',
  96. ];
  97. return $this->getList($_field, $_map, $page, $order);
  98. }
  99. /**
  100. * 获取列表
  101. *
  102. * @param array $field
  103. * @param array $where
  104. * @param string $page
  105. * @param string $order
  106. *
  107. * @return array
  108. * @throws \think\db\exception\DataNotFoundException
  109. * @throws \think\db\exception\ModelNotFoundException
  110. * @throws \think\exception\DbException
  111. */
  112. public function getList($field = [], $where, $page = '1,10', $order = '-create_time') {
  113. $_map = $where;
  114. $_model = new MgRoleModel();
  115. $_count = $_model->with('mg')->where($_map)->count();
  116. if (empty($_count)) {
  117. return [
  118. 'count' => 0,
  119. 'list' => []
  120. ];
  121. }
  122. $_field = $field;
  123. if (empty($field)) {
  124. $_field = [];
  125. }
  126. $_order = $_model->orderFilter($order);
  127. $_datas = $_model
  128. ->with('mg')
  129. ->with('game')
  130. ->where($where)
  131. ->field($_field)
  132. ->order($_order)
  133. ->page($page)
  134. ->select();
  135. if (is_object($_datas)) {
  136. $_datas = $_datas->toArray();
  137. }
  138. if (empty($_datas)) {
  139. return [
  140. 'count' => $_count,
  141. 'list' => []
  142. ];
  143. }
  144. $_data = [];
  145. $_mem_cache = MemCache::ins();
  146. $_agent_cache = AgentCache::ins();
  147. foreach ($_datas as $_k => $_v) {
  148. foreach ($field as $_f) {
  149. $_data[$_k][$_f] = $_v[$_f];
  150. }
  151. $_data[$_k]['gamename'] = !empty($_v['game']) ? $_v['game']['name'] : '';
  152. $_data[$_k]['icon'] = !empty($_v['game']) ? $_v['game']['icon'] : '';
  153. $_data[$_k]['is_default'] = 1;
  154. if (!empty($_v['mg'])) {
  155. $_mem = $_mem_cache->getInfoById($_v['mg']['mem_id']);
  156. $_data[$_k]['username'] = !empty($_mem) ? $_mem['username'] : '';
  157. $_data[$_k]['is_switch'] = !empty($_mem) ? $_mem['is_switch'] : OrderConst::PAY_SWITCH_NO;
  158. $_data[$_k]['agent_id'] = '';
  159. $_data[$_k]['agent_name'] = '官方渠道';
  160. $_data[$_k]['is_default'] = $_v['mg']['is_default'] ?? 1;
  161. $_data[$_k]['mg_create_time'] = $_v['mg']['create_time'];
  162. $_data[$_k]['mg_update_time'] = $_v['mg']['update_time'];
  163. if (!empty($_mem['agent_id'])) {
  164. $_agent = $_agent_cache->getInfoByAgentId($_mem['agent_id']);
  165. $_data[$_k]['agent_id'] = empty($_agent['id']) ? '' : $_agent['id'];
  166. $_data[$_k]['agent_name'] = empty($_agent['user_nicename']) ? '' : $_agent['user_nicename'];
  167. }
  168. } else {
  169. $_data[$_k]['username'] = '';
  170. }
  171. }
  172. return [
  173. 'count' => $_count,
  174. 'list' => $_data
  175. ];
  176. }
  177. }