InformationController.php 13.9 KB
<?php
// +----------------------------------------------------------------------
// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2017 http://www.thinkcmf.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: Dean <zxxjjforever@163.com>
// +----------------------------------------------------------------------
namespace api\home\controller;

use app\portal\model\TrainModel;
use think\Db;
use think\Validate;
use cmf\controller\RestBaseController;
use app\portal\model\CheckModel;
use app\portal\model\ExerciseModel;

/**
 * @title 消息审批
 */
class InformationController extends RestBaseController
{

    /**
     * @title 项目组名称
     * @description 接口说明
     * @author 开发者
     * @url /api/home/information/getProjectGroup
     * @method GET
     *
     * @header name:token require:1 default: desc:header
     * @param name:company_id type:inter require:0 default: other desc:公司id(如果是总领导有此字段)
     *
     * @return data:列表@
     * @data id:项目id project_name:项目名称
     */
    public function getProjectGroup(){
        if($this->request->isGet()){
            $company_id = $this->request->get('company_id');

            $common = new CommonController();
            $user = $common->getUserIdentity();
            //根据企业id查询项目组名称
            $res = [];
            if($user['identity'] == config('site.a_leader')){
                //项目组
                $res = $common->getProjectGroup($user['company_id']);

            }else if($user['identity'] == config('site.a_leaders')){
                $res = $common->getProjectGroup($company_id);

            }else if($user['identity'] == config('site.b_leader')){
                $res = $common->getProjectGroup($user['company_id'],1);
            }
            $this->success('成功',$res);
        }else{
            $this->error('请求方式错误!');
        }
    }

    /**
     * @title 甲方领导消息审批列表(月检)
     * @description 接口说明
     * @author 开发者
     * @url /api/home/information/informationAList
     * @method GET
     *
     * @header name:token require:1 default: desc:header
     * @param name:page type:inter require:1 default: other desc:分页页码
     * @param name:company_id type:inter require:0 default: other desc:公司id(如果是总领导有此字段)
     * @param name:project_id type:inter require:0 default: other desc:项目id(检索)
     * @param name:start_time type:inter require:0 default: other desc:开始日期(检索开始日期)
     * @param name:end_time type:inter require:0 default: other desc:开始日期(检索结束日期)
     *
     * @return data:列表@
     * @data id:列表id project_id:项目id project_name:项目名称 ins_m_time:月检时间 user_group:项目组
     * @return page:当前页数
     * @return total_page:总页数
     */
    public function informationAList(){
        if($this->request->isGet()){
            $data = $this->request->get();
            $company_id = $this->request->get('company_id');

            $rule = config('site.pages');
            $validate = new Validate($rule['rule'],$rule['msg']);
            if (!$validate->check($data)) {
                $this->error($validate->getError());
            }
            $common = new CommonController();
            $user = $common->getUserIdentity();
            //如果不是甲方领导,则没有权限操作
            if($user['identity'] != config('site.a_leader') && $user['identity'] != config('site.a_leaders')){
                $this->error('无权操作');
            }
            //月检
            if($user['identity'] == config('site.a_leaders')){
                //总领导
                $where = ['pid'=>$company_id];
            }else{
                //领导
                $where = ['pid'=>$user['company_id']];
            }
            //查看甲方领导的对应的乙方
            $b_company_id = $common->getCompany($where,'id');
            $res['data'] = $common->getCheckByCompanyBId($b_company_id['id'],$data);
            $res['total_page'] = $common->getCheckByCompanyBPage($b_company_id['id'],$data);
            //查找乙方项目组下的乙方员工
            foreach($res['data'] as &$value){
                $value['user_group'] = $common->getUserByProjectId($value['project_id'],'id,b_sid');
            }
            $res['page'] = intval($data['page']);
            $this->success('成功',$res);
        }else{
            $this->error('请求方式错误!');
        }
    }

