Browse Source

重要会议时间段调整

q 1 year atrás
parent
commit
b67feac706

+ 1 - 1
webmain/flow/input/mode_meeting_keyAction.php

@@ -14,7 +14,7 @@ class mode_meeting_keyClassAction extends inputAction{
 	*/
 	protected function savebefore($table, $arr, $id, $addbo){
         // 检查会议是否冲突
-        return m('meeting')->isapplymsg($arr['start_time'], $arr['end_time'], $arr['meeting_room'], $id, 2);
+//        return m('meeting')->isapplymsg($arr['start_time'], $arr['end_time'], $arr['meeting_room'], $id, 2);
 	}
 	
 	/**

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

@@ -7,8 +7,8 @@
     <tr>
         <td height="34" width="15%" align="right" class="ys1">*^start_time^</td>
         <td width="35%" class="ys2">{start_time}</td>
-        <td height="34" width="15%" align="right" class="ys1">*^end_time^</td>
-        <td width="35%" class="ys2">{end_time}</td>
+        <td height="34" align="right" class="ys1">*^tzone^</td>
+        <td class="ys2">{tzone}</td>
     </tr>
     <tr>
         <td height="34" width="15%" align="right" class="ys1">*^compere^</td>

+ 5 - 7
webmain/flow/page/view_meeting_key_0.html

@@ -7,12 +7,14 @@
     <tr>
         <td height="34" width="15%" align="right" class="ys1">^start_time^</td>
         <td width="35%" class="ys2">{start_time}</td>
-        <td height="34" width="15%" align="right" class="ys1">^end_time^</td>
-        <td width="35%" class="ys2">{end_time}</td>
+        <td height="34" align="right" class="ys1">^tzone^</td>
+        <td class="ys2">{tzone}</td>
     </tr>
     <tr>
         <td height="34" width="15%" align="right" class="ys1">^compere^</td>
-        <td width="35%" class="ys2" colspan="3">{compere}</td>
+        <td width="35%" class="ys2">{compere}</td>
+        <td height="34" align="right" class="ys1">^meeting_room^</td>
+        <td class="ys2">{meeting_room}{room_id}{meet_state}</td>
     </tr>
     <tr>
         <td height="34" align="right" class="ys1">^attendees^</td>
@@ -23,10 +25,6 @@
         <td colspan="3" class="ys2">{attends}</td>
     </tr>
     <tr>
-        <td height="34" width="15%" align="right" class="ys1">^meeting_room^</td>
-        <td width="35%" class="ys2" colspan="3">{meeting_room}</td>
-    </tr>
-    <tr>
         <td class="ys2" style="background-color:#CCCCCC;" colspan="4"><strong>会议议题</strong></td>
     </tr>
     <tr>

+ 2 - 28
webmain/model/flow/meetingModel.php

@@ -28,29 +28,6 @@ class flow_meetingClassModel extends flowModel
             'm' => '每月',
             'y' => '每年',
         );
-
-
-
-//        m("log")->addlog("会议室审批", "创建");
-
-
-        $phoneNum = [
-            "15309501557",
-            "17701056405"
-        ];
-        $signName = "E通新枣泉";
-        $param = [
-            [
-                "name"=>"秦锐1",
-                "meetdate"=>"2024-04-08",
-                "meetroom"=>"306会议室"
-            ],
-            [
-                "name"=>"秦锐2",
-                "meetdate"=>"2024-04-08",
-                "meetroom"=>"306会议室"
-            ]
-        ];
     }
 
     //录入页上的标题
@@ -238,12 +215,9 @@ class flow_meetingClassModel extends flowModel
 //                "msg"=>'发送短信'
 //            ];
         } else if ($this->nowcourse['step'] == 2) {
+            $meet_room = $sm['meeting_room'];
+            $isApply = m('meeting')->isapplymsg($this->rs['start_time'], $this->rs['end_time'], $meet_room, $this->id, 1);
             if (!empty($isApply)) {
-                $haha = $this->rs['room_id'];
-                $meet_room = $sm['room_id'];
-                $meet_room = $sm['meeting_room'];
-                $meeting = m('meeting')->getone("room_id={$meet_room} and ");
-                $isApply = m('meeting')->isapplymsg($this->rs['start_time'], $this->rs['end_time'], $meet_room, $this->id, 1);
                 return [
                     "msg"=>$isApply
                 ];

+ 59 - 46
webmain/model/flow/meeting_keyModel.php

@@ -20,11 +20,11 @@ class flow_meeting_keyClassModel extends flowModel
 
     //提交时调用
     protected function flowsubmit($na, $sm) {
-        if ($na != '编辑') {
+//        if ($na != '编辑') {
             // 提交时初始化为0
 //            m('meeting_topics')->update(["topic_state"=>0], 'mid='.$this->id);
 //            m('meeting_key')->update(["meet_state"=>1], 'id='.$this->id);
-        }
+//        }
 //        $meet = m('meeting')->getone("id={$this->id}",'start_time');
 //
 //        if (isset($meet['start_time']) && strtotime($meet['start_time']) > time()) {
@@ -57,52 +57,59 @@ class flow_meeting_keyClassModel extends flowModel
         $stime 	= strtotime($rs['start_time']);
         $etime 	= strtotime($rs['end_time']);
 
-        // 会议状态
-        if($is_hand != 1){
-            if($etime < $time){
-                $nzt = 2;
-            } else if ($stime > $time){
-                $nzt = 0;
-            }
+        $tzone = m('meeting_key')->tp[$rs['tzone']]['name'];
+        if (isset($tzone) && !empty($tzone)) {
+            $rs['tzone'] = $tzone;
         }
-        // 会议开始时的处理
-        if (($stime <= $time && $etime > $time) || ($is_hand == 1 && $zt == 1)) {
-            $nzt = 1;
-            // 会议开始,议题自动调整开始第一项
-            $topic = m('meeting_topics')->getone("mid={$this->id}",'id, topic_state, topic_title', 'sort');
-            if (isset($topic['id']) && $topic['topic_state'] < 2) {
-                m('meeting')->firstMeetingTopicStart($this->id);
-                // 当前议题
-            }
 
-            // 展示近几个议题状态
-            $topics = m('meeting_topics')->getall("mid={$this->id}",'id, topic_state, topic_title', 'sort');
-            for ($i = 0; $i < count($topics); $i++) {
-                $topic = $topics[$i];
-                if ($topic['topic_state'] == 3) {
-                    $rs['topic'] = $this->getTopicInfoState($topic);
-                }
-                if ($topic['topic_state'] == 1) {
-                    $rs['topic'] .= $this->getTopicInfoState($topic);
-                }
-                if ($topic['topic_state'] == 2) {
-                    $rs['topic'] .= $this->getTopicInfoState($topic);
-                }
-            }
-
-        } else if ($stime > $time) {
-            $topic = m('meeting_topics')->getone("mid={$this->id}",'id, topic_state, topic_title', 'sort asc');
-            $rs['topic'] = $this->getTopicInfoState($topic);
-        } else {
-            $topic = m('meeting_topics')->getone("mid={$this->id}",'id, topic_state, topic_title', 'sort desc');
-            $rs['topic'] = $this->getTopicState($topic['topic_state']);
-        }
-
-        // 更新数据状态
-        if($zt != $nzt) {
-            $this->update('meet_state='.$nzt.'', $rs['id']);
-            $zt = $nzt;
-        }
+        // 会议状态
+        // 有会议开始、结束时间时开启↓↓↓↓↓↓↓↓↓
+//        if($is_hand != 1){
+//            if($etime < $time){
+//                $nzt = 2;
+//            } else if ($stime > $time){
+//                $nzt = 0;
+//            }
+//        }
+        // 会议开始时的处理
+//        if (($stime <= $time && $etime > $time) || ($is_hand == 1 && $zt == 1)) {
+//            $nzt = 1;
+//            // 会议开始,议题自动调整开始第一项
+//            $topic = m('meeting_topics')->getone("mid={$this->id}",'id, topic_state, topic_title', 'sort');
+//            if (isset($topic['id']) && $topic['topic_state'] < 2) {
+//                m('meeting')->firstMeetingTopicStart($this->id);
+//                // 当前议题
+//            }
+//
+//            // 展示近几个议题状态
+//            $topics = m('meeting_topics')->getall("mid={$this->id}",'id, topic_state, topic_title', 'sort');
+//            for ($i = 0; $i < count($topics); $i++) {
+//                $topic = $topics[$i];
+//                if ($topic['topic_state'] == 3) {
+//                    $rs['topic'] = $this->getTopicInfoState($topic);
+//                }
+//                if ($topic['topic_state'] == 1) {
+//                    $rs['topic'] .= $this->getTopicInfoState($topic);
+//                }
+//                if ($topic['topic_state'] == 2) {
+//                    $rs['topic'] .= $this->getTopicInfoState($topic);
+//                }
+//            }
+//
+//        } else if ($stime > $time) {
+//            $topic = m('meeting_topics')->getone("mid={$this->id}",'id, topic_state, topic_title', 'sort asc');
+//            $rs['topic'] = $this->getTopicInfoState($topic);
+//        } else {
+//            $topic = m('meeting_topics')->getone("mid={$this->id}",'id, topic_state, topic_title', 'sort desc');
+//            $rs['topic'] = $this->getTopicState($topic['topic_state']);
+//        }
+//
+//        // 更新数据状态
+//        if($zt != $nzt) {
+//            $this->update('meet_state='.$nzt.'', $rs['id']);
+//            $zt = $nzt;
+//        }
+        // 有会议开始、结束时间时开启↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
 
         // 会议状态-将id转换为文字
         $rs['meet_state'] = m("meeting")->getstatezt($zt);
@@ -111,6 +118,12 @@ class flow_meeting_keyClassModel extends flowModel
         return $rs;
     }
 
+    //单据判断条件从写$lx类型,$uid用户Id
+    protected function flowbillwhere($lx, $uid){
+        return [
+            'order'=>'sort'
+        ];
+    }
 
     // $ors当前单据操作信息,$crs提交过来的信息
     public function flowoptmenu($ors, $crs)

+ 73 - 25
webmain/model/meetingModel.php

@@ -12,50 +12,91 @@ class meetingClassModel extends Model
         $this->hyarrb = array('green', 'blue', '#ff6600', '#888888');
     }
 
+    // ---------------验证--------------------
     /**
      *	判断会议室是否重复申请了
      */
-
-
-    public function isapplymsg($startdt, $enddt, $hyname, $id=0, $meetType=1)
+    public function isapplymsg($startdt, $enddt, $roomName, $id=0, $meetType=1)
     {
         $msg 		= '';
         if ($meetType == 1) {
             $sql        =  /** @lang text */
-                'select id, meeting_room, start_time, end_time, title
-                   from [Q]meeting 
-                  where id <> '.$id.' 
-                    and meet_state in (0, 1)
-                 union all
-                 select id, meeting_room, start_time, end_time, title
-                   from [Q]meeting_key 
-                  where meet_state in (0, 1)
+                'SELECT * FROM (
+                    SELECT 1 as type, id, meeting_room, start_time, end_time, title, null as tzone
+                       FROM [Q]meeting 
+                      WHERE id <> '.$id.' 
+                        AND meet_state in (0, 1)
+                        AND start_time regexp date_format("'.$startdt.'", "%Y-%m-%d")
+                     UNION All
+                     select 2 as type, id, meeting_room, start_time, end_time, title, tzone
+                       FROM [Q]meeting_key 
+                      WHERE meet_state in (0, 1)
+                        AND start_time regexp date_format("'.$startdt.'", "%Y-%m-%d")
+				) t order by type desc, start_time asc
                     ';
         } else {
             $sql        =  /** @lang text */
-                'select id, meeting_room, start_time, end_time, title
-                   from [Q]meeting  where meet_state in (0, 1)
-                 union all
-                 select id, meeting_room, start_time, end_time, title 
-                   from [Q]meeting_key where id <> '.$id.' and meet_state in (0, 1)';
+                'SELECT * FROM (
+                     SELECT 1 as type, id, meeting_room, start_time, end_time, title, null as tzone
+                       FROM [Q]meeting 
+                      WHERE meet_state in (0, 1)
+                        AND start_time regexp date_format("'.$startdt.'", "%Y-%m-%d")
+                     UNION All
+                     SELECT 2 as type, id, meeting_room, start_time, end_time, title, tzone
+                       FROM [Q]meeting_key 
+                      WHERE id <> '.$id.'
+                        AND start_time regexp date_format("'.$startdt.'", "%Y-%m-%d")
+                        AND meet_state in (0, 1)
+				) t order by type desc, start_time asc
+				';
         }
 
