ChatRecordsController.php 4.8 KB
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
 * 控制层: ChatRecord 控制类
+-----------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Http\Api\V1\Controllers
 * @package   App\Http\Api\V1\Controllers
 * @author    Richer <yangzi1028@163.com>
 * @date      2023年4月23日16:38:09
 * @copyright 2020-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
namespace App\Http\Api\V1\Controllers;

use App\Http\Requests\ChatItemRecordRequest;
use App\Http\Requests\ChatRecordRequest;
use App\Http\Requests\RechargeOrderRequest;
use App\Services\ChatRecordService;
use App\Transformers\ChatRecordTransformer;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

/**
 * Class ChatRecordsController
 *
 * @package App\Http\Api\V1\Controllers
 */
class ChatRecordsController extends BaseController
{
    /**
     * ChatRecordsController constructor.
     *
     * @param ChatRecordService $service 注入service逻辑层
     * @param ChatRecordTransformer $transformer
     */
    public function __construct(ChatRecordService $service, ChatRecordTransformer $transformer)
    {
        // 执行父类构造方法
        parent::__construct($service, $transformer);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  ChatRecordRequest $request
     *
     * @return Response
     */
    public function store(ChatRecordRequest $request)
    {
        try {
            $result = $this->service->chat($request, false);
            // 验证结果
            if ($result) {
                return $this->success($result);
            }
            return $this->error($this->service->getMessage(), 1003);
        } catch (Exception $e) {
            return $this->error($e->getMessage(), 1003);
        }
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  ChatRecordRequest $request
     *
     * @return Response
     */
    public function stream(ChatRecordRequest $request)
    {
        try {
            $result = $this->service->chat($request);

            // 验证结果
            if ($result) {
                return $this->success($result);
            }
            return $this->error($this->service->getMessage(), 1003);
        } catch (Exception $e) {
            return $this->error($e->getMessage(), 1003);
        }
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param ChatItemRecordRequest $request
     * @param $id
     * @return Response
     */
    public function chat(ChatItemRecordRequest $request, $id)
    {
        try {
            $result = $this->service->coutinueChat($request, $id, false);
            // 验证结果
            if ($result) {
                return $this->success($result);
            }
            return $this->error($this->service->getMessage(), 1003);
        } catch (Exception $e) {
            return $this->error($e->getMessage(), 1003);
        }

    }

    /**
     * Store a newly created resource in storage.
     *
     * @param ChatItemRecordRequest $request
     * @param $id
     * @return Response
     */
    public function chatStream(ChatItemRecordRequest $request, $id)
    {
        try {
            $result = $this->service->coutinueChat($request, $id);
            // 验证结果
            if ($result) {
                return $this->success($result);
            }
            return $this->error($this->service->getMessage(), 1003);
        } catch (Exception $e) {
            return $this->error($e->getMessage(), 1003);
        }
    }

    /**
     * 当前聊天记录
     *
     * @param $id
     * @return Response
     */
    public function items($id)
    {
        $result = $this->service->items($id);
        // 验证结果
        if ($result) {
            return $this->success($result);
//            return $this->collection($result, $this->transformer);
        }
        return $this->error($this->service->getMessage(), 1001);
    }

    /**
     * 重写
     */
    public function index()
    {
        $result = $this->service->list();
        // 验证结果
        if ($result) {
            return $this->collection($result, $this->transformer);
        }
        return $this->error($this->service->getMessage(), 1001);
    }

    /**
     * 获取上次聊天-是否超时
     *
     * @param  $request
     * @return Response
     */
    public function latestTimeout()
    {
        $result = $this->service->latestTimeout();

        // 验证结果
        if ($result) {
            return $this->success($result);
        }
        return $this->error($this->service->getMessage(), 1001);
    }
}