Commit 4e13372b29c66c20cb66eaff92a47024f9f2eb03

Authored by zhang
1 parent 4652874d

[留言板]留言模型类优化

trunk/Message/Common/Model/MessageModel.class.php
1 <?php 1 <?php
2 -  
3 namespace Common\Model; 2 namespace Common\Model;
4 3
5 class MessageModel extends AbstractModel 4 class MessageModel extends AbstractModel
@@ -36,8 +35,12 @@ class MessageModel extends AbstractModel @@ -36,8 +35,12 @@ class MessageModel extends AbstractModel
36 * @param $page int 页码 35 * @param $page int 页码
37 * @return array 36 * @return array
38 */ 37 */
39 - public function messageList($conds = [],$page = 0) 38 + public function message_list($conds = [],$page = 0)
40 { 39 {
  40 + if ($page < 1 || !$page) {
  41 + $page = self::PAGING_DEFAULT_PAGE;
  42 + }
  43 +
41 $params = []; 44 $params = [];
42 $wheres = []; 45 $wheres = [];
43 46
@@ -49,11 +52,8 @@ class MessageModel extends AbstractModel @@ -49,11 +52,8 @@ class MessageModel extends AbstractModel
49 } 52 }
50 53
51 $page_size = self::PAGING_DEFAULT_LIMIT; 54 $page_size = self::PAGING_DEFAULT_LIMIT;
52 - $page_start = self::PAGING_DEFAULT_PAGE;  
53 55
54 - if ($page) {  
55 - $page_start = ($page - 1) * $page_size;  
56 - } 56 + $page_start = ($page - 1) * $page_size;
57 57
58 $option = [$page_start,$page_size]; 58 $option = [$page_start,$page_size];
59 59
@@ -64,7 +64,7 @@ class MessageModel extends AbstractModel @@ -64,7 +64,7 @@ class MessageModel extends AbstractModel
64 64
65 65
66 if (in_array('title',$conds)) { 66 if (in_array('title',$conds)) {
67 - $where = " title LIKE ? "; 67 + $where = " title LIKE '?' ";
68 } 68 }
69 else{ 69 else{
70 $fields = array_keys($conds); 70 $fields = array_keys($conds);
@@ -77,13 +77,20 @@ class MessageModel extends AbstractModel @@ -77,13 +77,20 @@ class MessageModel extends AbstractModel
77 77
78 } 78 }
79 79
80 - $sql = "SELECT a.* FROM __TABLE__ a 80 + $sql = "SELECT a.message_id,a.title,a.message,IFNULL(b.name,'') AS `from`,IFNULL(c.name,'') AS `to`,a.checked
  81 + FROM __TABLE__ a
81 LEFT JOIN {$table} b ON a.uid = b.person_id 82 LEFT JOIN {$table} b ON a.uid = b.person_id
  83 + LEFT JOIN {$table} c ON a.receiver_uid = c.person_id
82 WHERE $where"; 84 WHERE $where";
83 85
84 $list = $this->_m->fetch_array($sql, $params,$option); 86 $list = $this->_m->fetch_array($sql, $params,$option);
85 87
86 - return $list; 88 + $messageList['total'] = count($list);
  89 + $messageList['page'] = $page;
  90 + $messageList['limit'] = $page_size;
  91 + $messageList['list'] = $list;
  92 +
  93 + return $messageList;