-        $rows 		= $this->db->getall($sql);
+        $rows = $this->db->getall($sql);
 
         foreach($rows as $k=>$rs){
-            if($rs['meeting_room'] != $hyname)continue;
+            if($rs['meeting_room'] != $roomName)continue;
             $sdt = $rs['start_time'];
             $edt = $rs['end_time'];
-            if(
-                ($sdt<=$startdt && $edt>$startdt)
-                || ($sdt<$enddt && $edt>=$enddt)
-                || ($sdt>$startdt && $edt<$enddt)
-                || ($sdt==$startdt && $edt==$enddt)
-            )$msg = '该会议室的时间段已被申请过了,主题“'.$rs['title'].'”';
+            $type = $rs['type'];
+
+            if ($type == 2) {
+                $tp = m("meeting_key")->tp[$rs['tzone']];
+
+                $sdt = substr($startdt, 0, 10).' '.$tp['start_time'];
+                $edt = substr($startdt, 0, 10).' '.$tp['end_time'];
+                if(
+                    ($sdt<=$startdt && $edt>$startdt)
+                    || ($sdt<$enddt && $edt>=$enddt)
+                    || ($sdt>$startdt && $edt<$enddt)
+                    || ($sdt==$startdt && $edt==$enddt)
+                )$msg = '该会议室的时间段已被申请过了,主题“'.$rs['title'].'”';
+                return $msg;
+            }
+
+            if ($type == 1) {
+                if(
+                    ($sdt<=$startdt && $edt>$startdt)
+                    || ($sdt<$enddt && $edt>=$enddt)
+                    || ($sdt>$startdt && $edt<$enddt)
+                    || ($sdt==$startdt && $edt==$enddt)
+                )$msg = '该会议室的时间段已被申请过了,主题“'.$rs['title'].'”';
+                return $msg;
+            }
         }
         return $msg;
     }
 
