浏览代码

会议手机端接口

q 1 年之前
父节点
当前提交
d924df3cca

+ 5 - 0
webmain/flow/input/inputjs/mode_meeting.js

@@ -10,6 +10,11 @@ function initbodys(){
         changetotal();
     });
 
+    c.onselectdata['meeting_room']=function(d) {
+        form('room_id').value=d.value;
+        console.log(d.value);
+    }
+
 }
 
 

+ 4 - 1
webmain/flow/input/inputjs/mode_meeting_key.js

@@ -1,4 +1,7 @@
 //流程模块【meeting_key.党委会议】下录入页面自定义js页面,初始函数
 function initbodys(){
-	
+	c.onselectdata['meeting_room']=function(d) {
+        form('room_id').value=d.value;
+        console.log(d.value);
+    }
 }

+ 1 - 1
webmain/flow/page/input_meeting.html

@@ -30,7 +30,7 @@
     </tr>
     <tr>
         <td height="34" width="15%" align="right" class="ys1">*^meeting_room^</td>
-        <td width="35%" class="ys2">{meeting_room}</td>
+        <td width="35%" class="ys2">{meeting_room}{room_id}</td>
         <td height="34" align="right" class="ys1"></td>
         <td class="ys2"></td>
     </tr>

+ 1 - 1
webmain/flow/page/input_meeting_key.html

@@ -14,7 +14,7 @@
         <td height="34" width="15%" align="right" class="ys1">*^compere^</td>
         <td width="35%" class="ys2">{compere}</td>
         <td height="34" align="right" class="ys1">*^meeting_room^</td>
-        <td class="ys2">{meeting_room}</td>
+        <td class="ys2">{meeting_room}{room_id}</td>
     </tr>
     <tr>
         <td height="34" align="right" class="ys1">*^attendees^</td>

+ 18 - 0
webmain/model/meetingModel.php

@@ -75,4 +75,22 @@ class meetingClassModel extends Model
             return null;
         }
     }
+
+
+    // 会议状态
+    public function meetingState($stime, $etime, $type=1) {
+        $code = [0, 1, 2];
+        $info = m('meeting')->hyarra;
+
+        if ($stime > date("Y-m-d H:i:s")) {
+            // 开始时间比当前时间大——未开始
+            return $type == 1 ? $code[0] : $info[0];
+        } else if ($etime < date("Y-m-d H:i:s")) {
+            // 当前时间 比 结束时间比——已结束
+            return $type == 1 ? $code[2] : $info[2];
+        } else {
+            // 在时间段内——会议中
+            return $type == 1 ? $code[1] : $info[1];
+        }
+    }
 }

+ 239 - 2
webmain/task/openapi/openmeetAction.php

@@ -64,7 +64,7 @@ class openmeetClassAction extends openapiAction
         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,
@@ -113,7 +113,7 @@ class openmeetClassAction extends openapiAction
 
             $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'],
             ];
@@ -138,6 +138,7 @@ class openmeetClassAction extends openapiAction
                     $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 +181,242 @@ class openmeetClassAction extends openapiAction
         $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) {
         if (!isset($date)) {