75 lines
2.4 KiB
PHP
75 lines
2.4 KiB
PHP
<?php
|
|
namespace app\controller;
|
|
|
|
|
|
use app\model\Feedback as FeedbackModel;
|
|
use app\repository\AccountRepository;
|
|
use think\captcha\facade\Captcha;
|
|
|
|
/**
|
|
* 留言与意见反馈
|
|
*
|
|
* Class Feedback
|
|
* @package app\controller
|
|
*/
|
|
class Feedback extends Base
|
|
{
|
|
/**
|
|
* 用户提交反馈信息
|
|
*/
|
|
public function submitFeedback()
|
|
{
|
|
if (!$this->request->isPost()) {
|
|
return $this->json(4001, '请求方式错误!');
|
|
}
|
|
|
|
$params = [
|
|
'user_name' => $this->request->post('user_name/s', ''),
|
|
'user_tel' => $this->request->post('user_tel/s', ''),
|
|
'user_email' => $this->request->post('user_email/s', ''),
|
|
'content' => $this->request->post('content/s', ''),
|
|
'code' => $this->request->post('code/s', ''),
|
|
];
|
|
|
|
try{
|
|
$validate = $this->validateByApi($params, [
|
|
'code|验证码'=>'require|captcha',
|
|
'user_name|姓名' => 'chs|min:2|max:30',
|
|
'user_tel|联系电话' => 'min:5|max:20|mobile',
|
|
'user_email|邮箱地址' => 'email',
|
|
'content|留言内容' => 'require|min:6|max:500',
|
|
]);
|
|
if ($validate !== true) {
|
|
return $validate;
|
|
}
|
|
|
|
if ($this->authId > 0) {
|
|
$account = AccountRepository::getInstance()->findById($this->authId);
|
|
if ($account) {
|
|
$params['user_name'] = $params['user_name'] ?: ($account->nickname ?? '');
|
|
$params['user_tel'] = $params['user_tel'] ?: ($account->mobile ?? '');
|
|
}
|
|
}
|
|
|
|
FeedbackModel::create([
|
|
'account_id' => $this->authId,
|
|
'user_name' => $params['user_name'] ?: '',
|
|
'user_tel' => $params['user_tel'] ?: '',
|
|
'user_email' => $params['user_email'],
|
|
'content' => $params['content'],
|
|
'created_at' => date('Y-m-d H:i:s'),
|
|
]);
|
|
|
|
|
|
return $this->json(0, '感谢你的留言!');
|
|
} catch (\Exception $e) {
|
|
return $this->json(5001, '服务器异常,留言信息提交失败!');
|
|
}
|
|
|
|
}
|
|
|
|
public function code()
|
|
{
|
|
return Captcha::create('verify');
|
|
}
|
|
} |