HrLogic.php 5.5 KB
<?php

namespace App\Http\Logic\Aside\Manage;


use App\Http\Logic\Aside\BaseLogic;
use App\Models\Manage\BelongingGroup;
use App\Models\Manage\EntryPosition;
use App\Models\Manage\JobLevel;
use App\Models\Manage\Manage;
use App\Models\Manage\ManageHr;
use Illuminate\Support\Facades\Hash;

/**
 * Class ManageHrLogic
 * @package App\Http\Logic\Aside\Manage
 * @author zgj
 * @date 2023/5/30
 */
class HrLogic extends BaseLogic
{
    public function __construct()
    {
        parent::__construct();
        $this->param = $this->requestAll;
        $this->model = new ManageHr();
    }

    /**
     * @remark :获取列表
     * @name   :getList
     * @author :lyh
     * @method :post
     * @time   :2023/7/24 11:50
     */
    public function getHrList($map,$page,$row,$order = 'id',$filed = ['*']){
        $lists = $this->model->lists($map,$page,$row,$order,$filed);
        return $this->success($lists);
    }

    /**
     * @remark :保存数据
     * @name   :hrSave
     * @author :lyh
     * @method :post
     * @time   :2023/9/6 10:17
     */
    public function hrSave(){
        try {
            //处理参数
            foreach ($this->model::specieField() as $v){
                $this->param = $this->setJson($v,$this->param);
            }
            if(isset($this->param['id']) && !empty($this->param['id'])){
                $this->model->edit($this->param,['id'=>$this->param['id']]);
            }else{
                //添加管理员账号
                $this->param['manage_id'] = $this->addManager($this->param['mobile'],$this->param['name']);
                $this->model->add($this->param);
            }
        }catch (\Exception $e){
            $this->fail('error');
        }
        return $this->success();
    }

    /**
     * @remark :获取详情
     * @name   :getHrInfo
     * @author :lyh
     * @method :post
     * @time   :2023/7/25 9:27
     */
    public function getHrInfo($id){
        $data = $this->model->read(['id'=>$id]);
        foreach ($this->model::specieField() as $v){
            $data[$v] = json_decode($data[$v],true);
        }
        return $this->success($data);
    }

    //数组转json存储
    public function setJson($str,$param){
        if(isset($param[$str]) && is_array($param[$str])){
            $param[$str] = json_encode($param[$str]);
        }
        return $param;
    }

    /**
     * @remark :获取所有搜索参数
     * @name   :getParams
     * @author :lyh
     * @method :post
     * @time   :2023/7/24 11:05
     */
    public function getSearchParams(){
        $data['belong_group'] = $this->belongGroupList();
        $data['education'] = $this->educationList();
        $data['entry_position'] = $this->entryPositionList();
        $data['p_level'] = $this->pLevel();
        $data['political_outlook'] = $this->politicalOutlook();
        $data['party_branch'] = $this->IsPartyBranch();
        return $data;
    }

    /**
     * @remark :获取归属小组
     * @name   :belongGroupList
     * @author :lyh
     * @method :post
     * @time   :2023/7/22 17:35
     */
    public function belongGroupList(){
        $belongingGroupModel = new BelongingGroup();
        $lists = $belongingGroupModel->list();
        return $this->success($lists);
    }

    /**
     * @remark :获取学历
     * @name   :educationList
     * @author :lyh
     * @method :post
     * @time   :2023/7/22 17:49
     */
    public function educationList(){
        $data = [
            1 => '专科',
            2 => '本科',
            3 => '研究生及以上',
            0 => '其他',
        ];
        return $this->success($data);
    }

    /**
     * @remark :入职岗位
     * @name   :entryPositionList
     * @author :lyh
     * @method :post
     * @time   :2023/7/22 17:51
     */
    public function entryPositionList(){
        $entryPositionModel = new EntryPosition();
        $lists = $entryPositionModel->list();
        return $this->success($lists);
    }

    /**
     * @remark :职务级别
     * @name   :pLevel
     * @author :lyh
     * @method :post
     * @time   :2023/7/22 18:10
     */
    public function pLevel(){
        $jobLevelModel = new JobLevel();
        $lists = $jobLevelModel->list();
        return $this->success($lists);
    }

    /**
     * @remark :政治面貌
     * @name   :politicalOutlook
     * @author :lyh
     * @method :post
     * @time   :2023/7/24 10:57
     */
    public function politicalOutlook(){
        $data = [
            1 => '预备党员',
            2 => '正式党员',
            0 => '群众',
        ];
        return $this->success($data);
    }

    /**
     * @remark :是否有党支部
     * @name   :IsPartyBranch
     * @author :lyh
     * @method :post
     * @time   :2023/7/24 11:01
     */
    public function IsPartyBranch(){
        $data = [
            1 => '是',
            2 => '否',
            0 => '无',
        ];
        return $this->success($data);
    }

    /**
     * @remark :添加人事信息时 同步添加管理员账号
     * @name   :addManager
     * @author :lyh
     * @method :post
     * @time   :2023/9/6 10:18
     */
    public function addManager($mobile,$name){
        $managerModel = new Manage();
        $info = $managerModel->read(['mobile'=>$mobile]);
        if($info === false){
            $this->fail('当前号码已存在');
        }
        $data = [
            'name'=>$name,
            'mobile'=>$mobile,
            'password'=>Hash::make('123456'),
            'gid'=>4,
        ];
        return $managerModel->addReturnId($data);
    }
}