* @version : HUOSDK 8.0 */ namespace huorisk\logic; use huo\model\common\CommonModel; use huo\model\member\MemberModel; use huomp\controller\finance\RiskAnalysis; use huorisk\model\MemRiskModel; class MemRiskLogic extends CommonModel { /** * 获取条件 * * @param array $param * * @return array */ protected function getWhere($param = []) { $_map = []; $_mem_map = []; if (!empty($param['sub_cnt_mini']) && !empty($param['sub_cnt_max'])) { $_map['sub_cnt'] = ['between', [$param['sub_cnt_mini'], $param['sub_cnt_max']]]; } elseif (!empty($param['sub_cnt_mini'])) { $_map['sub_cnt'] = ['gt', $param['sub_cnt_mini']]; } elseif (!empty($param['sub_cnt_max'])) { $_map['sub_cnt'] = ['lt', $param['sub_cnt_max']]; } if (!empty($param['risk_level'])) { $_map['risk_level'] = $param['risk_level']; } if (!empty($param['username'])) { $_mem_map['username'] = $param['username']; } if (!empty($param['nickname'])) { $_mem_map['nickname'] = $param['nickname']; } if (!empty($_mem_map)) { $_map['mem_id'] = (new MemberModel())->where($_mem_map)->value('id'); } if (!empty($param['mem_id'])) { $_map['mem_id'] = $param['mem_id']; } if (!empty($param['type']) && is_array($param['type'])) { if (in_array('withdraw', $param['type'])) { $_map['withdraw'] = ['lt', RiskAnalysis::ALARM_WITHDRAW]; } if (in_array('expand', $param['type'])) { $_map['expand'] = ['lt', RiskAnalysis::ALARM_EXPAND]; } if (in_array('wechat', $param['type'])) { $_map['wechat'] = ['lt', RiskAnalysis::ALARM_WECHAT]; } if (in_array('same_ip', $param['type'])) { $_map['same_ip'] = ['gt', RiskAnalysis::ALARM_SAME_IP]; } if (in_array('warrant', $param['type'])) { $_map['warrant'] = ['lt', RiskAnalysis::ALARM_WARRANT]; } if (in_array('realname', $param['type'])) { $_map['realname'] = ['lt', RiskAnalysis::ALARM_REALNAME]; } } return $_map; } public function getList($param = [], $page = '1,50', $order = '-mem_id') { $_rdata = ['count' => 0, 'list' => []]; $_map = $this->getWhere($param); $_model = new MemRiskModel(); $_count = $_model->where($_map)->count(); if (empty($_count)) { return $_rdata; } $_order = $_model->orderFilter($order); $_data = $_model->with('mem')->where($_map)->order($_order)->page($page)->select(); if (is_object($_data)) { $_data = $_data->toArray(); } if (empty($_data)) { return $_rdata; } $_list = []; foreach ($_data as $_V) { $_list[] = [ 'mem_id' => $_V['mem_id'], 'share_total' => $_V['share_total'], 'settle_total' => $_V['settle_total'], 'sub_cnt' => $_V['sub_cnt'], 'sub_share_total' => $_V['sub_share_total'], 'sub_settle_total' => $_V['sub_settle_total'], 'withdraw_default' => $_V['withdraw_default'], 'withdraw' => $_V['withdraw'], 'expand_default' => $_V['expand_default'], 'expand' => $_V['expand'], 'wechat_default' => $_V['wechat_default'], 'wechat' => $_V['wechat'], 'warrant_default' => $_V['warrant_default'], 'warrant' => $_V['warrant'], 'realname_default' => $_V['realname_default'], 'realname' => $_V['realname'], 'same_ip_default' => $_V['same_ip_default'], 'same_ip' => $_V['same_ip'], 'risk_level' => $_V['risk_level'], 'username' => empty($_V['mem']['username']) ? '' : $_V['mem']['username'], 'nickname' => empty($_V['mem']['nickname']) ? '' : $_V['mem']['nickname'], 'status' => empty($_V['mem']['status_label']) ? '' : $_V['mem']['status_label'], 'avatar' => empty($_V['mem']['avatar']) ? '' : $_V['mem']['avatar'], ]; } $_rdata['count'] = $_count; $_rdata['list'] = $_list; return $_rdata; } }