|
@@ -64,7 +64,7 @@ class openmeetClassAction extends openapiAction
|
|
for ($i = 0; $i < count($meetData); $i++) {
|
|
for ($i = 0; $i < count($meetData); $i++) {
|
|
$meeting = $meetData[$i];
|
|
$meeting = $meetData[$i];
|
|
$data['meeting_list'][$i] = [
|
|
$data['meeting_list'][$i] = [
|
|
- "meeting_name"=>$meeting['title'],
|
|
|
|
|
|
+ "meeting_name"=>str_replace("\n", "",$meeting['title']),
|
|
"meeting_time"=>date("H:i", strtotime($meeting['start_time'])).' ~ '.date("H:i", strtotime($meeting['end_time'])),
|
|
"meeting_time"=>date("H:i", strtotime($meeting['start_time'])).' ~ '.date("H:i", strtotime($meeting['end_time'])),
|
|
"meeting_moderator"=>$meeting['compere'],
|
|
"meeting_moderator"=>$meeting['compere'],
|
|
"meeting_state"=>$meeting['meet_state'] == 1 ? 1 : 0,
|
|
"meeting_state"=>$meeting['meet_state'] == 1 ? 1 : 0,
|
|
@@ -113,7 +113,7 @@ class openmeetClassAction extends openapiAction
|
|
|
|
|
|
$data['basic_information'] = [
|
|
$data['basic_information'] = [
|
|
"meeting_room_name" => $nowMeet['meeting_room'],
|
|
"meeting_room_name" => $nowMeet['meeting_room'],
|
|
- "meeting_name" => $nowMeet['title'],
|
|
|
|
|
|
+ "meeting_name" => str_replace("\n", "",$nowMeet['title']),
|
|
"meeting_time" => date("H:i", strtotime($nowMeet['start_time'])).' ~ '.date("H:i", strtotime($nowMeet['end_time'])),
|
|
"meeting_time" => date("H:i", strtotime($nowMeet['start_time'])).' ~ '.date("H:i", strtotime($nowMeet['end_time'])),
|
|
"meeting_moderator" => $nowMeet['compere'],
|
|
"meeting_moderator" => $nowMeet['compere'],
|
|
];
|
|
];
|
|
@@ -138,6 +138,7 @@ class openmeetClassAction extends openapiAction
|
|
$meetingTopic[$index]['state'] = $info['topic_state'];
|
|
$meetingTopic[$index]['state'] = $info['topic_state'];
|
|
$meetingTopic[$index]['tip'] = m("meeting")->ytarra[$info['topic_state']];
|
|
$meetingTopic[$index]['tip'] = m("meeting")->ytarra[$info['topic_state']];
|
|
$meetingTopic[$index]['text'] = $info['topic_title'];
|
|
$meetingTopic[$index]['text'] = $info['topic_title'];
|
|
|
|
+ $meetingTopic[$index]['personnel_list'] = str_replace("\n", "<br />", $info['topic_info']);
|
|
|
|
|
|
if ($info['topic_state'] == 2) {
|
|
if ($info['topic_state'] == 2) {
|
|
// 当前议题 + 参会人员
|
|
// 当前议题 + 参会人员
|
|
@@ -180,6 +181,242 @@ class openmeetClassAction extends openapiAction
|
|
$this->showreturn($data, "请求成功");
|
|
$this->showreturn($data, "请求成功");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // 手机端 - 会议室列表
|
|
|
|
+ public function mMeetRoomListAction() {
|
|
|
|
+
|
|
|
|
+ $rawArr = $this->getpostarr();
|
|
|
|
+ $dataDate = substr($rawArr['date'], 0, 10) ?? date("Y-m-d");
|
|
|
|
+
|
|
|
|
+ $dataArr = m("meeting_room")->getall('1=1');
|
|
|
|
+ $list = [];
|
|
|
|
+
|
|
|
|
+ for ($i = 0; $i < count($dataArr); $i++) {
|
|
|
|
+ $data = $dataArr[$i];
|
|
|
|
+
|
|
|
|
+ $sqlStr = /** @lang text */
|
|
|
|
+ "SELECT count(1) con FROM (
|
|
|
|
+ SELECT 1 FROM `[Q]meeting`
|
|
|
|
+ WHERE `status` = 1
|
|
|
|
+ and `start_time` < now()
|
|
|
|
+ and `end_time` > now()
|
|
|
|
+ and `room_id` = '".$data['id']."'
|
|
|
|
+ UNION ALL
|
|
|
|
+ SELECT 1 FROM `[Q]meeting_key`
|
|
|
|
+ WHERE `start_time` < now()
|
|
|
|
+ and `end_time` > now()
|
|
|
|
+ and `room_id` = '".$data['id']."'
|
|
|
|
+ ) t";
|
|
|
|
+ $meetingHave = $this->db->getall($sqlStr);
|
|
|
|
+
|
|
|
|
+ $sqlStr = /** @lang text */
|
|
|
|
+ "SELECT count(1) con FROM (
|
|
|
|
+ SELECT 1 FROM `[Q]meeting`
|
|
|
|
+ WHERE `status` = 1
|
|
|
|
+ AND `start_time` REGEXP '".$dataDate."'
|
|
|
|
+ AND `room_id` = '".$data['id']."'
|
|
|
|
+ UNION ALL
|
|
|
|
+ SELECT 1 FROM `[Q]meeting_key`
|
|
|
|
+ WHERE `start_time` REGEXP '".$dataDate."'
|
|
|
|
+ AND `room_id` = '".$data['id']."'
|
|
|
|
+ ) t";
|
|
|
|
+ $meetCon = $this->db->getall($sqlStr);
|
|
|
|
+
|
|
|
|
+ $list[$i][] = [
|
|
|
|
+ 'meeting_room_id' => $data['id'],
|
|
|
|
+ 'meeting_room_name' => $data['room_name'],
|
|
|
|
+ 'meeting_room_state' => $meetingHave[0]['con'] ?? 0 > 0 ? 1 : 0,
|
|
|
|
+ 'meeting_room_state_text' => $meetingHave[0]['con'] ?? 0 > 0 ? "会议中" : "空闲中",
|
|
|
|
+ 'meeting_today_num' => $meetCon[0]['con'] ?? 0
|
|
|
|
+ ];
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $this->showreturn($list,'success');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 手机端 - 会议列表
|
|
|
|
+ public function mMeetListAction() {
|
|
|
|
+ $rawArr = $this->getpostarr();
|
|
|
|
+
|
|
|
|
+ if (!isset($rawArr['room_id'])) {
|
|
|
|
+ return returnerror('参数缺失');
|
|
|
|
+ }
|
|
|
|
+ $roomId = $rawArr['room_id'];
|
|
|
|
+
|
|
|
|
+ $roomInfo = m('meeting_room')->getone("id={$roomId}");
|
|
|
|
+ if (empty($roomInfo)) {
|
|
|
|
+ return returnerror('会议室不存在!');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $dataDate = substr($rawArr['date'], 0, 10) ?? date("Y-m-d");
|
|
|
|
+
|
|
|
|
+ $sqlStr = /** @lang text */
|
|
|
|
+ "SELECT 1 as type, id, title, start_time, end_time, null compere, '办公会议' as meeting_type
|
|
|
|
+ FROM `[Q]meeting`
|
|
|
|
+ WHERE `status` = 1
|
|
|
|
+ and `start_time` regexp '".$dataDate."'
|
|
|
|
+ and `room_id` = '".$roomId."'
|
|
|
|
+ UNION ALL
|
|
|
|
+ SELECT 2 as type, id, title, start_time, end_time, compere, '党委会议' as meeting_type
|
|
|
|
+ FROM `[Q]meeting_key`
|
|
|
|
+ WHERE `start_time` regexp '".$dataDate."'
|
|
|
|
+ and `room_id` = '".$roomId."'
|
|
|
|
+ ";
|
|
|
|
+ $meetingArr = $this->db->getall($sqlStr);
|
|
|
|
+
|
|
|
|
+ if (!empty($meetingArr)) {
|
|
|
|
+
|
|
|
|
+ for ($i = 0; $i < count($meetingArr); $i++) {
|
|
|
|
+ $meet = $meetingArr[$i];
|
|
|
|
+ $meet_time = date("H:i", strtotime($meet['start_time'])).' ~ '.date("H:i", strtotime($meet['end_time']));
|
|
|
|
+ $state_code = m("meeting")->meetingState($meet['start_time'], $meet['end_time'], 1);
|
|
|
|
+ $state_text = m("meeting")->meetingState($meet['start_time'], $meet['end_time'], 2);
|
|
|
|
+ $list["meeting_list"][$i][] = [
|
|
|
|
+ "meeting_id" => $meet['id'],
|
|
|
|
+ "meeting_name" => str_replace("\n", "",$meet['title']),
|
|
|
|
+ "meeting_time" => $meet_time,
|
|
|
|
+ "meeting_moderator" => $meet['compere'],
|
|
|
|
+ "meeting_state" => $state_code,
|
|
|
|
+ "meeting_state_text" => $state_text,
|
|
|
|
+ "meeting_type" => $meet['meeting_type'],
|
|
|
|
+ "meeting_type_id" => $meet['type'],
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ // 会议中
|
|
|
|
+ if ($state_code == 1) {
|
|
|
|
+ $meeting = [
|
|
|
|
+ "meeting_room_name" => $roomInfo['room_name'],
|
|
|
|
+ "meeting_name" => m("meeting")->meetingState($meet['start_time'], $meet['end_time'], 2),
|
|
|
|
+ "meeting_time" => $meet_time,
|
|
|
|
+ "meeting_moderator" => null,
|
|
|
|
+ ];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (empty($meeting)) {
|
|
|
|
+ $list['basic_information'] = [
|
|
|
|
+ "meeting_room_name" => $roomInfo['room_name'],
|
|
|
|
+ "meeting_name" => '空闲中',
|
|
|
|
+ "meeting_time" => null,
|
|
|
|
+ "meeting_moderator" => null,
|
|
|
|
+ ];
|
|
|
|
+ } else {
|
|
|
|
+ $list['basic_information'] = $meeting;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ $list['basic_information'] = [
|
|
|
|
+ "meeting_room_name" => $roomInfo['room_name'],
|
|
|
|
+ "meeting_name" => '空闲中',
|
|
|
|
+ "meeting_time" => null,
|
|
|
|
+ "meeting_moderator" => null,
|
|
|
|
+ ];
|
|
|
|
+ $list['meeting list'] = [];
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ $this->showreturn($list,'success');
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 手机端 - 会议详情
|
|
|
|
+ public function mMeetDetailAction() {
|
|
|
|
+ $rawArr = $this->getpostarr();
|
|
|
|
+
|
|
|
|
+ if (!isset($rawArr['meet_id']) && !isset($rawArr['meet_type'])) {
|
|
|
|
+ return returnerror('参数缺失');
|
|
|
|
+ }
|
|
|
|
+ $meetId = $rawArr['meet_id'];
|
|
|
|
+ $meetType = $rawArr['meet_type'];
|
|
|
|
+ if ($meetType == 1) {
|
|
|
|
+ $meetInfo = $this->db->getone("[Q]meeting", "`id` = '".$meetId."'");
|
|
|
|
+ if (!empty($meetInfo)) {
|
|
|
|
+ $info['basic_information'] = [
|
|
|
|
+ "meeting_name"=>str_replace("\n", "",$meetInfo['title']),
|
|
|
|
+ "meeting_time"=>$meetInfo['start_time'],
|
|
|
|
+ "meeting_moderator"=>null,
|
|
|
|
+ "meeting_state"=>$meetInfo['meet_state'],
|
|
|
|
+ "meeting_state_text"=>m('meeting')->hyarra[$meetInfo['meet_state']],
|
|
|
|
+ "meeting_type"=>"办公会议",
|
|
|
|
+ "meeting_attendess"=>[
|
|
|
|
+ [
|
|
|
|
+ "label"=>"参会部门及人员",
|
|
|
|
+ "text"=>$meetInfo['attendees']
|
|
|
|
+ ],
|
|
|
|
+ [
|
|
|
|
+ "label"=>"备注",
|
|
|
|
+ "remark"=>$meetInfo['remark']
|
|
|
|
+ ]
|
|
|
|
+ ]
|
|
|
|
+ ];
|
|
|
|
+ $info['meetingTopic'] = [];
|
|
|
|
+ $this->showreturn($info, 'success');
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ $meetInfo = $this->db->getone("[Q]meeting_key", "`id` = '".$meetId."'");
|
|
|
|
+ if (!empty($meetInfo)) {
|
|
|
|
+ $info['basic_information'] = [
|
|
|
|
+ "meeting_name"=>str_replace("\n", "",$meetInfo['title']),
|
|
|
|
+ "meeting_time"=>$meetInfo['start_time'],
|
|
|
|
+ "meeting_moderator"=>$meetInfo['compere'],
|
|
|
|
+ "meeting_state"=>$meetInfo['meet_state'],
|
|
|
|
+ "meeting_state_text"=>m('meeting')->hyarra[$meetInfo['meet_state']],
|
|
|
|
+ "meeting_type"=>"党委会议",
|
|
|
|
+ "meeting_attendess"=>[
|
|
|
|
+ [
|
|
|
|
+ "label"=>"出席",
|
|
|
|
+ "text"=>str_replace("\n", " ", $meetInfo['attendees']),
|
|
|
|
+ ],
|
|
|
|
+ [
|
|
|
|
+ "label"=>"列席",
|
|
|
|
+ "text"=>str_replace("\n", " ", $meetInfo['attends']),
|
|
|
|
+ ]
|
|
|
|
+ ]
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ $topics = m("meeting_topics")->getall("`mid` = '".$meetId."'", "*", "sort");
|
|
|
|
+ $j = count($topics);
|
|
|
|
+ $meetingTopic = array_fill(0, count($topics), null);
|
|
|
|
+ // 会议议题处理
|
|
|
|
+ for ($i = 0; $i < count($topics); $i++) {
|
|
|
|
+ $info = $topics[$i];
|
|
|
|
+ // 用于排序(已结束放最后)
|
|
|
|
+ if ($info['topic_state'] == 3) {
|
|
|
|
+ $index = $j - $i - 1;
|
|
|
|
+ } else {
|
|
|
|
+ $index = $i - 2;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $meetingTopic[$index]['state'] = $info['topic_state'];
|
|
|
|
+ $meetingTopic[$index]['tip'] = m("meeting")->ytarra[$info['topic_state']];
|
|
|
|
+ $meetingTopic[$index]['text'] = $info['topic_title'];
|
|
|
|
+ $meetingTopic[$index]['personnel_list'] = str_replace("\n", "<br />", $info['topic_info']);
|
|
|
|
+
|
|
|
|
+ if ($info['topic_state'] == 2) {
|
|
|
|
+ // 当前议题 + 参会人员
|
|
|
|
+ $data['participants'][] = [
|
|
|
|
+ "topics" => $info['topic_title'],
|
|
|
|
+ "personnel_list" => str_replace("\n", "<br />", $info['topic_info']),
|
|
|
|
+ ];
|
|
|
|
+ // 下一议题 + 参会人员
|
|
|
|
+ if (isset($topics[$i + 1])) {
|
|
|
|
+ $data['participants'][] = [
|
|
|
|
+ "topics" => $topics[$i + 1]['topic_title'],
|
|
|
|
+ "personnel_list" => str_replace("\n", "<br />", $topics[$i + 1]['topic_info']),
|
|
|
|
+ ];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ $info['meetingTopic'] = $meetingTopic;
|
|
|
|
+
|
|
|
|
+ $this->showreturn($info, 'success');
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return returnerror('未找到会议');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
protected function getWeek($date=null) {
|
|
protected function getWeek($date=null) {
|
|
if (!isset($date)) {
|
|
if (!isset($date)) {
|