/** * find() * 核实信息 * @param number 学号 * @param name 姓名 */ public function find() { $uid = use_id(); $number = I('number', false, C('REGEX_NUMBER')); $name = I('name', false, 'trim'); $User = M('User'); $Card = M('Card'); $send_user = $uid ? $User->field('id,sch_id,student_number,name,phone,email')->getById($uid) : false; if (!$send_user) { $this->error('请登录!', '/'); } elseif (!$send_user['phone']) { $this->error('尚未绑定手机', '/User/index'); } elseif ($send_user['student_number'] == $number) { $this->error('不要用自己的做实验哦!'); } elseif ($Card->cache(true)->getFieldById($uid, 'blocked')) { $this->error('由于恶意使用,您的此功能已被禁用', '/Card/help'); } elseif (!$name && !$number) { $this->error('信息不足'); } else { /*尝试 验证 匹配 通知*/ $School = M('School'); $recv_user = $User->field('id,name,student_number AS number,sch_id,phone,email')->getByStudentNumber($number); if (!$recv_user) { /* 判断学校*/ if (preg_match(C('REGEX_NUMBER_NKU'), $number)) { $this->_saveReceiver($name, $number, 1, false); } elseif (preg_match(C('REGEX_NUMBER_TJU'), $number)) { $this->_saveReceiver($name, $number, 2, false); } else { $this->error('对不起,目前平台仅对南开大学和天津大学在校生开放,其他需求或者学校请联系我们!'); } $this->error($name . "({$number})尚未加入,你可以在此广播到社交网络", '/Card/broadcast'); } elseif ($name !== $recv_user['name']) { $this->error('失主信息核对失败!'); } elseif ($recv_off = $Card->cache(120)->getFieldById($recv_user['id'], 'off')) { $this->error('对方关闭了此功能,不希望你打扰TA,我们爱莫能助╮(╯-╰)╭'); } elseif (!($recv_user['phone'] || $recv_user['email'])) { $this->_saveReceiver($recv_user['name'], $recv_user['number'], $recv_user['sch_id'], $recv_user['id']); $this->error($name . "({$number})尚未绑定联系方式,你可以在此广播到社交网络", '/Card/broadcast'); } else { /*验证成功 ,手机或者邮箱存在 通知并记录*/ if ($recv_off === null) { //该同学不在card记录之中,则先创建 $Card->add(array('id' => $recv_user['id'])); } $msg = ''; //提示消息 $success = false; import('Common.Encrypt', COMMON_PATH, '.php'); $send_phone = decrypt_phone($send_user['phone'], $send_user['student_number'], $send_user['id']); if ($recv_user['phone']) { /*发送短信通知*/ $recv_phone = decrypt_phone($recv_user['phone'], $recv_user['number'], $recv_user['id']); $SMS = new \Vendor\Sms(); $info = array('send_phone' => $send_phone, 'send_name' => $send_user['name'], 'recv_name' => $recv_user['name']); $sms_result = $SMS->findCard($recv_phone, $info); $success |= $sms_result; if ($sms_result) { $msg = '短信已发送!<br/>'; } else { $msg = '短信发送失败!<br/>'; } } if ($recv_user['email']) { /*发送邮件通知*/ $recv_email = decrypt_email($recv_user['email']); $send_user['school'] = $School->cache(true)->getFieldById($send_user['sch_id'], 'name'); if ($send_user['email']) { $send_user['email'] = decrypt_email($send_user['email']); } /*拼装邮件*/ $mail_msg = L('MAIL_CARD', array('name' => $recv_user['name'], 'school' => $send_user['school'], 'sender_name' => $send_user['name'], 'phone' => $send_user['phone'], 'email' => $send_user['email'])); $mail_result = send_mail($recv_user, $mail_msg, C('MAIL_NOTIFY')); $success |= $mail_result; if ($mail_result) { $msg .= '邮件已发送!<br/>'; } else { $msg .= '邮件发送失败!'; } } if (!$success) { $this->_saveReceiver($recv_user['name'], $recv_user['number'], $recv_user['sch_id'], $recv_user['id']); $this->error('消息发送失败!请重试或者交由第三方平台!', '/Card/broadcast'); } else { /*记录招领信息*/ $log = array('find_id' => $send_user['id'], 'lost_id' => $recv_user['id']); if (!M('Cardlog')->add($log)) { $this->error('记录失败!!!<br/>' . $msg); } else { $this->success($msg); } } } } }