Files
2025-09-22 18:52:07 +08:00

309 lines
9.2 KiB
PHP

<?php
namespace app\adminapi\controller;
use app\admin\model\AdminLog;
use app\common\controller\adminApi;
use think\Config;
use think\Db;
use think\Hook;
use think\Session;
use think\Validate;
/**
* 青少年模式
* @internal
*/
class Underage extends adminApi
{
protected $noNeedLogin = [];
protected $noNeedRight = [];
public function _initialize()
{
parent::_initialize();
}
public function types_list()
{
$page = $this->request->get('page', 1);
$page_limit = $this->request->get('page_limit', 30);
$search_name = $this->request->get('search_name', '');
$where = [];
if ($search_name) {
$where['type_name'] = ['like', '%' . $search_name . '%'];
}
$count = Db::name('vs_underage_mode_type')
->where($where)
->count();
$lists = Db::name('vs_underage_mode_type')
->where($where)
->where('is_delete', 1)
->order(['sort'=>'asc', 'id' => 'desc'])
->page($page, $page_limit)
->select();
$return_lists = [];
foreach ($lists as $key =>$value) {
$return_lists[$key]['id'] = $value['id'];
$return_lists[$key]['name'] = $value['type_name'];
$return_lists[$key]['num'] = Db::name('vs_underage_mode_content')
->where('type_id', $value['id'])
->where('is_delete', 1)
->count();
$return_lists[$key]['status'] = $value['status'];
$return_lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
$return_lists[$key]['admin'] = Db::name('admin')
->where('id', $value['admin_id'])
->value('username');
$return_lists[$key]['sort'] = $value['sort'];
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $return_lists
];
return V(1,"成功", $return_data);
}
/*
* 添加
*/
public function types_add(){
$admin_id = Session::get('id');
$type_name = input('type_name', "");
$sort = input('sort', 0);
$status = input('status', 1);
if(!$type_name){
return V(0, "请填写分类名称");
}
$data = [
'type_name' => $type_name,
'admin_id' => $admin_id,
'sort' => $sort,
'status' => $status,
'createtime' => time()
];
$res = Db::name('vs_underage_mode_type')->insert($data);
if(!$res){
return V(0, "添加失败");
}
return V(1, "添加成功");
}
/**
* 编辑
*/
public function types_edit(){
$id = input('id','');
$type_name = input('type_name');
$sort = input('sort', 0);
$status = input('status', '');
if(!$id){
return V(0, "参数错误");
}
$type = Db::name('vs_underage_mode_type')->where('id', $id)->find();
if(!$type){
return V(0, "参数错误");
}
$data = [];
if($type_name){
$data['type_name'] = $type_name;
}
if($sort){
$data['sort'] = $sort;
}
if($status){
$data['status'] = $status;
}
$reslut = DB::name('vs_underage_mode_type')->where('id', $id)->update($data);
if(!$reslut){
return V(0, "修改失败");
}
return V(1, "修改成功");
}
/*
* 状态修改
*/
public function types_change_status(){
$id = input('id');
$status = input('status');
if(!$id){
return V(0, "参数错误");
}
if(!$status){
return V(0, "参数错误");
}
$reslut = DB::name('vs_underage_mode_type')->where('id', $id)->update(['status' => $status]);
if(!$reslut){
return V(0, "修改失败");
}
return V(1, "修改成功");
}
/*
* 删除
*/
public function types_delete(){
$id = input('id');
if(!$id){
return V(0, "参数错误");
}
$reslut = DB::name('vs_underage_mode_type')->where('id', $id)->update(['is_delete' => 0,'delete_time'=>time()]);
if(!$reslut){
return V(0, "删除失败");
}
return V(1, "删除成功");
}
/*
* 未成年模式内容列表
*/
public function content_List(){
$page = input('page', 1);
$page_limit = input('page_limit', 10);
$search_name = input('search_name', '');
$where = [];
if($search_name){
$where['title'] = ['like', '%'.$search_name.'%'];
}
$list = DB::name('vs_underage_mode_content')->where($where)->order('sort,id', 'asc')->page($page, $page_limit)->select();
$count = DB::name('vs_underage_mode_content')->where($where)->count();
$return_lists = [];
foreach ($list as $key => $value) {
$return_lists[$key]['id'] = $value['id'];
$return_lists[$key]['type_id'] = $value['type_id'];
$return_lists[$key]['type_name'] = db('vs_underage_mode_type')->where('id', $value['type_id'])->value('type_name');
$return_lists[$key]['title'] = $value['title'];
$return_lists[$key]['img'] = $value['img'];
$return_lists[$key]['url'] = $value['url'];
$return_lists[$key]['is_top'] = $value['is_top'];
$return_lists[$key]['admin'] = db('admin')->where('id', $value['admin_id'])->value('username');
$return_lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
$return_lists[$key]['introduced'] = $value['introduced'];
$return_lists[$key]['from'] = $value['from'];
$return_lists[$key]['content'] = $value['content'];
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $return_lists
];
return V(1,"成功", $return_data);
}
/*
* 未成年模式内容详情
*/
public function content_detail(){
$id=input('id', '');
if(empty($id)){
return V(0,"参数错误");
}
$data = db('vs_underage_mode_content')->where(['id'=>$id])->find();
return V(1,"成功", $data);
}
/*
* 内容添加
*/
public function content_add(){
$admin_id = session('admin_id');
$type_id = input('type_id', '');
$title = input('title', '');
$introduced = input('introduced', '');
$content = input('content', '');
$url = input('url', '');
$img = input('img', '');
$from = input('from', 1);
$sort = input('sort', '');
$is_top = input('is_top', 0);
if(!$title){
return V(0,"标题必填");
}
if(!$introduced){
return V(0,"简介必填");
}
//简介不能超过100字
if(mb_strlen($introduced) > 100){
return V(0,"简介不能超过100字");
}
$data = [
'type_id' => $type_id,
'title' => $title,
'introduced' => $introduced,
'content' => $content,
'url' => $url,
'img' => $img,
'from' => $from,
'sort' => $sort,
'is_top' => $is_top,
'createtime' => time(),
'admin_id' => $admin_id,
];
$result = db::name('vs_underage_mode_content')->insertGetId($data);
if(!$result){
return V(0,"失败");
}
return V(1,"成功");
}
/*
* 删除
*/
public function content_del(){
$id = input('id',0);
if(!$id){
return V(0,"参数错误");
}
$result = db::name('vs_underage_mode_content')->where('id',$id)->delete();
if(!$result){
return V(0,"失败");
}
return V(1,"成功");
}
/*
* 编辑
*/
public function content_edit(){
$id = input('id',0);
$type_id = input('type_id', '');
$title = input('title', '');
$introduced = input('introduced', '');
$content = $_POST['content']??"";
$url = input('url', '');
$img = input('img', '');
$from = input('from', 1);
$sort = input('sort', '');
$is_top = input('is_top', 0);
if(!$id){
return V(0,"参数错误");
}
if($type_id){
$data['type_id'] = $type_id;
}
if($title){
$data['title'] = $title;
}
if($url){
$data['url'] = $url;
}
if($img){
$data['img'] = $img;
}
if($sort){
$data['sort'] = $sort;
}
if($is_top){
$data['is_top'] = $is_top;
}
if($from){
$data['from'] = $from;
}
if($introduced){
$data['introduced'] = $introduced;
}
if($content){
$data['content'] = $content;
}
$result = db::name('vs_underage_mode_content')->where(['id'=>$id])->update($data);
return V(1,"成功", ['id'=>$id]);
}
}