where('mobile', $mobile) ->find(); return $info; } /** * 根据邀请码获取会员信息 * @param $invitation_code * @return array|bool|\PDOStatement|string|Model|null */ public static function getByInvitationCode($invitation_code) { $info = self::where('invitation_code', $invitation_code) ->find(); return $info; } /** * 获取代理信息 * @param $invitation_code * @return array|null */ public static function getAgentRechargeInfoByAgentId($user) { $data['usdt'] = ''; $data['bank'] = []; $data['agent_id'] = $user['agent_id']; if(empty($data['agent_id'])){ $parent_info = self::where('id', $user['parent_id']) ->where('is_agent', 1) ->where('is_lock', 0) ->where('is_delete', 0) ->find(); $data['agent_id'] = $parent_info['agent_id'] ?? 0; } $info = self::where('id', $data['agent_id']) ->where('is_agent', 1) ->where('is_lock', 0) ->where('is_delete', 0) ->find(); if(empty($info)){ //没找到代理时,默认显示系统配置 if((new Config())->getValue('recharge_usdt_switch')){ $data['usdt'] = (new Config())->getValue('recharge_usdt_address'); } if((new Config())->getValue('recharge_bank_switch')){ $data['bank']['bank_name'] = (new Config())->getValue('recharge_bank_name'); $data['bank']['bank_card'] = (new Config())->getValue('recharge_bank_card'); $data['bank']['account_name'] = (new Config())->getValue('recharge_real_name'); } $data['agent_id'] = 0; return $data; } if($info['agent_in_usdt']){ $data['usdt'] = $info['agent_usdt_address']; } if($info['agent_in_bank']){ $bank_info = json_decode($info['agent_bank_info'], true) ; $data['bank']['bank_name'] = $bank_info['bank_name']?? ''; $data['bank']['bank_card'] = $bank_info['bank_card']?? ''; $data['bank']['account_name'] = $bank_info['account_name']?? ''; } if(empty($data['usdt']) && empty($data['bank'])){ return []; } return $data; } /** * 获取代理信息 * @param $invitation_code * @return array|null */ public static function getAgentWithdrawInfoByAgentId($agent_id) { $data['agent_id'] = $agent_id; $info = self::where('id', $agent_id) ->where('is_agent', 1) ->where('is_lock', 0) ->where('is_delete', 0) ->find(); if(empty($info)){ //没找到代理时,默认显示系统配置 $data['usdt'] = (new Config())->getValue('withdraw_usdt_switch'); $data['bank'] = (new Config())->getValue('withdraw_bank_switch'); $data['agent_id'] = 0; return $data; } $data['usdt'] = $info['agent_out_usdt']; $data['bank'] = $info['agent_out_bank']; return $data; } /** * 获取头像 * @param string $value * @param array $data * @return string */ public function getAvatarAttr($value, $data) { if (!$value) { //如果不需要启用首字母头像,请使用 //$value = '/assets/img/avatar.png'; $value = letter_avatar($data['nickname']); } return $value; } /** * 获取验证字段数组值 * @param string $value * @param array $data * @return object */ public function getVerificationAttr($value, $data) { $value = array_filter((array)json_decode($value, true)); $value = array_merge(['email' => 0, 'mobile' => 0], $value); return (object)$value; } /** * 设置验证字段 * @param mixed $value * @return string */ public function setVerificationAttr($value) { $value = is_object($value) || is_array($value) ? json_encode($value) : $value; return $value; } /** * 变更会员余额 * @param int $money 余额 * @param int $user_id 会员ID * @param string $memo 备注 */ public function setInvitationCode($user_id) { $inviteCode = $this->generateInviteCode(); $this->where('id', $user_id)->update(['invitation_code' => $inviteCode]); return $inviteCode; } /** * 生成随机邀请码 * @param $len * @return string */ protected function generateInviteCode($len = 4) { $characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $inviteCode = ''; for ($i = 0; $i < $len; $i++) { $inviteCode .= $characters[mt_rand(0, strlen($characters) - 1)]; } //检查是否重复 if($this->where('invitation_code', $inviteCode)->count()){ return $this->generateInviteCode($len); } return $inviteCode; } }