+    // ---------------所有类型会议数据--------------------
+
+    // 获取今日有效会议
+    public function getMeetingEffective($uid) {
+        $sql = "select * from [Q]meeting where uid={$uid} and meet_state in (0, 1) and start_time>='".date("Y-m-d")."' order by start_time asc";
+        return $this->db->getall($sql);
+    }
+
+
+    // ---------------flow相关--------------------
+    // 第一个议题状态开始
     public function firstMeetingTopicStart($meeting_id) {
 
         $topic = m('meeting_topics')->getall("mid={$meeting_id}", "id", 'sort');
@@ -67,7 +108,7 @@ class meetingClassModel extends Model
         }
     }
 
-    // 会议室状态
+    // 会议室状态样式
     public function getstatezt($zt)
     {
         if (isset($this->hyarrb[$zt])) {
@@ -96,4 +137,11 @@ class meetingClassModel extends Model
             return $type == 1 ? $code[1] : $info[1];
         }
     }
+
+    // 根据会议时间-更换会议状态
+    public function meetingStateChange($mid, $stime, $etime) {
+        $state = $this->meetingState($stime, $etime, 1);
+        $this->update(["meet_state"=>$state], "id=".$mid);
+    }
+
 }

+ 97 - 0
webmain/model/meeting_keyModel.php