    /**
     * @title 乙方领导消息审批列表(培训/演习)
     * @description 接口说明
     * @author 开发者
     * @url /api/home/information/informationBList
     * @method GET
     *
     * @header name:token require:1 default: desc:header
     * @param name:page type:inter require:1 default: other desc:分页页码
     * @param name:type type:inter require:1 default: other desc:工作类型(1:培训,2:演习)
     * @param name:project_id type:inter require:0 default: other desc:项目id(检索)
     * @param name:start_time type:inter require:0 default: other desc:开始日期(检索开始日期)
     * @param name:end_time type:inter require:0 default: other desc:开始日期(检索结束日期)
     *
     * @return data:列表@
     * @data id:列表id project_id:项目id project_name:项目名称 train_time:培训时间 user_group:项目组
     * @return page:当前页数
     * @return total_page:总页数
     */
    public function informationBList(){
        if($this->request->isGet()){
            $data = $this->request->get();
            $rule = config('site.pages_type');
            //工作类型(培训演习)
            $validate = new Validate($rule['rule'],$rule['msg']);
            if (!$validate->check($data)) {
                $this->error($validate->getError());
            }
            $common = new CommonController();
            $user = $common->getUserIdentity();
            //如果不是乙方领导,则没有权限操作
            if($user['identity'] != config('site.b_leader')){
                $this->error('无权操作');
            }
            if($data['type'] == 1){
                //培训
                $res['data'] = $common->getTrainByCompanyBId($user['company_id'],0,$data);
                $res['total_page'] = $common->getTrainByCompanyBPage($user['company_id'],0,$data);
            }else{
                //演习
                $res['data'] = $common->getExerciseByCompanyBId($user['company_id'],0,$data);
                $res['total_page'] = $common->getExerciseByCompanyBPage($user['company_id'],0,$data);
            }

            //查找乙方项目组下的乙方员工
            foreach($res['data'] as &$value){
                $value['user_group'] = $common->getUserByProjectId($value['project_id'],'id,b_sid');
            }
            //工作类型
            $res['page'] = intval($data['page']);
            $this->success('成功',$res);
        }else{
            $this->error('请求方式错误!');
        }
    }

    /**
     * @title 甲方领导确认审批(月检)
     * @description 接口说明
     * @author 开发者
     * @url /api/home/information/confirmA
     * @method GET
     *
     * @header name:token require:1 default: desc:header
     * @param name:id type:inter require:1 default: other desc:列表id
     */
    public function confirmA(){
        if($this->request->isGet()){
            $id = $this->request->get('id');
            $rule = config('site.data');
            $validate = new Validate($rule['rule'],$rule['msg']);
            if (!$validate->check(['id'=>$id])) {
                $this->error($validate->getError());
            }
            $common = new CommonController();
            $user = $common->getIdentity();
            //如果不是甲方领导,则没有权限操作
            if($user['identity'] != config('site.a_leader') && $user['identity'] != config('site.a_leaders')){
                $this->error('无权操作');
            }
            //月检
            $checkModel = new CheckModel();
            $res = $checkModel->where(['id'=>$id,'status'=>0])->update(['a_leader'=>$this->userId,'status'=>2,'l_confirm_time'=>time()]);
            if($res){
                $this->success('成功');
            }else{
                $this->error('失败');
            }
        }else{
            $this->error('请求方式错误!');
        }
    }

