* @version : HuoMp 1.0 */ namespace huomp\logic\finance; use cmf\controller\AdminBaseController; use huo\controller\common\CommonFunc; use huo\model\integral\MemItgLogModel; use huo\model\member\MemberModel; use huolib\constant\CommonConst; use huolib\constant\MemItgConst; use huolib\tool\StrUtils; class IncomeAdminLogic extends AdminBaseController { /** * @param array $param * * @return array|mixed */ protected function getWhere($param = []) { $_map = []; if (!empty($param['mem_id'])) { $_map['mem_id'] = $param['mem_id']; } $_mem_map = []; if (!empty($param['nickname'])) { $_mem_map['nickname'] = $param['nickname']; } if (!empty($param['mem_username'])) { $_mem_map['username'] = $param['mem_username']; } if (!empty($param['mem_mobile'])) { $_mem_map['mobile'] = $param['mem_mobile']; } if (!empty($param['mem_real_name'])) { $_mem_map['real_name'] = $param['mem_real_name']; } if (!empty($_mem_map) && empty($_map['mem_id'])) { $_mem_ids = (new MemberModel())->where($_mem_map)->column('id'); if (!empty($_mem_ids)) { $_map['mem_id'] = ['in', $_mem_ids]; } } if (!empty($param['start_time']) && !empty($param['start_time'])) { $_map['create_time'] = ['between', [strtotime($param['start_time']), CommonConst::CONST_DAY_SECONDS + strtotime($param['end_time'])]]; } else if (!empty($param['start_time'])) { $_map['create_time'] = ['gt', strtotime($param['start_time'])]; } else if (!empty($param['end_time'])) { $_map['create_time'] = ['lt', CommonConst::CONST_DAY_SECONDS + strtotime($param['end_time'])]; } return $_map; } /** * 收益列表 * * @param array $where * @param string $page * @param string $order * * @return array */ public function incomeList($where = [], $page = '1,10', $order = '-create_time') { $_map = $this->getWhere($where); $_field = []; return $this->getList($_field, $_map, $page, $order); } /** * @param $field * @param $where * @param string $page * @param string $order * * @return array */ public function getList($field, $where, $page = '1,10', $order = '-create_time') { $_gold_rmb_rate = CommonFunc::getGoldRmbRate(); $_map = $where; $_map['itg_type'] = MemItgConst::MEM_ITG_ADD; $_map['is_delete'] = CommonConst::CONST_NOT_DELETE; $_model = new MemItgLogModel(); $_count = $_model->where($_map)->count(); if (empty($_count)) { return [ 'count' => 0, 'sum' => 0, 'list' => [] ]; } $_order = $_model->orderFilter($order); $_datas = $_model->with('member') ->with('submem') ->where($_map) ->order($_order) ->page($page) ->select(); if (is_object($_datas)) { $_datas = $_datas->toArray(); } if (empty($_datas)) { return [ 'count' => $_count, 'sum' => 0, 'list' => [] ]; } $_sum = $_model->where($_map)->sum('integral'); $_data = []; foreach ($_datas as $_v) { $_nickname = !empty($_v['member']['nickname']) ? $_v['member']['nickname'] : ''; $_avatar = !empty($_v['member']['avatar']) ? $_v['member']['avatar'] : ''; $_mobile = !empty($_v['member']['mobile']) ? $_v['member']['mobile'] : ''; $_username = !empty($_v['member']['username']) ? $_v['member']['username'] : ''; $_real_name = !empty($_v['member']['real_name']) ? $_v['member']['real_name'] : ''; $_sub_nickname = ''; $_sub_avatar = ''; if ('member' == $_v['link_table']) { $_sub_nickname = !empty($_v['submem']) ? $_v['submem']['nickname'] : $_nickname; $_sub_avatar = !empty($_v['submem']) ? $_v['submem']['avatar'] : $_avatar; } $_data[] = [ 'id' => $_v['id'], 'mem_id' => $_v['mem_id'], 'mem_username' => $_username, 'mem_real_name' => $_real_name, 'mem_mobile' => $_mobile, 'title' => $_nickname, 'icon' => $_avatar, 'sub_title' => $_sub_nickname, 'sub_icon' => $_sub_avatar, 'desc' => $_v['ia_name'], 'amount' => StrUtils::formatNumber($_v['integral'] / $_gold_rmb_rate), 'create_time' => $_v['create_time'], ]; } return [ 'count' => $_count, 'sum' => StrUtils::formatNumber($_sum / $_gold_rmb_rate), 'list' => $_data ]; } }