* @version : HUOSDK 8.0 */ namespace huo\controller\agent; use huo\controller\common\Base; use huolib\sms\Sms; use huolib\status\MemberStatus; use think\Session; class Bind extends Base { /** * 获取已绑定的手机号 * * @param int $agent_id * * @return null */ public function getHasBindMobile($agent_id) { $_agent_info = (new AgentCache())->getInfoByAgentId($agent_id); if (empty($_agent_info) || empty($_agent_info['mobile'])) { return null; } $_mobile = $_agent_info['mobile']; $this->setHasBind($_mobile); return $_mobile; } /** * 发送手机短信 * * @param string $mobile * @param int $type 4 校验 6 绑定手机 * * @return array */ public function smsSend($mobile, $type) { if ($this->getHasBind()) { $mobile = $this->getOldMobile(); } $_rs = (new Sms())->send($mobile, $type); if (MemberStatus::NO_ERROR == $_rs['code']) { return $this->huoError($_rs['code'], $_rs['msg'], $_rs['data']); } return $this->huoSuccess($_rs['code'], $_rs['msg'], $_rs['data']); } /** * 校验原有手机 * * @param $mobile * @param $code * @param $type * * @return array */ public function checkOldMobile($mobile, $code, $type) { if ($this->getHasBind()) { $mobile = $this->getOldMobile(); } /* 校验短信是否正确 */ $_sms_rs = (new Sms())->check($mobile, $code, $type); if (MemberStatus::NO_ERROR != $_sms_rs['code']) { return $this->huoError($_sms_rs['code'], $_sms_rs['msg']); } $this->setCheckOk(); $_code = MemberStatus::NO_ERROR; return $this->huoSuccess($_code, MemberStatus::getMsg($_code)); } /** * 绑定手机中更新信息 * * @param int $agent_id * @param string $mobile * @param string $code * @param int $type * * @return array */ public function bindPost($agent_id, $mobile, $code, $type) { $_ac_class = AgentCache::ins(); $_agent_data = $_ac_class->getInfoByAgentId($agent_id); if (empty($mobile)) { $_code = MemberStatus::PHONE_ERROR; return $this->huoError($_code, MemberStatus::getMsg($_code)); } /* 有绑定手机 请先校验原有手机 */ if ($this->getHasBind() && false == $this->getCheckOk()) { $_code = MemberStatus::PHONE_NOT_CHECK; return $this->huoError($_code, MemberStatus::getMsg($_code)); } /* 校验短信是否正确 */ $_sms_rs = (new Sms())->check($mobile, $code, $type); if (MemberStatus::NO_ERROR != $_sms_rs['code']) { return $this->huoError($_sms_rs['code'], $_sms_rs['msg']); } $_agent_data['mobile'] = $mobile; $_rs = $_ac_class->updateAgent($agent_id, $_agent_data); if (MemberStatus::NO_ERROR != $_rs) { return $this->huoError($_rs, MemberStatus::getMsg($_rs)); } $_code = MemberStatus::NO_ERROR; $this->clearSession(); return $this->huoSuccess($_code, MemberStatus::getMsg($_code)); } /** * */ public function clearSession() { Session::clear('bind_mobile'); } /** * 设置是否校验OK * */ public function setCheckOk() { Session::set('bind_mobile.has_bind_ok', 1); } /** * @return bool */ public function getCheckOk() { $_has_bind = Session::get('has_bind_ok', 'bind_mobile'); if (empty($_has_bind)) { return false; } return true; } public function setHasBind($mobile) { Session::set('bind_mobile.has_bind', 1); $this->setOldMobile($mobile); } public function getHasBind() { $_has_bind = Session::get('has_bind', 'bind_mobile'); if (empty($_has_bind)) { return false; } return true; } public function setOldMobile($mobile) { Session::set('bind_mobile.old_mobile', $mobile); } public function getOldMobile() { $_old_mobile = Session::get('old_mobile', 'bind_mobile'); return $_old_mobile; } }