request->post(); // 调试:打印接收到的参数 error_log('Received POST parameters: ' . json_encode($params)); // 判断表单数据是否完整 $requiredFields = ['name', 'email', 'phone', 'message', 'product', 'company', 'ip']; foreach ($requiredFields as $field) { if (!isset($params[$field]) || empty($params[$field])) { error_log("Missing or empty field: $field"); return json(['code' => 2, 'msg' => '请填写完整的表单数据!']); } } // 向数据库插入数据 $result = Db::name('Information')->insert([ 'name' => $params['name'], 'email' => $params['email'], 'phone' => $params['phone'], 'message' => $params['message'], 'product' => $params['product'], 'company' => $params['company'], 'ip' => $params['ip'], 'create_time' => time(), ]); // 判断插入结果 if ($result) { $webhook = 'https://oapi.dingtalk.com/robot/send?access_token=c39726abd36659f92442847430eda90bebb360c438270f7c05bea388f1c8168c'; $title = '**有新的商机生成!**'; $line = '------------------------------'; $companynames = '公司名称:' . $params['company']; $names = '联 系 人 :' . $params['name']; $contents = '请及时进入项管系统查看!'; $times = '创建日期:' . date('Y-m-d H:i:s', time()); $data = array( 'msgtype' => 'actionCard', 'actionCard' => array( 'title' => $title, 'text' => $title . "\n\n" . $companynames . "\n\n" . $names . "\n\n" . $times, 'btnOrientation' => '0', 'btns' => [ [ 'title' => '查看商机', 'actionURL' => 'dingtalk://dingtalkclient/page/link?url=' . urlencode('https://project.meteteme.com/information/index/index') . '&pc_slide=false' ] ] ) ); $options = array( 'http' => array( 'header' => "Content-type: application/json", 'method' => 'POST', 'content' => json_encode($data), ) ); $context = stream_context_create($options); $result = file_get_contents($webhook, false, $context); return json(['code' => 0, 'msg' => '留言提交成功!']); } else { return json(['code' => 1, 'msg' => '留言提交失败!']); } } //获取产品信息 public function product_info() { // 查询Product表中的所有产品信息 $products = Db::name('Product')->field('id, name')->select(); // 返回产品信息数组给前端,包括id和name return json(['code' => 0, 'msg' => '获取产品信息成功', 'data' => $products]); } }