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');
 | 
						|
    }
 | 
						|
} |