@@ -2,5 +2,102 @@
 
 class meeting_keyClassModel extends Model
 {
+    public $tp;
+    public function initModel()
+    {
+        parent::initModel(); // TODO: Change the autogenerated stub
+
+        $this->tp = [
+            'mor'=>[
+                'name'=>'上午',
+                'start_time'=>"06:30:00",
+                'end_time'=>'13:00:00'
+            ],
+            'aft'=>[
+                'name'=>'下午',
+                'start_time'=>"13:00:00",
+                'end_time'=>'18:00:00'
+            ]
+        ];
+    }
+
+
+    public function getTopicList($mid) {
+        $topics = $this->db->getall("select `id`, `topic_title`, `topic_attendee`, `topic_state`, `topic_info` from `[Q]meeting_topics` where mid = {$mid} order by sort");
+        $meetingTopic = array_fill(0, count($topics) - 1, null);
+
+        // 会议议题处理
+        for ($i = 0,$j = 0; $i < count($topics); $i++) {
+            $info = $topics[$i];
+
+            $ts = $info['topic_state'];
+            $tt = $info['topic_title'];
+            $ti = $info['topic_info'];
+            $pl = str_replace("\n", "<br />", $ti);
+
+            // 用于排序(已结束放最后)
+            if ($ts == 3) {
+                $index = count($topics) - 1 - $j++;
+            } else {
+                $index = $i-$j;
+            }
+            $mt = $meetingTopic[$index];
+            $mt['state'] = $ts;
+            $mt['tip'] = m("meeting")->ytarra[$ts];
+            $mt['text'] = $tt;
+            $mt['personnel_list'] = $pl;
+
+            if ($ts == 2) {
+                // 当前议题 + 参会人员
+                $data['participants'][] = [
+                    "topics" => $tt,
+                    "personnel_list" => $pl,
+                ];
+                // 下一议题 + 参会人员
+                if (isset($topics[$i + 1])) {
+                    $t = $topics[$i + 1];
+                    $ntt = $t['topic_title'];
+                    $npl = str_replace("\n", "<br />", $t['topic_info']);
+                    $data['participants'][] = [
+                        "topics" => $ntt,
+                        "personnel_list" => $npl,
+                    ];
+                }
+            }
+            $meetingTopic[$index] = $mt;
+        }
+        return $meetingTopic;
+
+    }
+
+    public function getNowTopic($mid)
+    {
+        $topics = $this->db->getone("[Q]meeting_topics", "mid = {$mid} and topic_state = 2", "*", "sort");
+        if ($topics) {
+            $topics['topic_info'] = str_replace("\n", "<br />", $topics['topic_info']);
+        }
+        return $topics;
+    }
+
+    public function getNextTopic($mid) {
+
+        $topics = $this->db->getone("[Q]meeting_topics", "mid = {$mid} and topic_state = 1", "*", "sort");
+        if ($topics) {
+            $topics['topic_info'] = str_replace("\n", "<br />", $topics['topic_info']);
+        }
+        return $topics;
+    }
+
+    public function getRecTopic($mid) {
+
+//        $topics = $this->db->getall("[Q]meeting_topics", "mid = {$mid} and topic_state in (1, 2)", "*", "topic_state desc, sort");
+        $sqlStr = "select * from [Q]meeting_topics where mid = {$mid} and topic_state in (1, 2) order by topic_state desc, sort";
+        $topics = $this->db->getall($sqlStr);
+//        for ($i = 0; $i < count($topics); $i++) {
+//            $topic = $topics[$i];
+//            $topics[$i]['topic_info'] = str_replace("\n", "<br />", $topic['topic_info']);
+//        }
+        return $topics;
+    }
 
 }