87 } 94 }
88 95
89 /** 96 /**
@@ -162,9 +169,6 @@ class MessageModel extends AbstractModel @@ -162,9 +169,6 @@ class MessageModel extends AbstractModel
162 $where = " $field = ? "; 169 $where = " $field = ? ";
163 } 170 }
164 171
165 -// print_r($conds);  
166 -// print_r($where);  
167 -// die;  
168 if ($where) { 172 if ($where) {
169 $sql = "SELECT a.* FROM __TABLE__ a 173 $sql = "SELECT a.* FROM __TABLE__ a
170 JOIN {$table} b ON a.uid = b.person_id 174 JOIN {$table} b ON a.uid = b.person_id
@@ -185,7 +189,7 @@ class MessageModel extends AbstractModel @@ -185,7 +189,7 @@ class MessageModel extends AbstractModel
185 * @return array|bool 189 * @return array|bool
186 * Date: 2018-10-11 Time: 11:47 190 * Date: 2018-10-11 Time: 11:47
187 */ 191 */
188 - public function messageDetail($message_id = 0) 192 + public function message_detail($message_id = 0)
189 { 193 {
190 $params = []; 194 $params = [];
191 $wheres = []; 195 $wheres = [];
@@ -213,15 +217,16 @@ class MessageModel extends AbstractModel @@ -213,15 +217,16 @@ class MessageModel extends AbstractModel
213 $table_attachment = $m_attachment->get_tname(); 217 $table_attachment = $m_attachment->get_tname();
214 218
215 219
216 - $sql = "SELECT attachment FROM __TABLE__ m WHERE `message_id` = 5 ";  
217 - $attachment_id_arr = $this->_m->query($sql);  
218 -  
219 - $attachment_id_str = $attachment_id_arr[0]['attachment']; 220 + $attachment_id_str = $this->getAttachmentIdByMsgId($message_id);
220 221
221 - $sql = "SELECT `path` FROM {$table_attachment} 222 + $attachment = [];
  223 + if ($attachment_id_str) {
  224 + $sql = "SELECT `path` FROM {$table_attachment}
222 WHERE attachment_id IN ($attachment_id_str)"; 225 WHERE attachment_id IN ($attachment_id_str)";
223 226
224 - $attachment = $this->_m->fetch_array($sql,$params); 227 + $attachment = $this->_m->fetch_array($sql,$params);
  228 + }
  229 +
225 230
226 $message['attachment'] = $attachment; 231 $message['attachment'] = $attachment;
227 232
@@ -254,7 +259,36 @@ class MessageModel extends AbstractModel @@ -254,7 +259,36 @@ class MessageModel extends AbstractModel
254 FROM __TABLE__ WHERE `message_id` = ? "; 259 FROM __TABLE__ WHERE `message_id` = ? ";
255 $attachment = $this->_m->fetch_row($sql,$params); 260 $attachment = $this->_m->fetch_row($sql,$params);
256 261
257 -  
258 return isset($attachment['attachment']) ? $attachment['attachment'] : ''; 262 return isset($attachment['attachment']) ? $attachment['attachment'] : '';
259 } 263 }
  264 +
  265 + /**
  266 + * 留言审核
  267 + * User: <362431947@qq.com>
  268 + * @param int $message_id
  269 + * @return bool
  270 + * Date: 2018-10-11 Time: 21:32
  271 + */
  272 + public function check($message_id = 0,$checked = 1)
  273 + {
  274 +// // 未审核状态
  275 +// $conds = [
  276 +// 'message_id' => $message_id,
  277 +// ];
  278 +
  279 + $exists = $this->_m->field('message_id')->find($message_id);
  280 +
  281 + if ($exists) {
  282 +
  283 + $data = [
  284 + 'checked' =>$checked,
  285 + ];
  286 +
  287 + return $this->update($message_id,$data,true);
  288 + }
  289 + else{
  290 + return false;
  291 + }
  292 +
  293 + }
260 } 294 }
trunk/Message/Common/Sql/structure.php
@@ -46,25 +46,6 @@ CREATE TABLE IF NOT EXISTS `zx_message_message`( @@ -46,25 +46,6 @@ CREATE TABLE IF NOT EXISTS `zx_message_message`(
46 INDEX(`deleted`) 46 INDEX(`deleted`)
47 )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='留言板-留言信息表'; 47 )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='留言板-留言信息表';
48 48
49 --- 留言与评论关联表  
50 -CREATE TABLE IF NOT EXISTS `zx_message_msg_comment`(  
51 - `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',  
52 - `message_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '留言记录id',  
53 - `comment_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '评论记录id',  
54 - `domain` varchar(32) NOT NULL DEFAULT '' COMMENT '企业域名',  
55 - `status` tinyint(3) unsigned NOT NULL DEFAULT 1 COMMENT '状态, 1=初始化,2=已更新,3=已删除',  
56 - `created` bigint(13) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',  
57 - `updated` bigint(13) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',  
58 - `deleted` bigint(13) unsigned NOT NULL DEFAULT 0 COMMENT '删除时间',  
59 - PRIMARY KEY(`id`),  
60 - INDEX(`message_id`),  
61 - INDEX(`comment_id`),  
62 - INDEX(`domain`),  
63 - INDEX(`status`),  
64 - INDEX(`created`),  
65 - INDEX(`updated`),  
66 - INDEX(`deleted`)  
67 -)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='留言与评论关联表';  
68 49
69 -- 评论表 50 -- 评论表
70 CREATE TABLE IF NOT EXISTS `zx_message_comment`( 51 CREATE TABLE IF NOT EXISTS `zx_message_comment`(
@@ -129,4 +110,24 @@ CREATE TABLE IF NOT EXISTS `zx_message_setting` ( @@ -129,4 +110,24 @@ CREATE TABLE IF NOT EXISTS `zx_message_setting` (
129 PRIMARY KEY (`id`), 110 PRIMARY KEY (`id`),
130 KEY `domain_status` (`domain`,`status`) 111 KEY `domain_status` (`domain`,`status`)
131 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='留言板-设置表'; 112 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='留言板-设置表';
  113 +
  114 +-- 留言与评论关联表
  115 +CREATE TABLE IF NOT EXISTS `zx_message_msg_comment`(
  116 + `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  117 + `message_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '留言记录id',
  118 + `comment_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '评论记录id',
  119 + `domain` varchar(32) NOT NULL DEFAULT '' COMMENT '企业域名',
  120 + `status` tinyint(3) unsigned NOT NULL DEFAULT 1 COMMENT '状态, 1=初始化,2=已更新,3=已删除',
  121 + `created` bigint(13) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
  122 + `updated` bigint(13) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
  123 + `deleted` bigint(13) unsigned NOT NULL DEFAULT 0 COMMENT '删除时间',
  124 + PRIMARY KEY(`id`),
  125 + INDEX(`message_id`),
  126 + INDEX(`comment_id`),
  127 + INDEX(`domain`),
  128 + INDEX(`status`),
  129 + INDEX(`created`),
  130 + INDEX(`updated`),
  131 + INDEX(`deleted`)
  132 +)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='留言与评论关联表';
132 "; 133 ";