IncomeAdminLogic.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <?php
  2. /**
  3. * IncomeAdminLogic.php UTF-8
  4. * 后台获取收益列表
  5. *
  6. * @date : 2018/9/19 14:09
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : chenbingling <cbl@huosdk.com>
  10. * @version : HuoMp 1.0
  11. */
  12. namespace huomp\logic\finance;
  13. use cmf\controller\AdminBaseController;
  14. use huo\controller\common\CommonFunc;
  15. use huo\model\integral\MemItgLogModel;
  16. use huo\model\member\MemberModel;
  17. use huolib\constant\CommonConst;
  18. use huolib\constant\MemItgConst;
  19. use huolib\tool\StrUtils;
  20. class IncomeAdminLogic extends AdminBaseController {
  21. /**
  22. * @param array $param
  23. *
  24. * @return array|mixed
  25. */
  26. protected function getWhere($param = []) {
  27. $_map = [];
  28. if (!empty($param['mem_id'])) {
  29. $_map['mem_id'] = $param['mem_id'];
  30. }
  31. $_mem_map = [];
  32. if (!empty($param['nickname'])) {
  33. $_mem_map['nickname'] = $param['nickname'];
  34. }
  35. if (!empty($param['mem_username'])) {
  36. $_mem_map['username'] = $param['mem_username'];
  37. }
  38. if (!empty($param['mem_mobile'])) {
  39. $_mem_map['mobile'] = $param['mem_mobile'];
  40. }
  41. if (!empty($param['mem_real_name'])) {
  42. $_mem_map['real_name'] = $param['mem_real_name'];
  43. }
  44. if (!empty($_mem_map) && empty($_map['mem_id'])) {
  45. $_mem_ids = (new MemberModel())->where($_mem_map)->column('id');
  46. if (!empty($_mem_ids)) {
  47. $_map['mem_id'] = ['in', $_mem_ids];
  48. }
  49. }
  50. if (!empty($param['start_time']) && !empty($param['start_time'])) {
  51. $_map['create_time'] = ['between', [strtotime($param['start_time']),
  52. CommonConst::CONST_DAY_SECONDS + strtotime($param['end_time'])]];
  53. } else if (!empty($param['start_time'])) {
  54. $_map['create_time'] = ['gt', strtotime($param['start_time'])];
  55. } else if (!empty($param['end_time'])) {
  56. $_map['create_time'] = ['lt', CommonConst::CONST_DAY_SECONDS + strtotime($param['end_time'])];
  57. }
  58. return $_map;
  59. }
  60. /**
  61. * 收益列表
  62. *
  63. * @param array $where
  64. * @param string $page
  65. * @param string $order
  66. *
  67. * @return array
  68. */
  69. public function incomeList($where = [], $page = '1,10', $order = '-create_time') {
  70. $_map = $this->getWhere($where);
  71. $_field = [];
  72. return $this->getList($_field, $_map, $page, $order);
  73. }
  74. /**
  75. * @param $field
  76. * @param $where
  77. * @param string $page
  78. * @param string $order
  79. *
  80. * @return array
  81. */
  82. public function getList($field, $where, $page = '1,10', $order = '-create_time') {
  83. $_gold_rmb_rate = CommonFunc::getGoldRmbRate();
  84. $_map = $where;
  85. $_map['itg_type'] = MemItgConst::MEM_ITG_ADD;
  86. $_map['is_delete'] = CommonConst::CONST_NOT_DELETE;
  87. $_model = new MemItgLogModel();
  88. $_count = $_model->where($_map)->count();
  89. if (empty($_count)) {
  90. return [
  91. 'count' => 0,
  92. 'sum' => 0,
  93. 'list' => []
  94. ];
  95. }
  96. $_order = $_model->orderFilter($order);
  97. $_datas = $_model->with('member')
  98. ->with('submem')
  99. ->where($_map)
  100. ->order($_order)
  101. ->page($page)
  102. ->select();
  103. if (is_object($_datas)) {
  104. $_datas = $_datas->toArray();
  105. }
  106. if (empty($_datas)) {
  107. return [
  108. 'count' => $_count,
  109. 'sum' => 0,
  110. 'list' => []
  111. ];
  112. }
  113. $_sum = $_model->where($_map)->sum('integral');
  114. $_data = [];
  115. foreach ($_datas as $_v) {
  116. $_nickname = !empty($_v['member']['nickname']) ? $_v['member']['nickname'] : '';
  117. $_avatar = !empty($_v['member']['avatar']) ? $_v['member']['avatar'] : '';
  118. $_mobile = !empty($_v['member']['mobile']) ? $_v['member']['mobile'] : '';
  119. $_username = !empty($_v['member']['username']) ? $_v['member']['username'] : '';
  120. $_real_name = !empty($_v['member']['real_name']) ? $_v['member']['real_name'] : '';
  121. $_sub_nickname = '';
  122. $_sub_avatar = '';
  123. if ('member' == $_v['link_table']) {
  124. $_sub_nickname = !empty($_v['submem']) ? $_v['submem']['nickname'] : $_nickname;
  125. $_sub_avatar = !empty($_v['submem']) ? $_v['submem']['avatar'] : $_avatar;
  126. }
  127. $_data[] = [
  128. 'id' => $_v['id'],
  129. 'mem_id' => $_v['mem_id'],
  130. 'mem_username' => $_username,
  131. 'mem_real_name' => $_real_name,
  132. 'mem_mobile' => $_mobile,
  133. 'title' => $_nickname,
  134. 'icon' => $_avatar,
  135. 'sub_title' => $_sub_nickname,
  136. 'sub_icon' => $_sub_avatar,
  137. 'desc' => $_v['ia_name'],
  138. 'amount' => StrUtils::formatNumber($_v['integral'] / $_gold_rmb_rate),
  139. 'create_time' => $_v['create_time'],
  140. ];
  141. }
  142. return [
  143. 'count' => $_count,
  144. 'sum' => StrUtils::formatNumber($_sum / $_gold_rmb_rate),
  145. 'list' => $_data
  146. ];
  147. }
  148. }