scene('add')->validate(); // 接收数据 $code = request('code', ''); // 接收数据 $data['phone'] = request('phone', ''); $data['company_name'] = request('company_name', '未知'); $data['position'] = request('position', '未知'); $data['remarks'] = request('remarks', ''); // 获取数据 $session = Cache::get('LeadMessageSmsCode_' . $data['phone']); if (!$session) return json_send(['code' => 'error', 'msg' => '请先获取手机号验证码']); if ($session['code'] != $code || $session['mobile'] != $data['phone']) return json_send(['code' => 'error', 'msg' => '验证码错误']); // 查询用户 $oldData = $LeadMessageModel->where([['phone', '=', $data['phone']]])->first(['id', 'phone', 'status']); // 存在的话 if ($oldData) return json_send(['code' => 'success', 'msg' => '留言成功', 'data' => $oldData]); // 写入表 $data['insert_time'] = time(); $data['id'] = $LeadMessageModel->insertGetId($data); // // 失败返回 if (!$data['id']) return json_send(['code' => 'error', 'msg' => '提交失败,请重试']); // 返回结果 return json_send(['code' => 'success', 'msg' => '留言成功', 'data' => '']); } /** * 发送验证码 * @author 唐远望 * @version 1.0 * @date 2026-03-05 * @param string phone 手机号码 * */ public function send_code(Request $Request, LeadMessageModel $LeadMessageModel) { // 验证规则 $Request->scene('send_code')->validate(); // 接收数据 $mobile = request('phone', ''); if (!$mobile) return json_send(['code' => 'error', 'msg' => '请先填写手机号']); // 获取数据 $session = Cache::get('LeadMessageSmsCode_' . $mobile); // 如果有数据,并且验证码创建的时间在一分钟之内 if ($session && time() - $session['create_time'] < 60) return json_send(['code' => 'error', 'msg' => '请稍后再试']); // 查询用户 $message_log = $LeadMessageModel->query()->where('phone', $mobile)->first(['status']); if ($message_log) return json_send(['code' => 'error', 'msg' => '该手机号码已登记']); $code = strval(rand(100000, 999999)); $result = Sms::sendCode($mobile, $code); if (isset($result['error'])) return json_send(['code' => 'error', 'msg' => $result['error']]); $session = ['code' => $code, 'mobile' => $mobile, 'create_time' => time()]; Cache::put('LeadMessageSmsCode_' . $mobile, $session, 120); return json_send(['code' => 'success', 'msg' => '发送成功', 'data' => $code]); } }