input('id/d',0), 'title' => input('title','','trim'), 'remark' => input('remark','','trim'), 'org_id' => input('orgId/d',0), 'enable' => input('enable/d',1), ]; $logdata = json_encode($data); $result = validate('MeetingRoom')->check($data,[],''); if(true !== $result){ HelpHander::error(validate('MeetingRoom')->getError()); } $id = $data['id']; unset($data['id']); if($id > 0){ $data['update_time'] = date('Y-m-d H:i:s'); $ret = $this->allowField(true)->save($data,['id'=>$id]); }else{ $data['create_time'] = date('Y-m-d H:i:s'); $ret = $this->allowField(true)->save($data); } if(!$ret){ HelpHander::error('操作失败'); } if($id > 0){ $content = '修改会议室'; }else{ $content = '添加会议室'; } model('ActionLog')->add(9,$content,0,$logdata); return true; } public function info($id){ $info = $this->where('id',$id)->find(); if(!$info){ HelpHander::error('数据不存在'); } return $info->toArray(); } public function lists($page,$size,$title,$orgId){ $map[] = ['del','=',0]; $map[] = ['org_id','=',$orgId]; if($title != ''){ $map[] = ['title','like','%'.$title.'%']; } $lists = $this ->where($map) ->page($page,$size) ->order('id desc') ->select(); $total = $this->where($map)->count(); $data = [ 'total' => $total, 'list' => $lists?$lists->toArray():[] ]; return $data; } public function all($orgId){ $map[] = ['del','=',0]; $map[] = ['org_id','=',$orgId]; $lists = $this ->where($map) ->field('id,title') ->order('id desc') ->select(); return $lists?$lists->toArray():[]; } public function del($id){ $ret = $this->where('id',$id)->setField('del',1); if(!$ret){ HelpHander::error('删除失败'); } $logdata = json_encode(['id' => $id]); model('ActionLog')->add(9,'删除会议室',0,$logdata); return true; } public function createSn($formJson){ $formJson = json_decode($formJson,true); foreach ($formJson as $k=>$v){ if($v['componentName'] == 'ddmeetingroomfield'){ foreach ($v['components'] as $key=>$val){ switch ($val['idx']){ case '0': $sn = isset($val['values'])?$val['values']:''; if(!$sn){ list($start,$end) = Time::month(); $startDate = date('Y-m-d H:i:s',$start); $endDate = date('Y-m-d H:i:s',$end); $sn = Db::name('meeting_room_book') ->where('sn','like',date('Ym').'%') ->where('create_time','>=',$startDate) ->where('create_time','<=',$endDate) ->order('id desc') ->value('sn'); if(is_numeric($sn)){ $sn = $sn?$sn+1:date('Ym').'0001'; }else{ $sn = date('Ym').'0001'; } if(mb_strlen($sn) == 12){ $sn = date('Ym').'0001'; } } $formJson[$k]['components'][$key]['values'] = "{$sn}"; break; } } break; } } return json_encode($formJson,JSON_UNESCAPED_UNICODE); } public function advancedStartMeetingRoom($id,$orgId,$userId,$formJson,$extra){ $formJson = json_decode($formJson,true); $data = [ 'org_id' => $orgId, 'user_id' => $userId, 'apply_id' => $id, 'dep_id' => $extra['depId'], 'create_time' => date('Y-m-d H:i:s'), 'status' => 0, ]; foreach ($formJson as $k=>$v){ if($v['componentName'] == 'ddmeetingroomfield'){ foreach ($v['components'] as $key=>$val){ $val['values2'] = isset($val['values2'])?$val['values2']:[]; $val['values'] = isset($val['values'])?$val['values']:''; switch ($val['idx']){ case '0': $data['sn'] = isset($val['values'])?$val['values']:''; break; case '1': $d = json_decode($val['values'],true); $data['meeting_room_id'] = $d['id']; break; case '2': $data['start_time'] = date('Y-m-d H:i:s',strtotime($val['values2'][0])); $data['end_time'] = date('Y-m-d H:i:s',strtotime($val['values2'][1])); break; case '3': $data['nums'] = $val['values']; break; case '4': $data['leader'] = $val['values']; break; case '5': $data['participants'] = $val['values']; break; case '6': $data['service'] = implode(',',$val['values2']); break; case '7': $data['banner'] = $val['values']; break; case '8': $data['remark'] = $val['values']; break; case '9': $data['projection'] = $val['values']; break; } } break; } } $ret = Db::name('meeting_room_book')->insert($data); return $ret?true:false; } public function advancedEndMeetingRoom($id,$orgId,$userId,$formJson){ $data = [ 'update_time' => date('Y-m-d H:i:s'), 'status' => 1 ]; $ret = Db::name('meeting_room_book')->where('apply_id',$id)->update($data); return $ret?true:false; } public function advancedDisagreeMeetingRoom($id){ $data = [ 'update_time' => date('Y-m-d H:i:s'), 'status' => 2 ]; $ret = Db::name('meeting_room_book')->where('apply_id',$id)->update($data); return $ret?true:false; } public function books($page,$size,$meetingRoomId,$orgId){ $map[] = ['status','=',1]; $map[] = ['org_id','=',$orgId]; if($meetingRoomId > 0){ $map[] = ['meeting_room_id','=',$meetingRoomId]; } $lists = Db::name('meeting_room_book') ->where($map) ->page($page,$size) ->order('id desc') ->select(); $lists = $lists?$lists:[]; foreach ($lists as $k=>$v){ $lists[$k]['userPhone'] = Db::name('user')->where('id',$v['user_id'])->value('phone'); $lists[$k]['userName'] = Db::name('user_info')->where('user_id',$v['user_id'])->value('name'); $lists[$k]['meetingRoom'] = Db::name('meeting_room')->where('id',$v['meeting_room_id'])->value('title'); $lists[$k]['depName'] = Db::name('dep')->where('id',$v['dep_id'])->value('name'); } $total = Db::name('meeting_room_book')->where($map)->count(); $data = [ 'total' => $total, 'list' => $lists?$lists:[] ]; return $data; } public function curbooks($meetingRoomId,$orgId){ $map[] = ['status','=',1]; $map[] = ['enable','=',1]; $map[] = ['org_id','=',$orgId]; if($meetingRoomId > 0){ $map[] = ['meeting_room_id','=',$meetingRoomId]; } $curDate = date('Y-m-d H:i:s'); // $map[] = ['start_time','<=',$curDate]; $map[] = ['end_time','>=',$curDate]; $lists = Db::name('meeting_room_book') ->where($map) ->field('id,start_time,end_time') ->order('start_time desc') ->select(); return $lists = $lists?$lists:[]; } public function cancel($id){ $info = Db::name('meeting_room_book')->where('id',$id)->find(); if(!$info||$info['status']!=1){ HelpHander::error('记录不存在'); } if($info['enable'] == 0){ HelpHander::error('已取消'); } $ret = Db::name('meeting_room_book')->where('id',$id)->setField('enable',0); if(!$ret){ HelpHander::error('取消失败'); } return true; } }