+ 125 - 125
webmain/task/openapi/openmeetAction.php

@@ -21,6 +21,7 @@ class openmeetClassAction extends openapiAction
         }
 
 //        $rawData = m('meeting_room')->getone(" mac = '{$rawArr['device_id']}'");
+        // 根据设备Id获取会议室信息
         $rawData = m("meeting_room")->getMeetingRoomInfoByDeviceId($rawArr['device_id']);
 
         if (!isset($rawData['id'])) {
@@ -30,20 +31,24 @@ class openmeetClassAction extends openapiAction
         // 设置响应时间,确定屏幕是否在线
         m("meeting_room")->update(["final_res_time"=>date("Y-m-d H:i:s")], "id = '{$rawData['id']}'");
 
+        // 获取今日(未开始、进行中)会议
         $sqlStr = /** @lang text */
             "select * from (
-            SELECT 1 as type, id, title, start_time, end_time, null as compere, meet_state, is_hand
-               FROM `[Q]meeting` 
-              where start_time REGEXP '".date("Y-m-d")."'
-                and end_time > now()
-                and status = 1
-                and room_id = '".$rawData['id']."'
-             union all
-             SELECT 2 as type, id, title, start_time, end_time, compere, meet_state, is_hand 
-               FROM `[Q]meeting_key` 
-              where start_time REGEXP '".date("Y-m-d")."' 
-                and end_time > now()
-                and room_id = '".$rawData['id']."') t order by start_time";
+                SELECT 1 as type, id, title, start_time, end_time, null as compere, meet_state, null as tzone, is_hand, meeting_room, attendees, null as attends
+                        ,`bfp`, `lunp`, `dnp`, `hotel`, `stay_day`, `stay_man`, `stay_lady`, 0 as `guset_well`
+                   FROM `[Q]meeting` 
+                  where start_time REGEXP '".date("Y-m-d")."'
+                    and end_time > now()
+                    and status = 1
+                    and room_id = '".$rawData['id']."'
+                union all
+                SELECT 2 as type, id, title, start_time, end_time, compere, meet_state, tzone, is_hand, meeting_room, attendees, attends
+                        ,0 `bfp`, 0 `lunp`, 0 `dnp`, 0 `hotel`, 0 `stay_day`, 0 `stay_man`, 0 `stay_lady`, 0 as `guset_well`
+                  FROM `[Q]meeting_key` 
+                 where start_time REGEXP '".date("Y-m-d")."' 
+                   and `meet_state` != 2
+                   and room_id = '".$rawData['id']."'
+            ) t order by type desc, start_time";
 
         $meetData = $this->db->getall($sqlStr);
 
