BaseLogic.php 2.4 KB
<?php

namespace App\Http\Logic\Aside;


use App\Enums\Common\Common;
use App\Http\Logic\Logic;
use App\Models\Project\Project;
use Illuminate\Support\Facades\Cache;

/**
 * @notes: 逻辑层基类 控制器调用 统一返回 统一抛出异常
 * Class BaseLogic
 * @package App\Http\Logic\Aside
 */
class BaseLogic extends Logic
{
    protected $requestAll;
    protected $manager;

    protected $request;

    protected $side = Common::A;

    public function __construct()
    {
        $this->request = request();
        $this->requestAll = $this->getParam();
        $this->manager = Cache::get(Common::MANAGE_TOKEN . $this->request->header('token'));
    }

    /**
     * @remark :请求参数处理
     * @name   :getParam
     * @author :lyh
     * @method :post
     * @time   :2023/6/17 16:34
     */
    public function getParam(){
        $requestAll = $this->request->all();
        $requestAll = $this->handleIdAndProjectId($requestAll);
        return $this->success($requestAll);
    }

    /**
     * @remark :处理project参数
     * @name   :handleIdAndProjectId
     * @author :lyh
     * @method :post
     * @time   :2025/11/6 10:41
     */
    public function handleIdAndProjectId($param)
    {
        if(isset($param['id']) && !empty($param['id'])){
            if (preg_match('/^[A-Za-z]/', $param['id'])) {
                $id = Cache::get('project_'.$param['id']);
                if(empty($id)){
                    $projectModel = new Project();
                    $id = $projectModel->getValue(['post_id' => $param['id']],'id');
                    if(!empty($id)){
                        Cache::add('project_'.$param['id'], $id, 3600 * 12);
                    }
                }
                $param['id'] = $id;
            }
        }
        if(isset($param['project_id']) && !empty($param['project_id'])){
            if (preg_match('/^[A-Za-z]/', $param['project_id'])) {
                $id = Cache::get('project_'.$param['project_id']);
                if(empty($id)){
                    $projectModel = new Project();
                    $id = $projectModel->getValue(['post_id' => $param['project_id']],'id');
                    if(!empty($id)){
                        Cache::add('project_'.$param['project_id'], $id, 3600 * 12);
                    }
                }
                $param['project_id'] = $id;
            }
        }
        return $param;
    }
}