    /**
     * @title 乙方领导确认审批(培训/演习)
     * @description 接口说明
     * @author 开发者
     * @url /api/home/information/confirmB
     * @method GET
     *
     * @header name:token require:1 default: desc:header
     * @param name:id type:inter require:1 default: other desc:列表id
     * @param name:type type:inter require:1 default: other desc:工作类型(1:培训,2:演习)
     */
    public function confirmB(){
        if($this->request->isGet()){
            $id = $this->request->get('id');
            $type = $this->request->get('type');
            $rule = config('site.data_type');
            $validate = new Validate($rule['rule'],$rule['msg']);
            if (!$validate->check(['id'=>$id,'type'=>$type])) {
                $this->error($validate->getError());
            }
            $common = new CommonController();
            $user = $common->getIdentity();
            //如果不是乙方领导,则没有权限操作
            if($user['identity'] != config('site.b_leader')){
                $this->error('无权操作');
            }

            $data = [
                'b_leader'=>$this->userId,
                'b_confirm_time'=>time(),
                'status'=>2
            ];
            if($type == 1){
                //培训
                $trainModel = new TrainModel();
                $res = $trainModel->where(['id'=>$id,'status'=>0])->update($data);
            }else{
                //演习
                $exerciseModel = new ExerciseModel();
                $res = $exerciseModel->where(['id'=>$id,'status'=>0])->update($data);
            }

            if($res){
                $this->success('成功');
            }else{
                $this->error('失败');
            }
        }else{
            $this->error('请求方式错误!');
        }
    }

    /**
     * @title 甲方领导驳回(月检)
     * @description 接口说明
     * @author 开发者
     * @url /api/home/information/rejectA
     * @method GET
     *
     * @header name:token require:1 default: desc:header
     * @param name:id type:inter require:1 default: other desc:列表id
     */
    public function rejectA(){
        if($this->request->isGet()){
            $id = $this->request->get('id');
            $rule = config('site.data');
            $validate = new Validate($rule['rule'],$rule['msg']);
            if (!$validate->check(['id'=>$id])) {
                $this->error($validate->getError());
            }
            $common = new CommonController();
            $user = $common->getIdentity();
            //如果不是甲方领导,则没有权限操作
            if($user['identity'] != config('site.a_leader') && $user['identity'] != config('site.a_leaders')){
                $this->error('无权操作');
            }
            //月检
            $checkModel = new CheckModel();
            $data = [
                'a_leader'=>$this->userId,
                'status'=>1,
                'reject_time'=>time()
            ];
            $res = $checkModel->where(['id'=>$id,'status'=>0])->update($data);
            if($res){
                $this->success('成功');
            }else{
                $this->error('失败');
            }
        }else{
            $this->error('请求方式错误!');
        }
    }

    /**
     * @title 乙方领导驳回审批(培训/演习)
     * @description 接口说明
     * @author 开发者
     * @url /api/home/information/rejectB
     * @method GET
     *
     * @header name:token require:1 default: desc:header
     * @param name:id type:inter require:1 default: other desc:列表id
     * @param name:advice_time type:inter require:1 default: other desc:建议时间
     * @param name:type type:inter require:1 default: other desc:工作类型(1:培训,2:演习)
     */
    public function rejectB(){
        if($this->request->isGet()){
            $id = $this->request->get('id');
            $advice_time = $this->request->get('advice_time');
            $type = $this->request->get('type');
            $rule = config('site.train_advice_time');
            $validate = new Validate($rule['rule'],$rule['msg']);
            if (!$validate->check(['id'=>$id,'advice_time'=>$advice_time,'type'=>$type])) {
                $this->error($validate->getError());
            }
            $common = new CommonController();
            $user = $common->getIdentity();
            //如果不是乙方领导,则没有权限操作
            if($user['identity'] != config('site.b_leader')){
                $this->error('无权操作');
            }
            $data = [
                'b_leader'=>$this->userId,
                'b_reject_time'=>time(),
                'advice_time'=>$advice_time,
                'status'=>1
            ];
            if($type == 1){
                //培训
                $trainModel = new TrainModel();
                $res = $trainModel->where(['id'=>$id,'status'=>0])->update($data);
            }else{
                //演习
                $exerciseModel = new ExerciseModel();
                $res = $exerciseModel->where(['id'=>$id,'status'=>0])->update($data);
            }

            if($res){
                $this->success('成功');
            }else{
                $this->error('失败');
            }
        }else{
            $this->error('请求方式错误!');
        }
    }

}