BaseLogic.php 2.7 KB
<?php

namespace App\Http\Logic\Bside;


use App\Enums\Common\Common;
use App\Exceptions\BsideGlobalException;
use App\Http\Logic\Logic;
use App\Models\Com\UpdateNotify;
use Illuminate\Support\Facades\Cache;

/**
 * @notes: 逻辑层基类 控制器调用 统一返回 统一抛出异常
 */
class BaseLogic extends Logic
{

    protected $requestAll;

    protected  $param;

    protected  $request;

    protected $user;

    protected $project;

    protected $side = Common::B;

    public function __construct()
    {
        $this->request = request();
        $this->requestAll = request()->all();
        $this->user = Cache::get(request()->header('token'));
        if(!empty($this->user)){
            $this->project = Cache::get('user-'.$this->user['project_id']);
        }
    }

    /**
     * 列表
     * @param array $map
     * @param array $sort
     * @param array $columns
     * @param int $limit
     * @return array
     * @author zbj
     * @date 2023/4/13
     */
    public function getList(array $map = [], array $sort = ['id' => 'desc'], array $columns = ['*'], int $limit = 20)
    {
        $map[] = ['project_id' => $this->user['project_id']];
        return parent::getList($map, $sort, $columns, $limit);
    }

    /**
     * @param $id
     * @return mixed
     * @author zbj
     * @date 2023/4/15
     */
    public function getCacheInfo($id)
    {
        $info = parent::getCacheInfo($id);
        if ($info && $info['project_id'] != $this->user['project_id']) {
            $info = null;
        }
        return $info;
    }

    /**
     * 保存
     * @param $param
     * @return array
     * @throws BsideGlobalException
     * @author zbj
     * @date 2023/4/13
     */
    public function save($param)
    {
        $param['project_id'] = $this->user['project_id'];
        return parent::save($param);
    }

    /**
     * 批量删除
     * @param $ids
     * @param array $map
     * @return array
     * @author zbj
     * @date 2023/4/13
     */
    public function delete($ids, $map = [])
    {
        $map[] = ['project_id' => $this->user['project_id']];
        return parent::delete($ids, $map);
    }

    /**
     * @name   :(通知更新)projectUrl
     * @author :lyh
     * @method :post
     * @time   :2023/6/6 14:09
     */
    function updateNotify($data)
    {
        $updateNotifyModel = new UpdateNotify();
        $info = $updateNotifyModel->read(['project_id'=>$data['project_id'],'route'=>$data['route'],'status'=>0]);
        if($info === false){
            $param = [
                'project_id'=>$data['project_id'],
                'type'=>$data['type'],
                'route'=>$data['route'],
            ];
            $updateNotifyModel->add($param);
        }
        return $this->success();
    }
}