106 lines
3.8 KiB
PHP
106 lines
3.8 KiB
PHP
<?php
|
||
/**
|
||
* @copyright Copyright (c)
|
||
* @company 美天智能科技
|
||
* @author 李志强
|
||
* @link http://www.meteteme.com
|
||
*/
|
||
declare(strict_types=1);
|
||
|
||
namespace app\apiout\controller;
|
||
|
||
use app\apiout\BaseController;
|
||
use think\facade\Db;
|
||
|
||
class BusinessInfo extends BaseController
|
||
{
|
||
//商机填写接口
|
||
public function bifill()
|
||
{
|
||
// 允许来自指定域名的跨域请求
|
||
header('Access-Control-Allow-Origin: https://kd.meteteme.top');
|
||
header('Access-Control-Allow-Headers: Content-Type');
|
||
|
||
header('Access-Control-Allow-Origin: https://www.meteteme.com');
|
||
header('Access-Control-Allow-Headers: Content-Type');
|
||
|
||
// 获取表单数据
|
||
$params = $this->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]);
|
||
}
|
||
} |