|
@@ -42,6 +42,7 @@ class openmeetClassAction extends openapiAction
|
|
|
|
|
|
$meetData = $this->db->getall($sqlStr);
|
|
|
|
|
|
+ // 没有会议
|
|
|
if (count($meetData) == 0) {
|
|
|
$this->showreturn(
|
|
|
[
|
|
@@ -61,10 +62,11 @@ class openmeetClassAction extends openapiAction
|
|
|
|
|
|
$data = [];
|
|
|
|
|
|
+ // 有会议循环处理一下
|
|
|
for ($i = 0; $i < count($meetData); $i++) {
|
|
|
$meeting = $meetData[$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_moderator"=>$meeting['compere'],
|
|
|
"meeting_state"=>$meeting['meet_state'] == 1 ? 1 : 0,
|
|
@@ -94,28 +96,29 @@ class openmeetClassAction extends openapiAction
|
|
|
|
|
|
$nowMeetingSql = /** @lang text */
|
|
|
"select * from (
|
|
|
- SELECT 1 as type, id, title, start_time, end_time, null as compere, meet_state, meeting_room, attendees
|
|
|
+ SELECT 1 as type, id, title, start_time, end_time, null as compere, meet_state, meeting_room, attendees, null as attends
|
|
|
FROM `[Q]meeting`
|
|
|
where status = 1
|
|
|
and start_time < now()
|
|
|
and end_time > now()
|
|
|
and meeting_room = '".$rawData['room_name']."'
|
|
|
union all
|
|
|
- SELECT 2 as type, id, title, start_time, end_time, compere, meet_state, meeting_room, null as attendees
|
|
|
+ SELECT 2 as type, id, title, start_time, end_time, compere, meet_state, meeting_room, attendees, attends
|
|
|
FROM `[Q]meeting_key`
|
|
|
where start_time < now() and end_time > now() and meeting_room = '".$rawData['room_name']."'
|
|
|
) as t order by start_time";
|
|
|
$nowMeetingData = $this->db->getall($nowMeetingSql);
|
|
|
|
|
|
-
|
|
|
+ // 有数据,且未结束
|
|
|
if (count($nowMeetingData) > 0 && $nowMeetingData[0]['meet_state'] != 2) {
|
|
|
$nowMeet = $nowMeetingData[0];
|
|
|
-
|
|
|
+ $attInfo = $nowMeet['type'] == 2 ? "出席:".$nowMeet['attendees']."<br />列席:".$nowMeet['attends'] : "";
|
|
|
$data['basic_information'] = [
|
|
|
"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_moderator" => $nowMeet['compere'],
|
|
|
+ "meeting_attendees"=>$attInfo
|
|
|
];
|
|
|
$data['meetingTopic'] = [];
|
|
|
$data['participants'] = [];
|
|
@@ -124,20 +127,23 @@ class openmeetClassAction extends openapiAction
|
|
|
if ($nowMeet['type'] == 2) {
|
|
|
|
|
|
$topics = $this->db->getall("select `id`, `topic_title`, `topic_attendee`, `topic_state`, `topic_info` from `[Q]meeting_topics` where mid = {$nowMeet['id']} order by sort");
|
|
|
- $j = count($topics);
|
|
|
- $meetingTopic = array_fill(0, count($topics), null);
|
|
|
+
|
|
|
+ $meetingTopic = array_fill(0, count($topics) - 1, null);
|
|
|
// 会议议题处理
|
|
|
- for ($i = 0; $i < count($topics); $i++) {
|
|
|
+
|
|
|
+ for ($i = 0,$j = 0; $i < count($topics); $i++) {
|
|
|
$info = $topics[$i];
|
|
|
// 用于排序(已结束放最后)
|
|
|
if ($info['topic_state'] == 3) {
|
|
|
- $index = $j - $i - 1;
|
|
|
+ $index = count($topics) - 1 - $j++;
|
|
|
} else {
|
|
|
- $index = $i - 2;
|
|
|
+ $index = $i-$j;
|
|
|
}
|
|
|
+
|
|
|
$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) {
|
|
|
// 当前议题 + 参会人员
|
|
@@ -180,6 +186,271 @@ class openmeetClassAction extends openapiAction
|
|
|
$this->showreturn($data, "请求成功");
|
|
|
}
|
|
|
|
|
|
+ // 手机端 - 会议室列表
|
|
|
+ public function mMeetRoomListAction() {
|
|
|
+
|
|
|
+ $rawArr = $this->getpostarr();
|
|
|
+ if (isset($rawArr['date'])) {
|
|
|
+ $dataDate = substr($rawArr['date'], 0, 10);
|
|
|
+ } else {
|
|
|
+ $dataDate = 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 `start_time` REGEXP '".$dataDate."'
|
|
|
+ and `meet_state` != 2
|
|
|
+ and `room_id` = '".$data['id']."'
|
|
|
+ UNION ALL
|
|
|
+ SELECT 1 FROM `[Q]meeting_key`
|
|
|
+ WHERE `start_time` < now()
|
|
|
+ and `start_time` REGEXP '".$dataDate."'
|
|
|
+ and `meet_state` != 2
|
|
|
+ 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 `meet_state` != 2
|
|
|
+ AND `start_time` REGEXP '".$dataDate."'
|
|
|
+ AND `room_id` = '".$data['id']."'
|
|
|
+ UNION ALL
|
|
|
+ SELECT 1 FROM `[Q]meeting_key`
|
|
|
+ WHERE `start_time` REGEXP '".$dataDate."'
|
|
|
+ AND `meet_state` != 2
|
|
|
+ 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('会议室不存在!');
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isset($rawArr['date'])) {
|
|
|
+ $dataDate = substr($rawArr['date'], 0, 10);
|
|
|
+ } else {
|
|
|
+ $dataDate = 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 `meet_state` != 2
|
|
|
+ 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 `meet_state` != 2
|
|
|
+ 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,
|
|
|
+ ];
|
|
|
+
|
|
|
+ // 自动改变状态
|
|
|
+ $firstTopic = m('meeting_topics')->getone("mid={$meet['id']}",'id, topic_state', 'sort');
|
|
|
+ if (isset($firstTopic['id']) && $firstTopic['topic_state'] < 2) {
|
|
|
+ m('meeting')->firstMeetingTopicStart($meet['id']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ 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('参数缺失');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 党委会议会议议题处理
|
|
|
+ if ($rawArr['meet_type'] == 2) {
|
|
|
+ $meet = m('meeting_key')->getone("id={$rawArr['meet_id']}", "*");
|
|
|
+ if (isset($meet)) {
|
|
|
+ $mstime = $meet['start_time'];
|
|
|
+ $metime = $meet['end_time'];
|
|
|
+ $now = date("Y-m-d H:i:s");
|
|
|
+ // 会议中状态
|
|
|
+ if ($mstime < $now && $metime > $now) {
|
|
|
+ // 自动改变议题状态
|
|
|
+ $firstTopic = m('meeting_topics')->getone("mid={$meet['id']}",'id, topic_state', 'sort');
|
|
|
+ if (isset($firstTopic['id']) && $firstTopic['topic_state'] < 2) {
|
|
|
+ m('meeting')->firstMeetingTopicStart($meet['id']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $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_attendees"=>[
|
|
|
+ [
|
|
|
+ "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_attendees"=>[
|
|
|
+ [
|
|
|
+ "label"=>"出席",
|
|
|
+ "text"=>str_replace("\n", " ", $meetInfo['attendees']),
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ "label"=>"列席",
|
|
|
+ "text"=>str_replace("\n", " ", $meetInfo['attends']),
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+
|
|
|
+ // 会议议题
|
|
|
+ $topics = m("meeting_topics")->getall("`mid` = '".$meetId."'", "*", "sort");
|
|
|
+
|
|
|
+ $meetingTopic = array_fill(0, count($topics), null);
|
|
|
+ // 会议议题处理
|
|
|
+ for ($i = 0,$j = 0; $i < count($topics); $i++) {
|
|
|
+ $topiic = $topics[$i];
|
|
|
+ // 用于排序(已结束放最后)
|
|
|
+ if ($topiic['topic_state'] == 3) {
|
|
|
+ $index = count($topics) - 1 - $j++;
|
|
|
+ } else {
|
|
|
+ $index = $i-$j;
|
|
|
+ }
|
|
|
+
|
|
|
+ $meetingTopic[$index]['state'] = $topiic['topic_state'];
|
|
|
+ $meetingTopic[$index]['tip'] = m("meeting")->ytarra[$topiic['topic_state']];
|
|
|
+ $meetingTopic[$index]['text'] = $topiic['topic_title'];
|
|
|
+ $meetingTopic[$index]['personnel_list'] = str_replace("\n", "<br />", $topiic['topic_info']);
|
|
|
+
|
|
|
+ }
|
|
|
+ $info['meetingTopic'] = $meetingTopic;
|
|
|
+
|
|
|
+ $this->showreturn($info, 'success');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return returnerror('未找到会议');
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
protected function getWeek($date=null) {
|
|
|
if (!isset($date)) {
|