You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
188 lines
5.2 KiB
188 lines
5.2 KiB
<?php
|
|
|
|
namespace app\fire\controller\admin;
|
|
|
|
|
|
use app\fire\model\FireKnowledge;
|
|
use app\fire\model\FireKnowledgeCategory;
|
|
use excel\Excel;
|
|
use think\facade\Db;
|
|
use think\facade\View;
|
|
|
|
class Knowledge extends Base
|
|
{
|
|
/**
|
|
* 知识分类
|
|
*/
|
|
public function category()
|
|
{
|
|
$where = [
|
|
'uid' => UID,
|
|
];
|
|
$category_model = new FireKnowledgeCategory();
|
|
$dataList = $category_model->getAllData($where, '*', 'sort desc');
|
|
View::assign('dataList', $dataList);
|
|
|
|
return View::fetch();
|
|
}
|
|
|
|
/**
|
|
* 添加分类
|
|
*/
|
|
public function categoryAdd()
|
|
{
|
|
$category_model = new FireKnowledgeCategory();
|
|
if (request()->isPost()) {
|
|
$data = input('post.');
|
|
$data['uid'] = UID;
|
|
$res = $category_model->dataUpdate($data);
|
|
if (!$res) {
|
|
return sendErrorMessage();
|
|
}
|
|
return sendSuccessMessage();
|
|
} else {
|
|
$id = input('param.id', 0);
|
|
$data = $category_model->getOneData(['id' => $id]);
|
|
View::assign('data', $data);
|
|
return View::fetch('categoryadd');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 修改分类
|
|
*/
|
|
public function categoryUpdate()
|
|
{
|
|
return $this->categoryadd();
|
|
}
|
|
|
|
/**
|
|
* 知识列表
|
|
* @return string
|
|
*/
|
|
public function knowledge()
|
|
{
|
|
$search = input('get.');
|
|
autoSearch(['time', 'keyword', 'category_id', 'is_recommend'], $search);
|
|
|
|
$knowledge_model = new FireKnowledge();
|
|
$category_model = new FireKnowledgeCategory();
|
|
|
|
$where = [['uid','=',UID]];
|
|
if ($search['time']) {
|
|
$time = explode('-', $search['time']);
|
|
$where[] = ['create_time','between time', [$time[0], $time[1]]];
|
|
}
|
|
|
|
if ($search['keyword']) {
|
|
$where[] = ['title ','like', '%' . $search['keyword'] . '%'];
|
|
}
|
|
|
|
if ($search['is_recommend'] !== '') {
|
|
$where []= ['is_recommend','=',$search['is_recommend']];
|
|
}
|
|
|
|
if ($search['category_id'] != '') {
|
|
$where[] = ['category_id','=',$search['category_id']];
|
|
}
|
|
session('where',$where);
|
|
|
|
$dataList = $knowledge_model->with(['knowledgeCategory'])->where($where)->order('id desc')
|
|
->paginate([
|
|
'list_rows' => 15,
|
|
'page' => array_key_exists("page", $search) ? (string)$search['page'] : "1",
|
|
'query' => $search
|
|
], false)->each(function ($item, $key) {
|
|
return $item;
|
|
});
|
|
|
|
$categoryList = $category_model->getAllData(['uid' => UID], 'id,name', 'sort desc');
|
|
$attach = [
|
|
'total_html' => [['总数', $dataList->total()]],
|
|
];
|
|
View::assign('attach', $attach);
|
|
View::assign('search', $search);
|
|
View::assign('dataList', $dataList);
|
|
View::assign('categoryList', $categoryList);
|
|
return View::fetch();
|
|
}
|
|
|
|
/**
|
|
* 知识列表导出
|
|
* @return mixed
|
|
*/
|
|
public function knowledgeExport()
|
|
{
|
|
$where = session('where');
|
|
|
|
$knowledge_model = new FireKnowledge();
|
|
|
|
$dataList = $knowledge_model->with(['knowledgeCategory'])->where($where)->order('id desc')
|
|
->select()->each(function ($item, $key) {
|
|
return $item;
|
|
});
|
|
|
|
|
|
foreach ($dataList as $key => $value) {
|
|
|
|
$data[$key] = [
|
|
$value['id'], //ID
|
|
$value['category_name'], //分类
|
|
$value['title'], //标题
|
|
$value['create_time'], //创建时间
|
|
$value['is_recommend'] == 1?"未推荐":'已推荐', //属性
|
|
];
|
|
};
|
|
|
|
$fileName = "知识列表";
|
|
$headArr = ["ID", "分类", '标题', "创建时间", "属性"];
|
|
$msg = '';
|
|
$excel_class = new Excel();
|
|
$res = $excel_class->excelExport($fileName, $headArr, $data, $msg);
|
|
return $res;
|
|
}
|
|
|
|
/**
|
|
* 添加知识
|
|
* @return string
|
|
*/
|
|
public function knowledgeAdd()
|
|
{
|
|
$knowledge_model = new FireKnowledge();
|
|
$category_model = new FireKnowledgeCategory();
|
|
|
|
if (request()->isPost()) {
|
|
$data = input('post.');
|
|
|
|
$data['is_recommend'] = array_key_exists('is_recommend', $data) ? $data['is_recommend'] : 1;
|
|
$data['uid'] = UID;
|
|
|
|
Db::startTrans();
|
|
$news_id = $knowledge_model->dataUpdate($data);
|
|
if (!$news_id) {
|
|
Db::rollback();
|
|
return sendErrorMessage();
|
|
}
|
|
|
|
Db::commit();
|
|
return sendSuccessMessage();
|
|
} else {
|
|
$id = input('param.id', 0);
|
|
$data = $knowledge_model->getOneData(['id' => $id]);
|
|
|
|
$where = [
|
|
'uid' => UID
|
|
];
|
|
$categoryList = $category_model->getAllData($where, 'id,name', 'sort desc');
|
|
|
|
View::assign('categoryList', $categoryList);
|
|
View::assign('data', $data);
|
|
return View::fetch('knowledgeadd');
|
|
}
|
|
}
|
|
|
|
public function knowledgeUpdate()
|
|
{
|
|
return $this->knowledgeAdd();
|
|
}
|
|
} |