MenuSpecialLogic.php 3.5 KB
<?php
/**
 * @remark :
 * @name   :MenuSpecialLogic.php
 * @author :lyh
 * @method :post
 * @time   :2023/8/7 11:56
 */

namespace App\Http\Logic\Aside\Manage;

use App\Http\Logic\Aside\BaseLogic;
use App\Models\Manage\Manage;
use App\Models\Manage\ManageHr;
use App\Models\Manage\MenuSpecial;

class MenuSpecialLogic extends BaseLogic
{
    public function __construct()
    {
        parent::__construct();
        $this->param = $this->requestAll;
        $this->model = new MenuSpecial();
    }

    /**
     * @remark :添加时获取用户列表
     * @name   :managerList
     * @author :lyh
     * @method :post
     * @time   :2023/8/7 14:33
     */
    public function managerList($map){
        $managerModel = new Manage();
        $query = $managerModel->leftJoin('gl_manage_hr', 'gl_manage.id', '=', 'gl_manage_hr.manage_id');
        $query = $this->searchParam($query,$map);
        $lists = $query->select($this->selectParam())->get()->toArray();
        return $this->success($lists);
    }

    /**
     * @remark :搜索
     * @name   :searchParam
     * @author :lyh
     * @method :post
     * @time   :2024/10/24 11:50
     */
    public function searchParam(&$query,$map){
         $query = $query->where('gl_manage_hr.status', null)->orWhere('gl_manage_hr.status', $map['status'] ?? 1);
         return $query;
    }

    /**
     * 需要查询的字段
     * @return array
     */
    public function selectParam(){
        $select = [
            'gl_manage.id AS id',
            'gl_manage.name AS name',
            'gl_manage_hr.status as status'
        ];
        return $select;
    }
    /**
     * @remark :获取详情
     * @name   :specialInfo
     * @author :lyh
     * @method :post
     * @time   :2023/8/7 14:15
     */
    public function specialInfo(){
        $info = $this->model->read($this->param);
        if($info === false){
            $this->fail('当前数据不存在或者被删除');
        }
        $info['manager_list'] = $this->manager_list($info['user_list']);
        return $this->success($info);
    }

    /**
     * @remark :获取所有用户名称
     * @name   :manager_list
     * @author :lyh
     * @method :post
     * @time   :2023/8/7 14:17
     */
    public function manager_list($manager_id){
        $managerModel = new Manage();
        $list = $managerModel->list(['id'=>['in',explode(',',trim($manager_id,','))]]);
        $str = '';
        foreach ($list as $k => $v){
            $str .= $v['name'].',';
        }
        return trim($str,',');
    }
    /**
     * @remark :保存
     * @name   :specialSave
     * @author :lyh
     * @method :post
     * @time   :2023/8/7 13:52
     */
    public function specialSave(){
        if(isset($this->param['user_list']) && !empty($this->param['user_list'])){
            $this->param['user_list'] = ','.trim($this->param['user_list'],',').',';
        }else{
            $this->param['user_list'] = '';
        }
        if(isset($this->param['id']) && !empty($this->param['id'])){
            $rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
        }else{
            $rs = $this->model->add($this->param);
        }
        if($rs === false){
            $this->fail('error');
        }
        return $this->success();
    }

    /**
     * @remark :删除
     * @name   :specialDel
     * @author :lyh
     * @method :post
     * @time   :2023/8/7 13:52
     */
    public function specialDel(){
        $rs = $this->model->del($this->param);
        if($rs === false){
            $this->fail('error');
        }
        return $this->success();
    }
}