request->get('page'); $limit = $this->request->get('limit'); $area_name = $this->request->get('area_name'); $area_id = $this->request->get('area_id'); $num = $this->request->get('num'); $money = $this->request->get('money'); $mp = []; if (isset($area_id) && !empty($area_id)) $mp['c_id'] = $area_id; if (isset($area_name) && !empty($area_name)) { $name = Park::where('name', 'like', '%' . $area_name . '%')->column('id'); $idStr = implode(',', $name); if (!empty($idStr)) { $mp['p_id'] = ['in', $idStr]; } else { $mp['p_id'] = 0; } }; if (isset($num) && !empty($num)) { if ($num == 2) { $mp['yizi_count'] = ['between', '0,10']; } else if ($num == 3) { $mp['yizi_count'] = ['between', '10,30']; } else if ($num == 4) { $mp['yizi_count'] = ['between', '30,50']; } else if ($num == 5) { $mp['yizi_count'] = ['between', '50,100']; } else if ($num == 6) { $mp['yizi_count'] = ['between', '100,200']; } else if ($num == 7) { $mp['yizi_count'] = ['between', '200,300']; } else if ($num == 8) { $mp['yizi_count'] = ['>', '300']; } } if (isset($money) && !empty($money)) { if ($money == 2) { $mp['money_num'] = ['between', '0,100']; } else if ($money == 3) { $mp['money_num'] = ['between', '100,200']; } else if ($num == 4) { $mp['money_num'] = ['between', '200,500']; } else if ($money == 5) { $mp['money_num'] = ['between', '500,1000']; } else if ($money == 6) { $mp['money_num'] = ['>', '1000']; } } if (empty($area_name)) { $user = $this->auth->getUser(); if ($user && $user['p_id'] != 0) $mp['p_id'] = $user['p_id']; }; $mp['switch'] = 1; if (!$page) { $pages = '0,10'; } else { $page = $page - 1; if ($page < 0) $page = 0; $pages = $page . ',' . $limit; } $meetingModel = new MeetingModel(); $field = 'id,image,title,mongey,mianji,address,yizi'; $data = $meetingModel->where($mp)->limit($pages)->field($field)->order('sort desc')->select(); if ($data) { return $this->success('', $data); } else { return $this->success('暂无数据'); } } /** * 会议详情 * @param string $id id * */ public function listInfo() { $id = $this->request->get('id'); if (!isset($id) || empty($id)) return $this->error('缺少参数'); $meetingModel = new MeetingModel(); $data = $meetingModel->where('switch', 1) ->where('id', $id) ->order('sort desc') ->find(); $count = count($data['gongzuori_shijina_ids']); $data['gongzui_start_time'] = $data['gongzuori_shijina_ids'][0]; $data['gongzui_start_end'] = $data['gongzuori_shijina_ids'][$count - 1]; $count = count($data['xiuxiri_shijian_ids']); $data['xiuxi_start_time'] = $data['xiuxiri_shijian_ids'][0]; $data['xiuxi_start_end'] = $data['xiuxiri_shijian_ids'][$count - 1]; $user = $this->auth->getUser(); if ($user) $data['miangei_time'] = $user['edu']; if ($data) { return $this->success('', $data); } else { return $this->success('暂无数据'); } } /** * 会议室选择预约时间 * @param string $m_id 会议室id * @param string $make_day 所选日期2021-03-11 */ public function chooseTime() { $data = $this->request->get(); if (!isset($data['m_id']) || empty($data['m_id'])) return $this->success('参数错误101'); if (!isset($data['make_day']) || empty($data['make_day'])) return $this->success('参数错误102'); $meetingModel = new MeetingModel(); $meetingOrder = new MeetingOrder(); $issetTime = $meetingOrder->where('m_id', $data['m_id'])->where('make_day', $data['make_day'])->column('make_time'); if ($issetTime) { $arr = array(); foreach ($issetTime as $v) { $arr = array_merge($arr,explode(',',$v)); } } $arr = array_unique($arr); $meetingData = $meetingModel->where('id', $data['m_id'])->field('id,title,image,address,xiuxiri,gongziri,gongzuori_shijina_ids,xiuxiri_shijian_ids')->find(); $res = []; if (empty($arr)) { $week = date('w', strtotime($data['make_day'])); if ($week == 6 || $week == 0) { $time = explode(',',$meetingData['xiuxiri_shijian_ids']); foreach ($time as $k=>$v) { $time[$k]['value'] = $v; $time[$k]['status'] = 1; } } else { $time = explode(',',$meetingData['gongzuori_shijina_ids']); foreach ($time as $k=>$v) { $time[$k]['value'] = $v; $time[$k]['status'] = 1; } } } else { $week = date('w', strtotime($data['make_day'])); if ($week == 6 || $week == 0) { $time = explode(',',$meetingData['xiuxiri_shijian_ids']); foreach ($time as $k=>$v) { foreach ($arr as $m=>$n) { if ($v==$n) { $res[$k]['value'] = $v; $res[$k]['status'] = 0; break; } else { $res[$k]['value'] = $v; $res[$k]['status'] = 1; } } } } else { $time = $meetingData['gongzuori_shijina_ids']; foreach ($time as $k=>$v) { foreach ($arr as $m=>$n) { if ($v==$n) { $res[$k]['value'] = $v; $res[$k]['status'] = 0; break; } else { $res[$k]['value'] = $v; $res[$k]['status'] = 1; } } } } } return $this->success('',$res); } /** * 预约订单信息 * @ApiMethod (POST) * @param string $m_id 会议室id * @param string $make_day 所选日期2021-03-11 * @param string $make_time 所选时间段多个用,号分割 */ public function order() { $data = $this->request->post(); if (!isset($data['m_id']) || empty($data['m_id'])) return $this->success('参数错误101'); if (!isset($data['make_day']) || empty($data['make_day'])) return $this->success('参数错误102'); if (!isset($data['make_time']) || empty($data['make_time'])) return $this->success('参数错误103'); $meetingModel = new MeetingModel(); $data['meeting'] = $meetingModel->where('id', $data['m_id'])->field('id,title,image,address,xiuxiri,gongziri')->find(); $week = date('w', strtotime($data['make_day'])); $countTime = count(explode(',', $data['make_time'])); $data['lang_time'] = (60 * $countTime) . '分钟'; if ($week == 6 || $week == 0) { $data['money'] = $data['meeting']['xiuxiri'] * $countTime; } else { $data['money'] = $data['meeting']['gongziri'] * $countTime; } $user = $this->auth->getUser(); $data['qiye_name'] = $user['company']; $data['is_qiye'] = 0; if ($user['group_id'] == 2) { $data['is_qiye'] = 1; } if ($user['edu'] >= 60 * $countTime) { $data['money'] = "免费"; $time = ($user['edu'] - (60 * $countTime)) / 60; $data['notice'] = "(没有超出免费使用时间,剩余" . $time . "小时)"; } else { if ($week == 6 || $week == 0) { $data['money'] = $data['meeting']['xiuxiri'] * (((60 * $countTime) - $user['edu']) / 60); $data['notice'] = "(已超出免费时长本次收费)"; } else { $data['money'] = $data['meeting']['gongziri'] * (((60 * $countTime) - $user['edu']) / 60); $data['notice'] = "(已超出免费时长本次收费)"; } } return $this->success('', $data); } /** * 提交预约 * @ApiMethod (POST) * @param string $m_id 会议室id * @param string $make_day 所选日期2021-03-11 * @param string $make_time 所选时间段多个用,号分割 */ public function trueTime() { $data = $this->request->post(); if (!isset($data['m_id']) || empty($data['m_id'])) return $this->success('参数错误101'); if (!isset($data['make_day']) || empty($data['make_day'])) return $this->success('参数错误102'); if (!isset($data['make_time']) || empty($data['make_time'])) return $this->success('参数错误103'); $orderModel = new MeetingOrder(); $issetTime = $orderModel->where('m_id', $data['m_id'])->where('make_day', $data['make_day'])->column('make_time'); if ($issetTime) { $arr = array(); foreach ($issetTime as $v) { $arr = array_merge($arr,explode(',',$v)); } } $arr = array_unique($arr); $makeTimeArr = explode(',',$data['make_time']); $chongfuArr=array_intersect($arr,$makeTimeArr); if ($chongfuArr) return $this->error('刚刚有人预约了此时间段,请退出重新选择时间'); $meetingModel = new MeetingModel(); $data['meeting'] = $meetingModel->where('id', $data['m_id'])->field('id,title,image,address,xiuxiri,gongziri')->find(); $week = date('w', strtotime($data['make_day'])); $countTime = count(explode(',', $data['make_time'])); $data['lang_time'] = (60 * $countTime) . '分钟'; if ($week == 6 || $week == 0) { $data['money'] = $data['meeting']['xiuxiri'] * $countTime; } else { $data['money'] = $data['meeting']['gongziri'] * $countTime; } $user = $this->auth->getUser(); $data['qiye_name'] = $user['company']; $data['is_qiye'] = 0; if ($user['group_id'] == 2) { $data['is_qiye'] = 1; } if ($user['edu'] >= 60 * $countTime) { $data['money'] = "免费"; $time = ($user['edu'] - (60 * $countTime)) / 60; $data['notice'] = "(没有超出免费使用时间,剩余" . $time . "小时)"; } else { if ($week == 6 || $week == 0) { $data['money'] = $data['meeting']['xiuxiri'] * (((60 * $countTime) - $user['edu']) / 60); $data['notice'] = "(已超出免费时长本次收费)"; } else { $data['money'] = $data['meeting']['gongziri'] * (((60 * $countTime) - $user['edu']) / 60); $data['notice'] = "(已超出免费时长本次收费)"; } } $year = date('Y', time()); $month = date('m', time()); $day = date('d', time()); $save = [ 'number' => $year . $month . $day . 'N' . rand(0, 10000), 'm_id' => $data['m_id'], 'u_id' => $user['id'], 'make_day' => $data['make_day'], 'make_time' => $data['make_time'], 'money' => $data['money'], 'long_time' => $data['lang_time'], 'qi_name' => $user['company'], 'notice' => $data['notice'], 'mian_time' => $user['edu'], 'create_time' => date('Y-m-d H:i:s', time()) ]; $save = $orderModel->allowField(true)->save($save); if ($save) { $id = $orderModel->getLastInsID(); if ($user['group_id']==2) { if ($user['edu'] >= 60 * $countTime) { $data['money'] = "免费"; $time = ($user['edu'] - (60 * $countTime)) / 60; $userTime = $user['edu']-$countTime*60; Db::name('user')->where('id',$user['id'])->update(['edu' => $userTime]); } else { Db::name('user')->where('id',$user['id'])->update(['edu' => 0]); } } return $this->success('预约成功', ['id' => $id]); } else { return $this->error('预约失败'); } } /** * 订单详情 * @param string $id id * */ public function orderInfo() { $id = $this->request->get('id'); if (!isset($id) || empty($id)) return $this->error('参数错误'); $orderModel = new MeetingOrder(); $data = $orderModel->with(['meeting']) ->where('id',$id) ->find(); $user = $this->auth->getUser(); $data['company'] = $user['company']; if ($user['group_id'] == 2) $data['is_qiye'] = 1; return $this->success('',$data); } }