MemberLogic.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. /**
  3. * MemberLogic.php UTF-8
  4. * 玩家逻辑
  5. *
  6. * @date : 2018/8/17 13:24
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : luowei <lw@huosdk.com>
  10. * @version : HuoMP 1.0
  11. */
  12. namespace huomp\logic\member;
  13. use huo\controller\common\CommonFunc;
  14. use huo\controller\member\MemCache;
  15. use huo\model\common\CommonModel;
  16. use huo\model\member\MemberModel;
  17. use huolib\constant\MemConst;
  18. class MemberLogic extends CommonModel {
  19. protected function getWhere($param = []) {
  20. $_map = [];
  21. if (!empty($param['parent_mem_id'])) {
  22. $_map['parent_mem_id'] = $param['parent_mem_id'];
  23. }
  24. return $_map;
  25. }
  26. public function getMemList($param = [], $page = '1,10') {
  27. $_where = $this->getWhere($param);
  28. $_where['status'] = MemConst::STATUS_NORMAL;
  29. $_field = [
  30. 'id' => 'id',
  31. 'nickname' => 'nickname',
  32. 'avatar' => 'avatar',
  33. ];
  34. $_data_list = $this->getList($_field, $_where, $page);
  35. $_today_cnt = (new MemberModel())->todayCount(['parent_mem_id' => $param['parent_mem_id']]);
  36. $_today_cnt_arr = ['today_cnt' => $_today_cnt];
  37. /* 获取邀请人信息 */
  38. $_today_cnt_arr['parent'] = [];
  39. $_mem_data = MemCache::ins()->getInfoById($param['parent_mem_id']);
  40. if (!empty($_mem_data['parent_mem_id'])) {
  41. $_pmem_data = MemCache::ins()->getInfoById($_mem_data['parent_mem_id']);
  42. if (!empty($_pmem_data)) {
  43. $_today_cnt_arr['parent'] = [
  44. 'id' => $_pmem_data['id'],
  45. 'nickname' => $_pmem_data['nickname'],
  46. 'avatar' => $_pmem_data['avatar'],
  47. 'tag' => '邀请人'
  48. ];
  49. }
  50. }
  51. return array_merge($_data_list, $_today_cnt_arr);
  52. }
  53. public function getList($field = [], $where = [], $page = '1,10', $order = '-create_time') {
  54. $_model = new MemberModel();
  55. $_count = $_model->where($where)->count();
  56. if (empty($_count)) {
  57. return [
  58. 'count' => $_count,
  59. 'list' => [],
  60. ];
  61. }
  62. $_order = $_model->orderFilter($order);
  63. $_mem_list = $_model->with('invited')
  64. ->field($field)
  65. ->where($where)
  66. ->order($_order)
  67. ->page($page)
  68. ->select();
  69. if (is_object($_mem_list)) {
  70. $_mem_list = $_mem_list->toArray();
  71. }
  72. if (empty($_mem_list)) {
  73. return [
  74. 'count' => $_count,
  75. 'list' => [],
  76. ];
  77. }
  78. $_gold_rmb_rate = CommonFunc::getGoldRmbRate();
  79. $_data = [];
  80. foreach ($_mem_list as $key => $mem) {
  81. $_amount = !empty($mem['invited']) ? $mem['invited']['amount'] : 0;
  82. $_data[] = [
  83. 'id' => $mem['id'],
  84. 'nickname' => $mem['nickname'],
  85. 'avatar' => $mem['avatar'],
  86. 'amount' => $_amount,
  87. 'gain_integral' => intval($_gold_rmb_rate * $_amount)
  88. ];
  89. }
  90. return [
  91. 'count' => $_count,
  92. 'list' => $_data,
  93. ];
  94. }
  95. }