@@ -70,106 +75,81 @@ class openmeetClassAction extends openapiAction
         // 有会议循环处理一下
         for ($i = 0; $i < count($meetData); $i++) {
             $meeting = $meetData[$i];
+            $mn = str_replace("\n", "",$meeting['title']);
+            $type = $meeting['type'];
+            $mc = $meeting['compere'];
+            $mr = $meeting['meeting_room'];
+            $ms = $meeting['meet_state'] == 1 ? 1 : 0;
+
+            $st = $meeting['start_time'];
+            $et = $meeting['end_time'];
+
+            if ($type == 1) {
+                $mt = date("H:i", strtotime($st)).' ~ '.date("H:i", strtotime($et));
+            } else {
+                $mt = m("meeting_key")->tp[$meeting['tzone']]['name'];
+            }
+
             $data['meeting_list'][$i] = [
-                "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,
+                "meeting_name"=>$mn,
+                "meeting_time"=>$mt,
+                "meeting_moderator"=>$mc,
+                "meeting_state"=>$ms,
             ];
 
-            // 时间到了自动结束一下
-            if (strtotime($meeting['end_time']) < strtotime(date("Y-m-d H:i:s"))) {
-                if ($meeting['type'] == 1) {
-                    m("meeting")->update(["meet_state"=>2], "id=".$meeting['id']);
-                } else {
-                    m("meeting_key")->update(["meet_state"=>2], "id=".$meeting['id']);
-                }
-            } else if (strtotime($meeting['start_time']) > strtotime(date("Y-m-d H:i:s"))) {
-                if ($meeting['type'] == 1) {
-                    m("meeting")->update(["meet_state"=>0], "id=".$meeting['id']);
-                } else {
-                    m("meeting_key")->update(["meet_state"=>0], "id=".$meeting['id']);
-                }
-            } else if (strtotime($meeting['start_time']) < strtotime(date("Y-m-d H:i:s")) && $meeting['is_hand'] != 1) {
-                if ($meeting['type'] == 1) {
-                    m("meeting")->update(["meet_state"=>1], "id=".$meeting['id']);
-                } else {
-                    m("meeting_key")->update(["meet_state"=>1], "id=".$meeting['id']);
-                }
+            // 时间到了自动结束一下(重要会议手动操作)
+            if ($meeting['type'] == 1) {
+                m("meeting")->meetingStateChange($meeting['id'], $st, $et);
+            }
+
+            if ($ms == 1) {
+                $nowMeet = $meeting;
+
+                $data['basic_information'] = [
+                    "meeting_room_name" => $mr,
+                    "meeting_name" => $mn,
+                    "meeting_time" => $mt,
+                    "meeting_moderator" => $mc
+                ];
             }
         }
 
-        $nowMeetingSql = /** @lang text */
-            "select * 
-              from (
-                SELECT 1 as type, id, title, start_time, end_time, null as compere, meet_state, meeting_room, attendees, null as attends
-                        ,`bfp`, `lunp`, `dnp`, `hotel`, `stay_day`, `stay_man`, `stay_lady`, 0 as `guset_well`
-                   FROM `[Q]meeting` 
-                  where status = 1 
-                    and start_time < now() 
-                    and end_time > now() 
-                    and room_id = '".$rawData['id']."'
-                 union all
-                 SELECT 2 as type, id, title, start_time, end_time, compere, meet_state, meeting_room, attendees, attends
-                        ,0 `bfp`, 0 `lunp`, 0 `dnp`, 0 `hotel`, 0 `stay_day`, 0 `stay_man`, 0 `stay_lady`, 0 as `guset_well`
-                   FROM `[Q]meeting_key` 
-                  where start_time < now() and end_time > now()
-                    and room_id = '".$rawData['id']."'
-              ) as t order by start_time";
-        $nowMeetingData = $this->db->getall($nowMeetingSql);
+        // 有进行中的会议
+        if (isset($nowMeet) && !empty($nowMeet)) {
+
+            // 出席信息
+            $ats = trimstr($nowMeet['attendees']);
+            $atl = trim($nowMeet['attends']);
+
+            $attInfo = !empty($ats) ? "出席:".$ats : "";
+            $attInfo = $attInfo.(empty($ats) || empty($atl) ? "" : "<br />");
+            $attInfo = $attInfo.(!empty($atl) ? "列席:".$atl : "");
+            $data['basic_information']['meeting_attendees'] = $attInfo;
 
-        // 有数据,且未结束
-        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" => 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'] = [];
 
+            $mid = $nowMeet['id'];
             // 党委会议(需要加入议题)
             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");
-
-                $meetingTopic = array_fill(0, count($topics) - 1, null);
-                // 会议议题处理
-
-                for ($i = 0,$j = 0; $i < count($topics); $i++) {
-                    $info = $topics[$i];
-                    // 用于排序(已结束放最后)
-                    if ($info['topic_state'] == 3) {
-                        $index = count($topics) - 1 - $j++;
-                    } else {
-                        $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) {
-                        // 当前议题 + 参会人员
-                        $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']),
-                            ];
-                        }
-                    }
+                $topicList = m("meeting_key")->getTopicList($mid);
+                $recTopic = m("meeting_key")->getRecTopic($mid);
+                $data['meetingTopic'] = $topicList;
+                $data['participants'] = array();
+
+                if (isset($recTopic[0])) {
+                    $data['participants'][] = [
+                        "topics" => $recTopic[0]['topic_title'],
+                        "personnel_list" => str_replace("\n", "<br />", $recTopic[0]['topic_info']),
+                    ];
+                }
+                if (isset($recTopic[1])) {
+                    $data['participants'][] = [
+                        "topics" => $recTopic[1]['topic_title'],
+                        "personnel_list" => str_replace("\n", "<br />", $recTopic[1]['topic_info']),
+                    ];
                 }
-                $data['meetingTopic'] = $meetingTopic;
+
 
             } else {
                 // 普通会议,议题为空
@@ -192,6 +172,7 @@ class openmeetClassAction extends openapiAction
                 ];
             }
         } else {
+            // 空闲状态
             $data['basic_information'] = [
                 "meeting_room_name" => $rawData['room_name'],
                 "meeting_name" => '空闲中',
@@ -296,7 +277,7 @@ class openmeetClassAction extends openapiAction
 
 
         $sqlStr = /** @lang text */
-            "SELECT 1 as type, id, title, start_time, end_time, null compere, '办公会议' as meeting_type 
+            "SELECT 1 as type, id, title, start_time, end_time, null compere, '办公会议' as meeting_type, null as tzone, meet_state 
                FROM `[Q]meeting`
               WHERE `status` = 1
                 and `start_time` regexp '".$dataDate."'
@@ -304,26 +285,38 @@ class openmeetClassAction extends openapiAction
                 and `end_time` > now()
                 and `room_id` = '".$roomId."'
              UNION ALL
-             SELECT 2 as type, id, title, start_time, end_time, compere, '党委会议' as meeting_type 
+             SELECT 2 as type, id, title, start_time, end_time, compere, '党委会议' as meeting_type, tzone, meet_state
                FROM `[Q]meeting_key`
               WHERE `start_time` regexp '".$dataDate."'
                 and `meet_state` != 2
-                and `end_time` > now()
                 and `room_id` = '".$roomId."'
             ";
         $meetingArr = $this->db->getall($sqlStr);
+        $room_name = $roomInfo['room_name'];
 
         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);
+                $type = $meet['type'];
+                $ms = $meet['meet_state'];
+                $st = $meet['start_time'];
+                $et = $meet['end_time'];
+                $mn = str_replace("\n", "",$meet['title']);
+
+                if ($type == 1) {
+                    $mt = date("H:i", strtotime($st)).' ~ '.date("H:i", strtotime($et));
+                } else {
+                    $mt = m("meeting_key")->tp[$meet['tzone']]['name'];
+                }
+
+                $state_code = $ms;
+                $state_text = m("meeting")->hyarra[$ms];
+
                 $list["meeting_list"][$i] = [
                     "meeting_id" => $meet['id'],
-                    "meeting_name" => str_replace("\n", "",$meet['title']),
-                    "meeting_time" => $meet_time,
+                    "meeting_name" => $mn,
+                    "meeting_time" => $mt,
                     "meeting_moderator" => $meet['compere'],
                     "meeting_state" => $state_code,
                     "meeting_state_text" => $state_text,
@@ -334,9 +327,9 @@ class openmeetClassAction extends openapiAction
                 // 会议中
                 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_room_name" => $room_name,
+                        "meeting_name" => $state_text,
+                        "meeting_time" => $mt,
                         "meeting_moderator" => null,
                     ];
 
@@ -348,9 +341,10 @@ class openmeetClassAction extends openapiAction
                 }
             }
 
