📖 File Reader
<?php
namespace app\admin\controller;
use adminCreate\form\Form;
use app\admin\common\Common_config;
use think\facade\Db;
use think\facade\View;
class Ad extends Base
{
/*广告列表*/
public function ad_list(){
$list = db::name("ad_act")->order("id asc")->select();
View::assign([
'list'=>$list,
]);
return View::fetch();
}
/*广告信息*/
public function ad_list_ajax()
{
$title = input("param.title");
$act_id = input("param.act_id");
$where = 1;
if (!empty($title)){
$where .= " and a.name like '%".$title."%'";
}
if (!empty($act_id)){
$where .= " and a.act_id = $act_id";
}
$list = db::name("ad")->alias("a")
->join("ad_act b","a.act_id = b.id","LEFT")
->field("a.*,b.name as name_act")
->where($where)
->order("a.sort desc")
->page($this->page,$this->limit)
->select();
$list = json_decode($list,true);
foreach ($list as $k => $v){
$list[$k]["img"] = str_replace('\\',"/",$v["img"]);
$list[$k]["add_time"] = date("Y-m-d H:i",$v["add_time"]);
}
$count = db::name("ad")->alias("a")
->join("ad_act b","a.act_id = b.id","LEFT")
->where($where)
->count();
return $this->layui_json($count,$list);
}
/*广告列表字段修改*/
public function ad_list_field_update()
{
$id = input("param.id");
$field_name = input("param.field_name");
$info[$field_name] = input("param.value");
db::name("ad")->where("id = $id")->data($info)->update();
return $this->succeed_json("操作成功");
}
/*广告查询*/
public function ad_info()
{
$id = input("param.id");
$info = db::name("ad")->where("id = $id")->find();
$data = [
'info'=>$info,
];
return $this->succeed_json("ok",$info);
}
/*广告上传*/
public function ad_upload()
{
$id = input("param.id");
if (input("post.")) {
header("Content-Type:text/html; charset=utf-8");
$info = [
'name'=>input("param.name"),
'describe'=>input("param.describe")!=''?input("param.describe"):'',
'link'=>input("param.link")!=''?input("param.link"):'',
'sort'=>input("param.sort")!=''?input("param.sort"):'',
'act_id'=>input("param.act_id"),
'img'=>implode(",",input("param.img")) ,
'type'=>input("param.type"),
'add_time'=>time(),
];
if (empty($id)){
db::name("ad")->insertGetId($info);
}else{
db::name("ad")->where("id = $id")->data($info)->update();
}
return $this->succeed_json("操作成功");
}else{
$info = ['name'=>'','act_id'=>0,'describe'=>'','img'=>'','link'=>'','sort'=>0];
if (!empty($id)){
$info = db::name("ad")->where("id = $id")->find();
}
$form = new Form();
$form->tabs('tabs1', '基本信息');
$form->input('name', '广告名称',$info["name"])->required()->tabs("tabs1");
$form->selectOne('act_id', '所属分类',$info["act_id"])->setOptions(function(){
$list_act = db::name("ad_act")->order("id asc")->select()->toArray();
$menus = [];
foreach ($list_act as $k => $v){
$menus[] = ['label'=>$v["name"],'value'=>$v["id"]];
}
return $menus;
})->multiple(false)->filterable(false)->required()->tabs("tabs1");
$form->upload('img', '缩略图', '/admin/ad/uploads', [$info["img"]])->nultiple(false)->required('',"array")->tabs("tabs1");
// $form->input('describe', '简单描述',$info["describe"])->type('textarea')->tabs("tabs1");
// $form->input('link', '外部连接',$info["link"])->tabs("tabs1");
// $form->number('sort', '排序',$info["sort"])->tabs("tabs1");
$form->hidden('id',$id);
$form->hidden('type',1);
$form->button('/admin/Ad/ad_upload');
return $form;
}
}
/*广告删除*/
public function ad_del()
{
$id = input("param.id");
db::name("ad")->where("id = $id")->delete();
return $this->succeed_json("删除成功");
}
/*图片上传*/
public function selectImg()
{
$name = input("param.name");
if (!empty($_FILES[$name]['name'])) {
$img = '/public/uploads/'.$this->upload($name);
}else{
return $this->error_json("参数错误");
}
$data = [
'img'=>$img,
];
return $this->succeed_json("ok",$data);
}
/*广告所属分类*/
public function ad_act(){
return View::fetch();
}
/*全部分类*/
public function act_list()
{
$list = db::name("ad_act")->order("id asc")->select();
$data = [
'list'=>$list,
];
return $this->succeed_json("ok",$data);
}
/*广告列表数据*/
public function ad_act_ajax()
{
$keyword = input("param.keyword");
$where = 1;
if (!empty($keyword)){
$where .= " and name like '%".$keyword."%'";
}
$list = db::name("ad_act")->where($where)->order("sort desc")->page($this->page,$this->limit)->select()->toArray();
//获取总页数
$count = db::name("ad_act")->where($where)->count();
return $this->layui_json($count,$list);
}
/*广告分类列表字段修改*/
public function act_field_update()
{
$id = input("param.id");
$field_name = input("param.field_name");
$info[$field_name] = input("param.value");
db::name("ad_act")->where("id = $id")->data($info)->update();
return $this->succeed_json("操作成功");
}
/*是否为系统广告*/
public function act_is_system_edit()
{
$id = input("param.id");
$is_system = db::name("ad_act")->where("id = $id")->value("is_system");
if ($is_system == 1){
$info["is_system"] = 0;
}else{
$info["is_system"] = 1;
}
db::name("ad_act")->where("id = $id")->data($info)->update();
return $this->succeed_json("ok");
}
/*分类数据查看*/
public function ad_act_info()
{
$id = input("param.id");
$act_info = db::name("ad_act")->where("id = $id")->find();
$data = [
'act_info'=>$act_info,
];
return $this->succeed_json("ok",$data);
}
/*分类数据提交*/
public function ad_act_upload()
{
$id = input("param.id");
if (input("post.")){
$info = [
'name'=>input("param.name"),
'sort'=>input("param.sort"),
];
if (empty($id)){
db::name("ad_act")->insertGetId($info);
}else{
db::name("ad_act")->where("id = $id")->data($info)->update();
}
return $this->succeed_json("操作成功");
}else{
$info = ['name'=>'','sort'=>0];
if (!empty($id)){
$info = db::name("ad_act")->where("id = $id")->find();
}
$form = new Form();
$form->tabs('tabs1', '基本信息');
$form->input('name', '分类名称',$info["name"])->required()->tabs('tabs1');
$form->number('sort', '排序',$info["sort"])->required('','number')->tabs('tabs1');
$form->button('/admin/Ad/ad_act_upload');
$form->hidden('id',$id);
return $form;
}
}
/*分类删除*/
public function ad_act_del()
{
$id = input("param.id");
$count = db::name("ad")->where("act_id = $id")->count();
if (!empty($count)){
return $this->error_json("已存在广告不可删除!");
}
db::name("ad_act")->where("id = $id")->delete();
return $this->succeed_json("删除成功");
}
/*上传处理*/
public function uploads()
{
$config = Common_config::config("'url'");
$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
$url = $config["url"] != ''?$config["url"]:$http_type . $_SERVER['HTTP_HOST'];
if (!empty($_FILES["imageData"])){
$url .= '/public/uploads/'.$this->upload('imageData');
return $this->succeed_json("ok",$url);
}
if (!empty($_FILES["videoData"])){
$url .= '/public/uploads/'.$this->upload('videoData');
return $this->succeed_json("ok",$url);
}
if (!empty($_FILES["file"])){
$url = '/public/uploads/'.$this->upload('file');
return $this->succeed_json("ok",['filePath'=>$url,'name'=>$_FILES["file"]["name"]]);
}
}
/*文件删除*/
public function file_del()
{
$file = input("param.file");
$preg = "/^http(s)?:\\/\\/.+/";
if(!preg_match($preg,$file)) {
$file_link = $_SERVER['DOCUMENT_ROOT'].$file;
}else{
$host = parse_url($file, PHP_URL_HOST);
$file_link = str_replace("http://".$host,$_SERVER['DOCUMENT_ROOT'],$file);
$file_link = str_replace("https://".$host,$_SERVER['DOCUMENT_ROOT'],$file_link);
}
if (file_exists($file_link)) {
unlink($file_link);
}
return $this->succeed_json("文件删除成功");
}
}