public function removeFeed()
{
$return = array('status' => 0, 'data' => L('PUBLIC_DELETE_FAIL'), 'msg' => '');
// 删除失败
$feed_id = intval($_POST['feed_id']);
$feed = model('Feed')->getFeedInfo($feed_id);
// 不存在时
if (!$feed) {
$return['msg'] = '不存在';
exit(json_encode($return));
}
// 非作者时
if ($feed['uid'] != $this->mid) {
// 没有管理权限不可以删除
if (!CheckPermission('core_admin', 'feed_del')) {
$return['msg'] = '没有权限';
exit(json_encode($return));
}
// 是作者时
} else {
// 没有前台权限不可以删除
if (!CheckPermission('core_normal', 'feed_del')) {
$return['msg'] = '没有前台权限';
exit(json_encode($return));
}
}
// 执行删除操作
$return = model('Feed')->doEditFeed($feed_id, 'delFeed', '', $this->mid);
// 执行应用信息相关删除
switch ($feed['type']) {
case 'photo_post':
$photoList = D('photo')->where('feed_id=' . $feed_id)->findAll();
foreach ($photoList as $photoInfo) {
$photoId = $photoInfo['id'];
if (D('Album', 'photo')->deletePhoto($photoId, $photoInfo['userId'])) {
model('Credit')->setUserCredit($photoInfo['userId'], 'delete_photo');
}
}
break;
case 'vote_post':
$voteInfo = D('vote')->where('feed_id=' . $feed_id)->find();
$voteId = $voteInfo['id'];
if (D('Vote', 'vote')->doDeleteVote($voteId)) {
model('Credit')->setUserCredit($voteInfo['uid'], 'delete_vote');
}
break;
case 'event_post':
$eventInfo = D('event')->where('feed_id=' . $feed_id)->find();
$eventId = $eventInfo['id'];
D('Event', 'event')->doDeleteEvent($eventId);
break;
case 'blog_post':
$blogInfo = D('blog')->where('feed_id=' . $feed_id)->find();
$blogId = $blogInfo['id'];
$bmap['id'] = $blogId;
if (D('Blog', 'blog')->doDeleteblog($bmap, $blogInfo['uid'])) {
model('Credit')->setUserCredit($blogInfo['uid'], 'delete_blog');
}
break;
case 'weiba_post':
$postInfo = D('weiba_post')->where('feed_id=' . $feed_id)->find();
$postId = $postInfo['post_id'];
$weibaId = $postInfo['weiba_id'];
if (D('weiba_post')->where('post_id=' . $postId)->setField('is_del', 1)) {
$postDetail = D('weiba_post')->where('post_id=' . $postId)->find();
D('Log', 'weiba')->writeLog($postDetail['weiba_id'], $this->mid, '删除了帖子“' . $postDetail['title'] . '”', 'posts');
D('weiba')->where('weiba_id=' . $weibaId)->setDec('thread_count');
model('Credit')->setUserCredit($postInfo['post_uid'], 'delete_topic');
}
break;
}
// 删除失败或删除成功的消息
$return['data'] = $return['status'] == 0 ? L('PUBLIC_DELETE_FAIL') : L('PUBLIC_DELETE_SUCCESS');
// 批注:下面的代码应该挪到FeedModel中
// 删除话题相关信息
$return['status'] == 1 && model('FeedTopic')->deleteWeiboJoinTopic($feed_id);
// 删除频道关联信息
D('Channel', 'channel')->deleteChannelLink($feed_id);
// 删除@信息
model('Atme')->setAppName('Public')->setAppTable('feed')->deleteAtme(null, $feed_id, null);
// 删除话题信息
$topics = D('feed_topic_link')->where('feed_id=' . $feed_id)->field('topic_id')->findAll();
D('feed_topic_link')->where('feed_id=' . $feed)->delete();
$tpmap['topic_id'] = array('in', getSubByKey($topics, 'topic_id'));
model('FeedTopic')->where($tpmap)->setDec('count');
exit(json_encode($return));
}