<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2020/6/24
 * Time: 15:30
 */

namespace app\products\controller;
use app\web\controller\BaseController;

use think\Db;
use think\Request;

class Role extends BaseController
{

    public function user_management(){

        return $this->fetch();
    }
    //获取用户列表
    public function getUsers(Request $request){
        $data = $request->param();
        $where=[];
        if(!empty($data['id']) && isset($data['id'])){
            $where['id']=$data['id'];
        }
        //$org_id = session('organization.org_id');
        $list= Db::table('sos_user_role')->where($where)->select()->toArray();

        $type=['','试用期','正式员工','已离职'];
        foreach($list  as $key=>$val ){
            $list[$key]['sex']=$val['sex'] == 1? '男' : '女';
            //所属机构
            if($val['mechanism'] != 0){
                $mechanism= Db::table('sos_user_mechanism')->field('mechanismName')->where('id',$val['mechanism'])->find();
            }
            $list[$key]['mechanism']=$val['mechanism'] == 0? '男' : $mechanism['mechanismName'];
            //所属部门
            if($val['department'] != 0){
                $department= Db::table('sos_user_department')->field('departmentName')->where('id',$val['department'])->find();
            }
            $list[$key]['department']=$val['department'] == 0? '男' : $department['departmentName'];
            $list[$key]['status']=$type[$val['status']];

            $list[$key]['entryTime']=date('Y-m-d H:i:s',$val['entryTime']);
            $list[$key]['quitTime']=$val['quitTime'] == ''? '' : date('Y-m-d H:i:s',$val['entryTime']);

        }
        $result["total"] =count($list);
        $result['rows']=$list;
        echo json_encode($result);
    }


    /**
     * 获取机构列表
     */

    public function  getMechanism(){

        $list= Db::table('sos_user_mechanism')->select()->toArray();
        echo json_encode($list);
    }

    /**
     * 获取机构下部门列表
     */

    public function  getdepartment(Request $request){

        $data = $request->get();
        $list= Db::table('sos_user_department')->where('mechanismId',$data['id'])->select()->toArray();
        echo json_encode($list);
    }

    /**
     * @param Request $request
     * @return array|mixed|null
     * 添加用户
     */

    public function user_add(Request $request)
    {
        $data = $request->param();

        $data['password']=md5(md5($data['password']));
        if(isset($data['sex']) && $data['sex']=='on'){
            $data['sex']=1;
        }else{
            $data['sex']=2;
        }
        $data['entryTime']=$data['entryTime'] == ''? '' :strtotime($data['entryTime']);
        $data['quitTime']=$data['quitTime'] == ''? '' :strtotime($data['quitTime']);
        if(isset($data['user_id']) && !empty($data['user_id'])){
            $data['updateTime']=time();
            $where['id']=$data['user_id'];
            unset($data['user_id']);
            $res = Db::table('sos_user_role')->where($where)->update($data);
        }else{
            unset($data['user_id']);
            $data['createTime']=time();

            $res = Db::table('sos_user_role')->insert($data);
        }
        $json=json_decode($res,true);
        if(is_numeric($json)){
            $data=[
                'code'=>200,
                'msg'=>'成功'
            ];
        }else{
            $data=[
                'code'=>100,
                'msg'=>'失败'
            ];
        }
        return $data;
    }

    /**
     * @param Request $request
     * @return \think\response\Json
     * 自动生成员工编号
     */

    public function generateNumber(Request $request){
        $data = $request->get();
        $rule_name= Db::table('sos_user_rule')->where('mechanismId',$data['id'])->find();
        $rule_num= Db::table('sos_user_role')->find();

        $rule_number=$rule_name['rule'].$rule_num['personalNumber'];

        return $rule_number;
        echo json_encode($rule_number);
    }









    //修改用户
    public function edit(Request $request){
        $data = $request->post();
        if($data['id']){
            $data['uid'] = $data['id'];
        }

        $validate = new UserValidate();
        $err_msg = $validate->scene("update")->check($data);

        if ($err_msg) {
            return json($this->renderError($validate->getError()));
        }

        $res = json_decode(curlPost($this->getUrl('edit'), $data),true);

        if ($res['code'] == self::SUCCESS_CODE) {
            return json($this->renderSuccess());
        }

        return json($res);

    }
    //删除用户
    public function del(Request $request){
        $data = $request->get();

        if (empty($data['id']) && $data['id'] !== 0) {
            return json($this->renderError("删除失败!"));
        }
        $res = json_decode(curlPost($this->getUrl("del"),['uid'=>$data['id']]),true);

        if ($res['code'] != self::SUCCESS_CODE) {
            return json($res);
        }

        return json($this->renderSuccess());
    }
}