+            // 如果没有会议
             if (empty($meeting)) {
                 $list['basic_information'] = [
-                    "meeting_room_name" => $roomInfo['room_name'],
+                    "meeting_room_name" => $room_name,
                     "meeting_name" => '空闲中',
                     "meeting_time" => null,
                     "meeting_moderator" => null,
@@ -362,12 +356,12 @@ class openmeetClassAction extends openapiAction
 
         } else {
             $list['basic_information'] = [
-                "meeting_room_name" => $roomInfo['room_name'],
+                "meeting_room_name" => $room_name,
                 "meeting_name" => '空闲中',
                 "meeting_time" => null,
                 "meeting_moderator" => null,
             ];
-            $list['meeting list'] = [];
+            $list['meeting_list'] = [];
         }
 
 
@@ -446,23 +440,29 @@ class openmeetClassAction extends openapiAction
             if (!empty($meetInfo)) {
                 $info['basic_information'] = [
                     "meeting_name"=>str_replace("\n", "",$meetInfo['title']),
-                    "meeting_time"=>$meetInfo['start_time'],
+                    "meeting_time"=>$meetInfo['start_time']." ".m("meeting_key")->tp[$meetInfo['tzone']]['name'],
                     "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']),
-                        ]
-                    ]
+                    "meeting_type"=>"重要会议"
                 ];
 
