* @version : HuoMP 1.0 */ namespace huomp\logic\member; use huo\controller\common\CommonFunc; use huo\controller\member\MemCache; use huo\model\common\CommonModel; use huo\model\member\MemberModel; use huolib\constant\MemConst; class MemberLogic extends CommonModel { protected function getWhere($param = []) { $_map = []; if (!empty($param['parent_mem_id'])) { $_map['parent_mem_id'] = $param['parent_mem_id']; } return $_map; } public function getMemList($param = [], $page = '1,10') { $_where = $this->getWhere($param); $_where['status'] = MemConst::STATUS_NORMAL; $_field = [ 'id' => 'id', 'nickname' => 'nickname', 'avatar' => 'avatar', ]; $_data_list = $this->getList($_field, $_where, $page); $_today_cnt = (new MemberModel())->todayCount(['parent_mem_id' => $param['parent_mem_id']]); $_today_cnt_arr = ['today_cnt' => $_today_cnt]; /* 获取邀请人信息 */ $_today_cnt_arr['parent'] = []; $_mem_data = MemCache::ins()->getInfoById($param['parent_mem_id']); if (!empty($_mem_data['parent_mem_id'])) { $_pmem_data = MemCache::ins()->getInfoById($_mem_data['parent_mem_id']); if (!empty($_pmem_data)) { $_today_cnt_arr['parent'] = [ 'id' => $_pmem_data['id'], 'nickname' => $_pmem_data['nickname'], 'avatar' => $_pmem_data['avatar'], 'tag' => '邀请人' ]; } } return array_merge($_data_list, $_today_cnt_arr); } public function getList($field = [], $where = [], $page = '1,10', $order = '-create_time') { $_model = new MemberModel(); $_count = $_model->where($where)->count(); if (empty($_count)) { return [ 'count' => $_count, 'list' => [], ]; } $_order = $_model->orderFilter($order); $_mem_list = $_model->with('invited') ->field($field) ->where($where) ->order($_order) ->page($page) ->select(); if (is_object($_mem_list)) { $_mem_list = $_mem_list->toArray(); } if (empty($_mem_list)) { return [ 'count' => $_count, 'list' => [], ]; } $_gold_rmb_rate = CommonFunc::getGoldRmbRate(); $_data = []; foreach ($_mem_list as $key => $mem) { $_amount = !empty($mem['invited']) ? $mem['invited']['amount'] : 0; $_data[] = [ 'id' => $mem['id'], 'nickname' => $mem['nickname'], 'avatar' => $mem['avatar'], 'amount' => $_amount, 'gain_integral' => intval($_gold_rmb_rate * $_amount) ]; } return [ 'count' => $_count, 'list' => $_data, ]; } }