BaseLogic.php 2.8 KB
<?php

namespace App\Http\Logic\Bside;


use App\Enums\Common\Common;
use App\Exceptions\BsideGlobalException;
use App\Http\Controllers\ImageController;
use App\Http\Logic\Logic;
use Illuminate\Support\Facades\Cache;

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

    protected $requestAll;

    protected  $param;

    protected  $request;

    protected $user;

    protected $side = Common::B;

    public function __construct()
    {
        $this->request = request();
        $this->requestAll = request()->all();
        $this->user = Cache::get(request()->header('token'));
    }


    /**
     * 列表
     * @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 :上传图片
     * @return void
     * @author :liyuhang
     * @method
     */
    public function upload(){
        $image = new ImageController();
        $hash = $image->upload();
        return $hash;
    }

    /**
     * @name :自增或自减
     * @return bool
     * @author :liyuhang
     * @method
     */
    public function set_num($model,$data,$type = 'add',$num = 1){
        if(is_array($data)){
            foreach ($data as $v){
                $this->set_num($model,$v,$type,$num);
            }
        }else{
            if($type == 'del'){
                $rs = $model::where('id',$data)->decrement('num',$num);
            }else{
                $rs = $model::where('id',$data)->increment('num',$num);
            }
        }
        return $rs;
    }
}