123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473 |
- <?php
- namespace app\api\controller;
- use app\common\controller\Api;
- use app\common\model\MeetingModel;
- use app\common\model\MeetingOrder;
- use app\common\model\OfficeModel;
- use app\common\model\Park;
- use think\Db;
- /**
- * 会议室管理
- */
- class Meeting extends Api
- {
- protected $noNeedLogin = ['lists', 'parkLists', 'listInfo', 'qustion', 'qustionInfo', 'buildInfo', 'protable', 'trueTime', 'chooseTime', 'GgInfo'];
- protected $noNeedRight = ['*'];
- /**
- * 会议室列表
- * @param string $page 页数
- * @param string $limit 条数
- * @param string $area_name 条数
- * @param string $area_id 地区id
- * @param string $num 座位
- * @param string $money 租金
- */
- public function lists()
- {
- $page = $this->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);
- }
- }
|