Commit 190dcfab758c0ec209979514234b7aa495bc0696
1 parent
0f42fbcc
'控制器优化'
Showing
4 changed files
with
80 additions
and
37 deletions
trunk/Message/Api/Controller/Message/ListController.class.php
@@ -27,7 +27,7 @@ class ListController extends AbstractController | @@ -27,7 +27,7 @@ class ListController extends AbstractController | ||
27 | 27 | ||
28 | $page = isset($input['page']) ? intval($input['page']) : 1; | 28 | $page = isset($input['page']) ? intval($input['page']) : 1; |
29 | 29 | ||
30 | - $message_list = $m_message->messageList($input,$page); | 30 | + $message_list = $m_message->message_list($input,$page); |
31 | 31 | ||
32 | $this->_result = $message_list; | 32 | $this->_result = $message_list; |
33 | } | 33 | } |
trunk/Message/Apicp/Controller/Message/DetailController.class.php
@@ -15,7 +15,7 @@ class DetailController extends \Apicp\Controller\AbstractController | @@ -15,7 +15,7 @@ class DetailController extends \Apicp\Controller\AbstractController | ||
15 | * User: <362431947@qq.com> | 15 | * User: <362431947@qq.com> |
16 | * Date: 2018-10-11 Time: 11:51 | 16 | * Date: 2018-10-11 Time: 11:51 |
17 | */ | 17 | */ |
18 | - public function detail_post() | 18 | + public function Index_post() |
19 | { | 19 | { |
20 | $input = I('post.'); | 20 | $input = I('post.'); |
21 | 21 |
trunk/Message/Apicp/Controller/Message/ListController.class.php
@@ -25,6 +25,6 @@ class ListController extends \Apicp\Controller\AbstractController | @@ -25,6 +25,6 @@ class ListController extends \Apicp\Controller\AbstractController | ||
25 | 25 | ||
26 | $m_message = new MessageModel(); | 26 | $m_message = new MessageModel(); |
27 | 27 | ||
28 | - $this->_result = $m_message->messageList($input,$page); | 28 | + $this->_result = $m_message->message_list($input,$page); |
29 | } | 29 | } |
30 | } | 30 | } |
31 | \ No newline at end of file | 31 | \ No newline at end of file |
trunk/Message/Common/Model/MessageModel.class.php
@@ -37,6 +37,14 @@ class MessageModel extends AbstractModel | @@ -37,6 +37,14 @@ class MessageModel extends AbstractModel | ||
37 | */ | 37 | */ |
38 | public function message_list($conds = [],$page = 0) | 38 | public function message_list($conds = [],$page = 0) |
39 | { | 39 | { |
40 | + $conds = $this->check_fields($conds); | ||
41 | + | ||
42 | + $title = isset($conds['title']) ? trim($conds['title']) : ''; | ||
43 | + unset($conds['title']); | ||
44 | + | ||
45 | + $message = isset($conds['message']) ? trim($conds['message']) : ''; | ||
46 | + unset($conds['message']); | ||
47 | + | ||
40 | if ($page < 1 || !$page) { | 48 | if ($page < 1 || !$page) { |
41 | $page = self::PAGING_DEFAULT_PAGE; | 49 | $page = self::PAGING_DEFAULT_PAGE; |
42 | } | 50 | } |
@@ -44,13 +52,25 @@ class MessageModel extends AbstractModel | @@ -44,13 +52,25 @@ class MessageModel extends AbstractModel | ||
44 | $params = []; | 52 | $params = []; |
45 | $wheres = []; | 53 | $wheres = []; |
46 | 54 | ||
47 | - $conds['a.status'] = $this->get_st_create(); | ||
48 | - | ||
49 | - | ||
50 | if (!$this->_parse_where($wheres, $params, $conds)) { | 55 | if (!$this->_parse_where($wheres, $params, $conds)) { |
51 | return false; | 56 | return false; |
52 | } | 57 | } |
53 | 58 | ||
59 | + | ||
60 | + $wheres[] = 'a.`status` < ?'; | ||
61 | + $params[] = $this->get_st_delete(); | ||
62 | + | ||
63 | + if ($title) { | ||
64 | + $wheres[] = 'a.`title` LIKE ?'; | ||
65 | + $params[] = "%$title%"; | ||
66 | + } | ||
67 | + | ||
68 | + if ($message) { | ||
69 | + $wheres[] = "a.`message` LIKE ?"; | ||
70 | + $params[] = "%$message%"; | ||
71 | + } | ||
72 | + | ||
73 | + | ||
54 | $page_size = self::PAGING_DEFAULT_LIMIT; | 74 | $page_size = self::PAGING_DEFAULT_LIMIT; |
55 | 75 | ||
56 | $page_start = ($page - 1) * $page_size; | 76 | $page_start = ($page - 1) * $page_size; |
@@ -63,48 +83,34 @@ class MessageModel extends AbstractModel | @@ -63,48 +83,34 @@ class MessageModel extends AbstractModel | ||
63 | $table = $m_person->get_tname(); | 83 | $table = $m_person->get_tname(); |
64 | 84 | ||
65 | 85 | ||
66 | - if (in_array('title',$conds)) { | ||
67 | - $where = " title LIKE '?' "; | ||
68 | - } | ||
69 | - else{ | ||
70 | - $fields = array_keys($conds); | ||
71 | - | ||
72 | - if ($fields != 'status') { | ||
73 | - $field = $fields[0]; | ||
74 | - } | ||
75 | - | ||
76 | - $where = " $field = ? "; | ||
77 | - | ||
78 | - } | ||
79 | - | ||
80 | $sql = "SELECT a.message_id,a.title,a.message,IFNULL(b.name,'') AS `from`,IFNULL(c.name,'') AS `to`,a.checked | 86 | $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 | 87 | FROM __TABLE__ a |
82 | LEFT JOIN {$table} b ON a.uid = b.person_id | 88 | LEFT JOIN {$table} b ON a.uid = b.person_id |
83 | LEFT JOIN {$table} c ON a.receiver_uid = c.person_id | 89 | LEFT JOIN {$table} c ON a.receiver_uid = c.person_id |
84 | - WHERE $where"; | 90 | + WHERE " . implode(' AND ', $wheres); |
85 | 91 | ||
86 | $list = $this->_m->fetch_array($sql, $params,$option); | 92 | $list = $this->_m->fetch_array($sql, $params,$option); |
87 | 93 | ||
88 | - $messageList['total'] = count($list); | ||
89 | - $messageList['page'] = $page; | ||
90 | - $messageList['limit'] = $page_size; | ||
91 | - $messageList['list'] = $list; | ||
92 | 94 | ||
93 | - return $messageList; | 95 | + $message_list['total'] = count($list); |
96 | + $message_list['page'] = $page; | ||
97 | + $message_list['limit'] = $page_size; | ||
98 | + $message_list['list'] = $list; | ||
99 | + | ||
100 | + return $message_list; | ||
94 | } | 101 | } |
95 | 102 | ||
96 | /** | 103 | /** |
97 | * 后台留言删除 | 104 | * 后台留言删除 |
98 | * User: <362431947@qq.com> | 105 | * User: <362431947@qq.com> |
99 | * @param int $message_id | 106 | * @param int $message_id |
100 | - * @return bool | ||
101 | - * Date: 2018-10-10 Time: 22:24 | 107 | + * @throws \Think\Exception |
108 | + * Date: 2018-10-14 Time: 22:07 | ||
102 | */ | 109 | */ |
103 | public function del($message_id = 0) | 110 | public function del($message_id = 0) |
104 | { | 111 | { |
105 | $this->_m->startTrans(); | 112 | $this->_m->startTrans(); |
106 | 113 | ||
107 | - | ||
108 | $attachment_id = $this->getAttachmentIdByMsgId($message_id); | 114 | $attachment_id = $this->getAttachmentIdByMsgId($message_id); |
109 | 115 | ||
110 | // 删除相关附件图片 | 116 | // 删除相关附件图片 |
@@ -114,8 +120,6 @@ class MessageModel extends AbstractModel | @@ -114,8 +120,6 @@ class MessageModel extends AbstractModel | ||
114 | $attachment_del = $m_attachment->del($attachment_id); | 120 | $attachment_del = $m_attachment->del($attachment_id); |
115 | } | 121 | } |
116 | 122 | ||
117 | - | ||
118 | - | ||
119 | // 删除留言 | 123 | // 删除留言 |
120 | $message_del = $this->_m->delete($message_id); | 124 | $message_del = $this->_m->delete($message_id); |
121 | 125 | ||
@@ -132,11 +136,10 @@ class MessageModel extends AbstractModel | @@ -132,11 +136,10 @@ class MessageModel extends AbstractModel | ||
132 | 136 | ||
133 | if ($message_del && $comment_del && $attachment_del) { | 137 | if ($message_del && $comment_del && $attachment_del) { |
134 | $this->_m->commit(); | 138 | $this->_m->commit(); |
135 | - return true; | ||
136 | } | 139 | } |
137 | else{ | 140 | else{ |
138 | $this->_m->rollback(); | 141 | $this->_m->rollback(); |
139 | - return false; | 142 | + E('_ERROR_DEL_MSG_FAIL'); |
140 | } | 143 | } |
141 | } | 144 | } |
142 | 145 | ||
@@ -266,8 +269,9 @@ class MessageModel extends AbstractModel | @@ -266,8 +269,9 @@ class MessageModel extends AbstractModel | ||
266 | * 留言审核 | 269 | * 留言审核 |
267 | * User: <362431947@qq.com> | 270 | * User: <362431947@qq.com> |
268 | * @param int $message_id | 271 | * @param int $message_id |
269 | - * @return bool | ||
270 | - * Date: 2018-10-11 Time: 21:32 | 272 | + * @param int $checked |
273 | + * @throws \Think\Exception | ||
274 | + * Date: 2018-10-14 Time: 22:05 | ||
271 | */ | 275 | */ |
272 | public function check($message_id = 0,$checked = 1) | 276 | public function check($message_id = 0,$checked = 1) |
273 | { | 277 | { |
@@ -284,11 +288,50 @@ class MessageModel extends AbstractModel | @@ -284,11 +288,50 @@ class MessageModel extends AbstractModel | ||
284 | 'checked' =>$checked, | 288 | 'checked' =>$checked, |
285 | ]; | 289 | ]; |
286 | 290 | ||
287 | - return $this->update($message_id,$data,true); | 291 | + $result = $this->update($message_id,$data,true); |
292 | + | ||
293 | + if (!$result) { | ||
294 | + E('_ERROR_CHECK_MSG_FAIL'); | ||
295 | + } | ||
288 | } | 296 | } |
289 | else{ | 297 | else{ |
290 | - return false; | 298 | + E('_ERROR_MSG_NOT_EXISTS'); |
299 | + } | ||
300 | + | ||
301 | + } | ||
302 | + | ||
303 | + /** | ||
304 | + * 验证字段有效性 | ||
305 | + * User: <362431947@qq.com> | ||
306 | + * @param array $conds | ||
307 | + * @return array | ||
308 | + * Date: 2018-10-14 Time: 19:14 | ||
309 | + */ | ||
310 | + private function check_fields($conds = []) | ||
311 | + { | ||
312 | + $tmp = []; | ||
313 | + | ||
314 | + // 姓名、性别(选择)、手机号、邮箱、留言标题以及留言内容 | ||
315 | + $check_fields = ['name','sex','mobile','email','title','message']; | ||
316 | + $check_person_fields = ['name','sex','mobile','email']; | ||
317 | + | ||
318 | + if (!$conds) { | ||
319 | + return $conds; | ||
320 | + } | ||
321 | + | ||
322 | + foreach ($conds as $key => $value) { | ||
323 | + if (!$value || !in_array($key, $check_fields)) { | ||
324 | + unset($conds[$key]); | ||
325 | + continue; | ||
326 | + } | ||
327 | + | ||
328 | + if (in_array($key, $check_person_fields)) { | ||
329 | + $k = 'b.' . $key; | ||
330 | + $conds[$k] = $conds[$key]; | ||
331 | + unset($conds[$key]); | ||
332 | + } | ||
291 | } | 333 | } |
292 | 334 | ||
335 | + return $conds; | ||
293 | } | 336 | } |
294 | } | 337 | } |