Is_Login();
// 权限校验
$this->Is_Power();
}
/**
* [Index 冒泡]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-03-02T22:48:35+0800
*/
public function Index()
{
// 参数
$param = array_merge($_POST, $_GET);
// 条件
$where = $this->GetIndexWhere();
// 模型
$m = M('Mood');
// 分页
$number = MyC('admin_page_number');
$page_param = array(
'number' => $number,
'total' => $m->alias('m')->join('__USER__ AS u ON m.user_id=u.id')->where($where)->count(),
'where' => $param,
'url' => U('Admin/Bubble/Index'),
);
$page = new \My\Page($page_param);
// 查询字段
$field = array('m.id', 'm.user_id', 'm.content', 'm.visible', 'm.add_time', 'u.nickname');
// 数据处理
$data = $this->MoodDataHandle($m->alias('m')->join('__USER__ AS u ON m.user_id=u.id')->field($field)->where($where)->limit($page->GetPageStarNumber(), $number)->order('m.id desc')->select());
$this->assign('data', $data);
// 分页
$this->assign('page_html', $page->GetPageHtml());
// 参数
$this->assign('param', $param);
// 基础数据
$this->assign('common_user_visible_list', L('common_user_visible_list'));
$this->assign('bubble_nav_list', L('bubble_nav_list'));
$this->display('Index');
}
/**
* [GetIndexWhere 条件]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-10T22:16:29+0800
*/
private function GetIndexWhere()
{
$where = array();
// 模糊
if(!empty($_REQUEST['keyword']))
{
$like_keyword = array('like', '%'.I('keyword').'%');
$where[] = array(
'u.nickname' => $like_keyword,
'u.mobile' => $like_keyword,
'u.email' => $like_keyword,
'm.content' => $like_keyword,
'_logic' => 'or',
);
}
// 是否更多条件
if(I('is_more', 0) == 1)
{
// 表达式
if(!empty($_REQUEST['time_start']))
{
$where['m.add_time'][] = array('gt', strtotime(I('time_start')));
}
if(!empty($_REQUEST['time_end']))
{
$where['m.add_time'][] = array('lt', strtotime(I('time_end')));
}
}
return $where;
}
/**
* [MoodDataHandle 说说数据处理]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-04-08T20:14:19+0800
* @param [array] $data [需要处理的数据]
* @return [array] [处理好的说说数据]
*/
private function MoodDataHandle($data)
{
if(!empty($data) && is_array($data))
{
$mp = M('MoodPraise');
$mc = M('MoodComments');
foreach($data as $k=>&$v)
{
// 昵称
if(empty($v['nickname']))
{
$v['nickname'] = L('common_bubble_mood_nickname');
}
// 发表时间
$v['add_time'] = date('m-d H:i', $v['add_time']);
// 点赞
$v['praise_count'] = $mp->where(array('mood_id'=>$v['id']))->count();
$v['praise_list'] = $mp->alias('mp')->join('__USER__ AS u ON u.id=mp.user_id')->field(array('mp.id', 'mp.add_time', 'u.nickname'))->where(array('mp.mood_id'=>$v['id']))->order('id desc')->select();
// 评论总数
$v['comments_count'] = $mc->where(array('mood_id'=>$v['id']))->count();
// 评论列表
$v['comments'] = $this->GetMoodComments($v['id']);
}
}
return $data;
}
/**
* [GetMoodComments 获取说说评论]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-04-10T14:38:00+0800
* @param [int] $mood_id [说说id]
* @return [array] [评论列表]
*/
private function GetMoodComments($mood_id)
{
if(empty($mood_id))
{
return array();
}
// 评论列表
$m = M('MoodComments');
$field = array('mc.id', 'mc.user_id', 'mc.content', 'mc.reply_id', 'mc.add_time', 'u.nickname');
$where = array('m.id'=>$mood_id, 'mc.reply_id'=>0);
$data = $m->alias('mc')->join('__MOOD__ AS m ON mc.mood_id=m.id')->join('__USER__ AS u ON mc.user_id=u.id')->field($field)->where($where)->order('mc.id asc')->select();
// 回复列表
if(!empty($data))
{
$u = M('User');
foreach($data as &$v)
{
// 评论时间
$v['add_time'] = date('m-d H:i', $v['add_time']);
// 评论内容
$v['content'] = str_replace("\n", "
", $v['content']);
$item_where = array('m.id'=>$mood_id, 'mc.parent_id'=>$v['id'], 'reply_id'=>array('gt', 0));
$item = $m->alias('mc')->join('__MOOD__ AS m ON mc.mood_id=m.id')->join('__USER__ AS u ON mc.user_id=u.id')->field($field)->where($item_where)->order('mc.id asc')->select();
if(!empty($item))
{
foreach($item as &$vs)
{
// 评论时间
$vs['add_time'] = date('m-d H:i', $vs['add_time']);
// 评论内容
$vs['content'] = str_replace("\n", "
", $vs['content']);
// 被回复的用户
if($vs['reply_id'] > 0)
{
$uid = $m->where(array('id'=>$vs['reply_id']))->getField('user_id');
if(!empty($uid))
{
$user = $u->field(array('id AS reply_user_id', 'nickname AS reply_nickname'))->find($uid);
if(empty($user['reply_nickname']))
{
$user['reply_nickname'] = L('common_bubble_mood_nickname');
}
$vs = array_merge($vs, $user);
}
}
}
$v['item'] = $item;
}
}
}
return $data;
}
/**
* [MoodDelete 说说删除]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function MoodDelete()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error(L('common_unauthorized_access'));
}
// 参数
$m = M('Mood');
$id = I('id');
// 开启事务
$m->startTrans();
// 数据删除[说说,点赞,评论]
$mood_state = $m->where(array('id'=>$id))->delete();
$praise_state = M('MoodPraise')->where(array('mood_id'=>$id))->delete();
$comments_state = M('MoodComments')->where(array('mood_id'=>$id))->delete();
if($mood_state !== false && $praise_state !== false && $comments_state !== false)
{
// 提交事务
$m->commit();
$this->ajaxReturn(L('common_operation_delete_success'));
} else {
// 回滚事务
$m->rollback();
$this->ajaxReturn(L('common_operation_delete_error'), -100);
}
}
/**
* [MoodPraiseDelete 说说点赞删除]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function MoodPraiseDelete()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error(L('common_unauthorized_access'));
}
// 数据删除
if(M('MoodPraise')->delete(I('id')))
{
$this->ajaxReturn(L('common_operation_delete_success'));
} else {
$this->ajaxReturn(L('common_operation_delete_error'), -100);
}
}
/**
* [MoodCommentsDelete 说说评论删除]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-25T22:36:12+0800
*/
public function MoodCommentsDelete()
{
// 是否ajax请求
if(!IS_AJAX)
{
$this->error(L('common_unauthorized_access'));
}
// 参数
$id = I('id');
// 模型
$m = M('MoodComments');
// 开启事务
$m->startTrans();
// 数据删除
$state = $m->where(array('id'=>$id))->delete();
$item_state = $m->where(array('parent_id'=>$id))->delete();
$reply_state = $m->where(array('reply_id'=>$id))->delete();
if($state !== false && $item_state !== false && $reply_state !== false)
{
// 提交事务
$m->commit();
$this->ajaxReturn(L('common_operation_delete_success'));
} else {
// 回滚事务
$m->rollback();
$this->ajaxReturn(L('common_operation_delete_error'), -100);
}
}
}
?>