| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321 | 
							- <?php
 
- namespace app\common\model;
 
- use app\common\util\AppMsg;
 
- use think\Db;
 
- class MeetingApply extends Base
 
- {
 
-     public function agree(){
 
-         $data = request()->post();
 
-         $data['apply_time'] = date('Y-m-d H:i:s');
 
-         $data['status'] = 1;
 
-         $id = $data['id'];
 
- //        $userIds = $data['user_id'];
 
-         unset($data['id']);
 
- //        unset($data['user_id']);
 
- //        if(!$data['apply_remark']){
 
- //            $this->error = '审批意见不能为空';
 
- //            return  false;
 
- //        }
 
-         $ret = $this->allowField(true)->save($data,['id'=>$id]);
 
-         $apply = Db::name('meeting_apply')->where('id',$id)->find();
 
-         if($apply['user_id']){
 
-             send_jpush([$apply['user_id']],AppMsg::PUSH_CUSTOM,'您预约的会议室审批已通过');
 
-         }
 
-         $room = Db::name('meeting_room')->where('id',$apply['meeting_room_id'])->find();
 
-         if($room['waiter'] > 0 && $room['is_notice_waiter'] == 1){
 
-             $time = $apply['start_time'].'-'.$apply['end_time'];
 
-             $msg = '请在'.$time.'进行会议服务';
 
-             send_jpush([$room['waiter']],AppMsg::PUSH_CUSTOM,$msg);
 
-         }
 
- //        $ids = isset($userIds) && !empty($userIds)?explode(',',$userIds):[];
 
- //        if(count($ids)>0){
 
- //            foreach ($ids as $k=>$v){
 
- //                $mData = [
 
- //                    'user_id'=>$v,
 
- //                    'meetapply_id'=>$id,
 
- //                ];
 
- //                 $add = Db::name('meet_service')->insert($mData);
 
- //                 if(!$add){
 
- //                     $this->error = '操作失败';
 
- //                     return false;
 
- //                 }
 
- //            }
 
- //        }
 
-         if(!$ret){
 
-             $this->error = '操作失败';
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     public function refuse(){
 
-         $data = request()->post();
 
-         $data['apply_time'] = date('Y-m-d H:i:s');
 
-         $data['status'] = 2;
 
-         $id = $data['id'];
 
-         unset($data['id']);
 
-         if(!$data['apply_remark']){
 
-             $this->error = '审批意见不能为空';
 
-             return  false;
 
-         }
 
-         $ret = $this->allowField(true)->save($data,['id'=>$id]);
 
-         if(!$ret){
 
-             $this->error = '操作失败';
 
-             return false;
 
-         }
 
-         $userId = Db::name('meeting_apply')->where('id',$id)->value('user_id');
 
-         if($userId){
 
-             send_jpush([$userId],AppMsg::PUSH_CUSTOM,'您预约的会议室审批未通过');
 
-         }
 
-         return true;
 
-     }
 
-     //app接口
 
-     public function lists($page,$size,$userId,$orgId){
 
-         $ret = db('meeting_apply')
 
-             ->alias('ma')
 
-             ->field('ma.id,ma.start_time,ma.end_time,ma.status,u.real_name,mr.title,mr.waiter')
 
-             ->leftJoin('meeting_room mr','mr.id=ma.meeting_room_id')
 
-             ->leftJoin('user u','u.id=ma.user_id')
 
-             ->where([
 
-                 'ma.status'=>0,
 
-                 'ma.del'=>0,
 
-                 'ma.org_id'=>$orgId,
 
-                 'ma.approver'=>$userId,
 
-             ])
 
-             ->order('ma.id desc')
 
-             ->page($page,$size)
 
-             ->select();
 
-         return $ret?$ret:[];
 
-     }
 
-     public function blist($page,$size,$title,$userId,$orgId){
 
-         if($title){
 
-             $map[] = ['u.real_name|ma.theme','like','%'.$title.'%'];
 
-         }
 
-         $map[] = ['ma.del','=',0];
 
-         $map[] = ['ma.org_id','=',$orgId];
 
-         $map[] = ['ma.approver','=',$userId];
 
-         $ret = db('meeting_apply')
 
-             ->alias('ma')
 
-             ->field('ma.id,ma.start_time,ma.end_time,ma.status,u.real_name,mr.title,mr.waiter')
 
-             ->join('meeting_room mr','mr.id=ma.meeting_room_id')
 
-             ->join('user u','u.id=ma.user_id')
 
-             ->where($map)
 
-             ->order('ma.id desc')
 
-             ->page($page,$size)
 
-             ->select();
 
-         return $ret?$ret:[];
 
-     }
 
-     public function searchs($page,$size,$title,$userId,$orgId){
 
-         $ret = db('meeting_apply')
 
-             ->alias('ma')
 
-             ->field('ma.id,ma.start_time,ma.end_time,ma.status,u.real_name,mr.title,mr.waiter')
 
-             ->join('meeting_room mr','mr.id=ma.meeting_room_id')
 
-             ->join('user u','u.id=ma.user_id')
 
-             ->where([
 
-                 'ma.del'=>0,
 
-                 'ma.org_id'=>$orgId,
 
-                 'ma.approver'=>$userId,
 
-             ])
 
-             ->whereIn('ma.status',[1,2,3])
 
-             ->where(function ($query) use($title){
 
-                 $query->where('u.real_name','like','%.'.$title.'%')
 
-                     ->whereOr('ma.theme','like','%'.$title.'%');
 
-             })
 
-             ->order('ma.id desc')
 
-             ->page($page,$size)
 
-             ->select();
 
-         return $ret?$ret:[];
 
-     }
 
-     public function details($id){
 
-         $info = db('meeting_apply')->where('id',$id)->where('del',0)->find();
 
-         if($info){
 
-             //发起人
 
-             $info['user_name'] = db('user')->where('id',$info['user_id'])->value('real_name');
 
-             //会议室名称
 
-             $info['meeting_room_title'] = db('meeting_room')->where('id',$info['meeting_room_id'])->value('title');
 
-             //参会人员
 
-             $userIds = $info['user_ids'] ? explode(',',$info['user_ids']):[];
 
-             $info['meeting_user'] = db('user')->field('real_name,head_image')->whereIn('id',$userIds)->select();
 
-             //设备
 
-             $info['device'] = db('meeting_device')->field('title')->whereIn('id',$info['meeting_devices'])->select();
 
-             //审批人
 
-             $applyUser = db('user')->where('id',$info['approver'])->find();
 
-             $info['approver_user'] = $applyUser?$applyUser['real_name']:'';
 
-             $info['approver_head_img'] = $applyUser?$applyUser['head_image']:'';
 
-             //会议室服务人员
 
-             $info['waiter'] = db('meeting_room')->where('id',$info['meeting_room_id'])->value('waiter');
 
-             //使用部门
 
-             $info['dep_name'] = Db::name('dep')->where('id',$info['dep_id'])->value('title');
 
-         }
 
-         return $info?$info:[];
 
-     }
 
-     public function confirms($id,$content,$serviceId){
 
-         $info = db('meeting_apply')->where('del',0)->where('id',$id)->find();
 
-         if(!$info){
 
-             $this->error = '记录不存在';
 
-             return false;
 
-         }
 
-         if($info['status'] != 0){
 
-             $this->error = '已处理,无法审核';
 
-             return false;
 
-         }
 
-         $data=[
 
-             'status'=>1,
 
-             'apply_remark'=>$content,
 
-             'apply_time'=>date('Y-m-d H:i:s')
 
-         ];
 
-         $save = db('meeting_apply')->where('id',$id)->update($data);
 
-         if($save > 0){
 
- //            send_push_meeting(11,[$info['USER_ID']],['id' => $info['ID']]);
 
-             if(!empty($serviceId)){
 
-                 $sid = explode(',',$serviceId);
 
-                 foreach ($sid as $v){
 
-                    db('meet_service')->insert(['meetapply_id'=>$id,'user_id'=>$v]);
 
-                 }
 
- //                send_push_meeting(15,$sid,['id' => $info['ID']]);
 
-             }
 
-         }else{
 
-             $this->error = '操作失败';
 
-             return false;
 
-         }
 
-         return $save;
 
-     }
 
-     public function rejects($id,$content){
 
-         $info = db('meeting_apply')->where('del',0)->where('id',$id)->find();
 
-         if(!$info){
 
-             $this->error = '记录不存在';
 
-             return false;
 
-         }
 
-         if($info['status'] != 0){
 
-             $this->error = '已处理,无法审核';
 
-             return false;
 
-         }
 
-         $data=[
 
-             'status'=>2,
 
-             'apply_remark'=>$content,
 
-             'apply_time'=>date('Y-m-d H:i:s')
 
-         ];
 
-         $save = db('meeting_apply')->where('id',$id)->update($data);
 
-         if($save){
 
- //            send_push_meeting(12,[$info['USER_ID']],['id' => $info['ID']]);
 
-         }else{
 
-             $this->error = '操作失败';
 
-             return false;
 
-         }
 
-         return $save;
 
-     }
 
-     public function myReserves($page,$size,$userId,$orgId){
 
-         $ret = db('meeting_apply')
 
-             ->alias('ma')
 
-             ->field('ma.id,ma.start_time,ma.end_time,ma.status,mr.title,mr.address')
 
-             ->join('meeting_room mr','mr.id=ma.meeting_room_id')
 
-             ->where([
 
-                 'ma.del'=>0,
 
-                 'ma.org_id'=>$orgId,
 
-                 'ma.USER_ID'=>$userId,
 
-             ])
 
-             ->order('ma.id desc')
 
-             ->page($page,$size)
 
-             ->select();
 
-         foreach ($ret as $k=>$v){
 
-             $newstarttime=date('Y-m-d H:i',strtotime($v['start_time']));
 
-             $newendtime=date('H:i',strtotime($v['end_time']));
 
-             $ret[$k]['meeting_time']=$newstarttime.'~'.$newendtime;
 
-         }
 
-         return $ret?$ret:[];
 
-     }
 
-     public function cancelReserves($id){
 
-         $data=[
 
-             'cancel_time'=>date('Y-m-d H:i:s'),
 
-             'status'=>3
 
-         ];
 
-         $ret = db('meeting_apply')->where('id',$id)->update($data);
 
-         return $ret;
 
-     }
 
-     public function reserveDetails($id){
 
-         $info = db('meeting_apply')
 
-             ->field('id,meeting_room_id,start_time,end_time,status,nums,user_ids,meeting_devices,banner,theme,approver,dep_id')
 
-             ->where('id',$id)
 
-             ->where('del',0)
 
-             ->find();
 
-         if($info){
 
-             //会议室名称/人数/地址/设备
 
-             $meeting_room = db('meeting_room')->where('id',$info['meeting_room_id'])->find();
 
-             $info['meeting_room_title']=$meeting_room?$meeting_room['title']:'';
 
-             $info['meeting_room_content']=$meeting_room?$meeting_room['content']:'';
 
-             $info['meeting_room_limit']=$meeting_room?$meeting_room['limit']:'';
 
-             $info['meeting_room_address']=$meeting_room?$meeting_room['address']:'';
 
-             //会议室设备
 
-             $meeting_room_device = db('meeting_device')->field('title')->whereIn('id',$meeting_room['meeting_device_ids'])->select();
 
-             if($meeting_room_device){
 
-                 foreach ($meeting_room_device as $k=>$v){
 
-                     $roomdevice[$k]=$v['title'];
 
-                 }
 
-                 $info['meeting_room_device']=$roomdevice?implode('/',$roomdevice):'';
 
-             }else{
 
-                 $info['meeting_room_device']='';
 
-             }
 
-             //参会人员
 
-             $info['meeting_user'] = db('user')->field('real_name,head_image')->whereIn('id',$info['user_ids'])->select();
 
-             //审批单设备
 
-             $device= db('meeting_device')->field('title')->whereIn('id',$info['meeting_devices'])->select();
 
-             if($device){
 
-                 foreach ($device as $k=>$v){
 
-                     $applydevice[$k]=$v['title'];
 
-                 }
 
-                 $info['meeting_apply_device']=$applydevice?implode('、',$applydevice):'';
 
-             }else{
 
-                 $info['meeting_apply_device']='';
 
-             }
 
-             //会议室名称
 
-             $info['meeting_room_title'] = db('meeting_room')->where('id',$info['meeting_room_id'])->value('title');
 
-             //审批人
 
-             $applyUser = db('user')->field('real_name,head_image')->where('id',$info['approver'])->find();
 
-             $info['approver_user'] = $applyUser?$applyUser['real_name']:'';
 
-             $info['approver_head_img'] = $applyUser?$applyUser['head_image']:'';
 
-             $info['dep_name'] = Db::name('dep')->where('id',$info['dep_id'])->value('title');
 
-             unset($info['user_ids'],$info['approver'],$info['meeting_devices'],$info['meeting_room_id']);
 
-         }
 
-         return $info?$info:[];
 
-     }
 
- }
 
 
  |