+                if (!empty(trim($meetInfo['attendees']))) {
+                    $info['basic_information']["meeting_attendees"][] = [
+                        "label"=>"出席",
+                        "text"=>str_replace("\n", " ", $meetInfo['attendees']),
+                    ];
+                }
+
+                if (!empty(trim($meetInfo['attends']))) {
+                    $info['basic_information']["meeting_attendees"][] = [
+                        "label"=>"列席",
+                        "text"=>str_replace("\n", " ", $meetInfo['attends']),
+                    ];
+                }
+
+
+
                 // 会议议题
                 $topics = m("meeting_topics")->getall("`mid` = '".$meetId."'", "*", "sort");
 

+ 3 - 3
zq_oa_login/index.html

@@ -49,11 +49,12 @@
 							// 发送 POST 请求
 							axios({
 								method: 'post',
-								url: "http://zq.oa.nxjiewei.com:8011/?a=check&m=login&ajaxbool=true",
+								url: "http://zq.oa.nxmy.com:8011/?a=check&m=login&ajaxbool=true",
+								// url: "http://oa.test/?a=check&m=login&ajaxbool=true",
 								data: params
 							}).then((res) => {
 								console.log(res.data)
-
+								// alert(unescape(GetQueryString("url")))
 								// 登录成功后进入对应页面
 								window.location.href = unescape(GetQueryString("url"))
 
@@ -62,7 +63,6 @@
 
 					},
 					mounted: function() {
-						delCookie()
 						this.staff_num = GetQueryString("staff_num")
 						this.get_token()
 					}