mirror of https://github.com/1099438829/apeblog
198 lines
6.2 KiB
PHP
198 lines
6.2 KiB
PHP
<?php
|
|
|
|
namespace app\admin\controller;
|
|
|
|
|
|
use app\common\model\Attachment;
|
|
use app\common\model\AttachmentCategory;
|
|
use FormBuilder\Factory\Elm;
|
|
use app\admin\service\FormBuilderService as Form;
|
|
use app\admin\service\storage\QcloudCoService;
|
|
use app\admin\service\UtilService as Util;
|
|
use app\common\utils\Json;
|
|
|
|
/**
|
|
* Class Images
|
|
* @package app\admin\controller\widget
|
|
*/
|
|
class Images extends AuthController
|
|
{
|
|
/**
|
|
* 附件类型
|
|
* @var string
|
|
*/
|
|
private $type = "images";
|
|
|
|
public function index()
|
|
{
|
|
return $this->fetch();
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
* @throws \think\db\exception\DataNotFoundException
|
|
* @throws \think\db\exception\DbException
|
|
* @throws \think\db\exception\ModelNotFoundException
|
|
*/
|
|
public function category()
|
|
{
|
|
return app("json")->success(AttachmentCategory::buildNodes("images",0,$this->request->param("title","")));
|
|
}
|
|
|
|
/**
|
|
* 添加目录
|
|
* @param int $id
|
|
* @param int $pid
|
|
* @return string
|
|
* @throws \FormBuilder\Exception\FormBuilderException
|
|
*/
|
|
public function addCategory($id=0, $pid=0)
|
|
{
|
|
$form = array();
|
|
$form[] = Elm::select('pid','上级分类',(int)$pid?: (int)$id)->options(function (){
|
|
$menu = [];
|
|
$menu[] = ['label'=>"顶级分类","value"=>0];
|
|
$list = AttachmentCategory::getCategoryLst();
|
|
foreach ($list as $value) $menu[] = ['label'=>$value['name'],"value"=>$value['id']];
|
|
return $menu;
|
|
})->col(18);
|
|
$form[] = Elm::input('name','分类名称')->col(18);
|
|
$form[] = Elm::hidden('type','images')->col(18);
|
|
$form = Form::make_post_form($form, url('saveCategory')->build());
|
|
$this->assign(compact('form'));
|
|
return $this->fetch("public/form-builder");
|
|
}
|
|
|
|
/**
|
|
* 目录的修改
|
|
* @param $id
|
|
* @return string
|
|
* @throws \FormBuilder\Exception\FormBuilderException
|
|
*/
|
|
public function editCategory($id=0,$pid=0)
|
|
{
|
|
if ($id==0) return app("json")->fail("没有选中分类");
|
|
$form = array();
|
|
$form[] = Elm::select('pid','上级分类',(int)$pid)->options(function (){
|
|
$menu = [];
|
|
$menu[] = ['label'=>"顶级分类","value"=>0];
|
|
$list = AttachmentCategory::getCategoryLst();
|
|
foreach ($list as $value) $menu[] = ['label'=>$value['name'],"value"=>$value['id']];
|
|
return $menu;
|
|
})->col(18);
|
|
$form[] = Elm::input('name','分类名称',AttachmentCategory::getNameById($id))->col(18);
|
|
$form[] = Elm::hidden('type','images')->col(18);
|
|
$form = Form::make_post_form($form, Url('saveCategory',['id'=>$id])->build());
|
|
$this->assign(compact('form'));
|
|
return $this->fetch("public/form-builder");
|
|
}
|
|
|
|
/**
|
|
* 保存目录
|
|
* @param string $id
|
|
* @return json
|
|
*/
|
|
public function saveCategory($id="")
|
|
{
|
|
$data = Util::postMore([
|
|
['pid',0],
|
|
['type','images'],
|
|
['name','']
|
|
]);
|
|
if ($data['name'] == '') return app("json")->fail("分类名称不能为空");
|
|
if ($id == "")
|
|
{
|
|
$data['create_user'] = $this->adminId;
|
|
$res = AttachmentCategory::create($data);
|
|
}
|
|
else
|
|
{
|
|
$data['update_user'] = $this->adminId;
|
|
$res = AttachmentCategory::update($data,['id'=>$id]);
|
|
}
|
|
return $res ? app("json")->success("操作成功",'code') : app("json")->fail("操作失败");
|
|
}
|
|
|
|
/**
|
|
* 删除目录
|
|
* @param $id
|
|
* @return
|
|
*/
|
|
public function delCategory($id)
|
|
{
|
|
if ($id == 0) return app("json")->fail("未选择分类");
|
|
if (Attachment::be($id,"cid")) return app("json")->fail("该分类下有图片不能删除");
|
|
if (AttachmentCategory::be($id,"pid")) return app("json")->fail("该分类下有子分类不能删除");
|
|
return AttachmentCategory::del($id) ? app("json")->success("删除成功") : app("json")->fail("删除失败");
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getImageList()
|
|
{
|
|
$where = Util::postMore([
|
|
['cid',''],
|
|
['type',$this->type],
|
|
['page',1],
|
|
['limit',12]
|
|
]);
|
|
return app("json")->layui(Attachment::pagination($where));
|
|
}
|
|
|
|
/**
|
|
* @param $id
|
|
* @return string
|
|
* @throws \FormBuilder\Exception\FormBuilderException
|
|
* @throws \think\db\exception\DataNotFoundException
|
|
* @throws \think\db\exception\DbException
|
|
* @throws \think\db\exception\ModelNotFoundException
|
|
*/
|
|
public function editImage($id)
|
|
{
|
|
if ($id==0) return app("json")->fail("没有选中图片");
|
|
$image = Attachment::get($id);
|
|
$form = array();
|
|
$form[] = Elm::select('cid','选中分类',(int)$image['cid'])->options(AttachmentCategory::returnOptions())->col(18);
|
|
$form[] = Elm::hidden('type','images')->col(18);
|
|
$form = Form::make_post_form($form, Url('saveImage',['id'=>$id])->build());
|
|
$this->assign(compact('form'));
|
|
return $this->fetch("public/form-builder");
|
|
}
|
|
|
|
/**
|
|
* 修改图片分类
|
|
* @param $id
|
|
* @return mixed
|
|
*/
|
|
public function saveImage($id)
|
|
{
|
|
return Attachment::update(['cid'=>$this->request->param('cid')],['id'=>$id]) ? app("json")->success("修改成功",'code') : app("json")->fail("修改失败");
|
|
}
|
|
|
|
/**
|
|
* 删除图片
|
|
* @param $id
|
|
* @return mixed
|
|
*/
|
|
public function delImage($id)
|
|
{
|
|
if ($id == 0) return app("json")->fail("未选择图片");
|
|
$image = Attachment::get($id);
|
|
try {
|
|
switch ($image['storage'])
|
|
{
|
|
case 1:
|
|
unlink(app()->getRootPath() . 'public'.$image['path']);
|
|
break;
|
|
case 2:
|
|
QcloudCoService::del(str_replace(system_config("storage_domain"),"",$image['path']));
|
|
break;
|
|
}
|
|
return Attachment::del($id) ? app("json")->success("删除成功") : app("json")->fail("删除失败");
|
|
}catch (\Exception $e)
|
|
{
|
|
return app("json")->fail("删除失败".$e);
|
|
}
|
|
}
|
|
} |