Files
yusheng-php/application/adminapi/controller/UserZone.php
2025-08-07 20:21:47 +08:00

188 lines
6.7 KiB
PHP

<?php
namespace app\adminapi\controller;
use app\common\controller\adminApi;
use think\Db;
class UserZone extends adminApi
{
protected $noNeedLogin = [];
protected $noNeedRight = ['zone_lists','topic_lists','zone_detail','add_topic','del_zone','del_comment','zone_top_or_show','del_topic'];
protected $table = 'user_zone';
public function _initialize()
{
parent::_initialize();
}
/**
* 话题列表
*/
public function topic_lists(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$search_name = input('search_name', '');
$where=[];
//标签名称
if($search_name != ''){
$where['title'] = ['like', '%'.$search_name.'%'];
}
$count = db::name('topic')->where($where)->count();
$lists = db::name('topic')->where($where)->order('createtime desc')->page($page, $page_limit)->select();
foreach ($lists as &$value) {
if($value['createtime'] > 0){
$value['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
}
if($value['updatetime'] > 0){
$value['updatetime'] = date('Y-m-d H:i:s', $value['updatetime']);
}
$value['num'] = db::name('user_zone_topic')->where(['topic_id'=>$value['id']])->count();
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists
];
return V(1,"成功", $return_data);
}
//添加话题
public function add_topic(){
$id = input('id', 0);
$title = input('title', '');
$content = input('content', '');
$pic = input('pic', '');
if($title){
$data['title'] = '#'.$title;
}
if($content){
$data['content'] = $content;
}
if($pic){
$data['pic'] = $pic;
}
$data['createtime'] = time();
if($id > 0){
$res = db::name('topic')->where(['id'=>$id])->update($data);
}else{
$res = db::name('topic')->insert($data);
}
return V($res ? 1 : 0, $res ? '添加成功' : '添加失败');
}
//删除话题
public function del_topic(){
$id = input('id', 0);
$res = db::name('topic')->where(['id'=>$id])->update(['is_delete'=> time(),'updatetime'=> time()]);
return V($res ? 1 : 0, $res ? '删除成功' : '删除失败');
}
//动态列表
public function zone_lists(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$search_name = input('search_name', '');
$where['is_delete'] = 1;
//标签名称
if($search_name != ''){
$where['content'] = ['like', '%'.$search_name.'%'];
}
$count = db::name('user_zone')->where($where)->count();
$lists = db::name('user_zone')->where($where)->order('createtime desc')->page($page, $page_limit)->select();
foreach ($lists as &$value) {
if($value['createtime'] > 0){
$value['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
}
if($value['updatetime'] > 0){
$value['updatetime'] = date('Y-m-d H:i:s', $value['updatetime']);
}
if($value['delete_time'] > 0){
$value['delete_time'] = date('Y-m-d H:i:s', $value['delete_time']);
}
if($value['images']){
$value['images'] = explode(',', $value['images'])[0];
}
$value['rewards_num'] = db::name('user_zone_rewards')->where(['zone_id'=>$value['id']])->sum('gift_price_total');
$value['topic_title'] = db::name('topic')->where(['id'=>$value['topic_id']])->value('title');
$value['user_nickname'] = db::name('user')->where(['id'=>$value['user_id']])->value('nickname').'-'.
db::name('user')->where(['id'=>$value['user_id']])->value('user_code');
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists
];
return V(1,"成功", $return_data);
}
//动态详情
public function zone_detail(){
$id = input('id', 0);
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$detail = db::name('user_zone')->where(['id'=>$id])->find();
if($detail){
if($detail['createtime'] > 0){
$detail['createtime'] = date('Y-m-d H:i:s', $detail['createtime']);
}
if($detail['updatetime'] > 0){
$detail['updatetime'] = date('Y-m-d H:i:s', $detail['updatetime']);
}
//打赏金额
$detail['rewards_num'] = db::name('user_zone_rewards')->where(['zone_id'=>$detail['id']])->sum('gift_price_total');
//打赏人数
$detail['rewards_user_num'] = db::name('user_zone_rewards')->where(['zone_id'=>$detail['id']])->count();
//标签
$detail['title'] = [];
if(isset($detail['topic_id'])){
$top = explode(',', $detail['topic_id']);
foreach ($top as $kk){
$title = db::name('topic')->where(['id' => $kk])->find();
if(isset($title)){
$title['topic_id'] = $title['id'];
}
$detail['title'][] =$title?? [];
}
}
//评论列表
$coment = model('api/UserZone')->getCommentsWithReplies($detail['id'], $page, $page_limit);
$detail['comment_lists'] = $coment['data'];
}
return V(1,"成功", $detail);
}
//删除动态
public function del_zone(){
$id = input('id', 0);
$res = db::name('user_zone')->where(['id'=>$id])->update(['is_delete'=> 2,'delete_time'=> time()]);
return V($res ? 1 : 0, $res ? '删除成功' : '删除失败');
}
//删除评论
public function del_comment(){
$id = input('id', 0);
$res = db::name('user_zone_comment')->where(['id'=>$id])->update(['is_delete'=> 2,'updatetime'=> time()]);
return V($res ? 1 : 0, $res ? '删除成功' : '删除失败');
}
//动态置顶或显示操作操作
public function zone_top_or_show(){
$id = input('id', 0);
$type = input('type', 0);
$status = input('status', 0);
if($type ==1){
$data['is_recommend'] = $status;
}else{
$data['show_status'] = $status;
}
$data['updatetime'] = time();
$res = db::name('user_zone')->where(['id'=>$id])->update($data);
return V($res ? 1 : 0, $res ? '操作成功' : '操作失败');
}
}