webman_duanju/app/admin/controller/HelpWord.php

119 lines
3.8 KiB
PHP

<?php
namespace app\admin\controller;
use app\common\controller\Backend;
use app\admin\model\SysCaptcha;
use app\common\library\DatabaseRoute;
use ba\Random;
use think\facade\Db;
class HelpWord extends Backend
{
protected array $noNeedPermission = ['selectHelpClassifyList', 'deleteHelpClassify', 'insertHelpClassify', 'selectHelpWordList'];
public function selectHelpClassifyList()
{
$get = $this->request->get();
$page = $get['page'] ?? 1;
$limit = $get['limit'] ?? 10;
$types = $get['types'] ?? null;
$helpClassifyName = $get['helpClassifyName'] ?? null;
$parentId = $get['parentId'] ?? null;
$db = Db::connect(get_slave_connect_name());
// 构建查询
$query = $db->name('help_classify');
$query = $query->when($types !== null, function ($query) use ($types) {
return $query->where('types', $types);
});
$query = $query->when(!empty($helpClassifyName), function ($query) use ($helpClassifyName) {
return $query->where('help_classify_name', $helpClassifyName);
});
$query = $query->when($parentId !== null, function ($query) use ($parentId) {
return $query->where('parent_id', $parentId);
});
$count = $query->count();
$res = $query->order('sort', 'asc')->limit(page($page, $limit), $limit)->select()->toArray();
$data = [
'totalCount' => $count,
'pageSize' => $limit,
'totalPage' => ceil($count / $limit),
'currPage' => $page,
'list' => $res,
'records' => $res
];
$this->n_success(['data' => $data]);
}
// 删除帮助分类
public function deleteHelpClassify()
{
$post = $this->request->param();
if(empty($post['helpClassifyId'])) {
$this->error('参数不完整');
}
$db = Db::connect(get_master_connect_name());
$db->name('help_classify')->where(['help_classify_id' => $post['helpClassifyId']])->delete();
$this->success();
}
// 添加帮助分类
public function insertHelpClassify()
{
$post = $this->request->post();
$createTime = date('Y-m-d H:i:s');
if(empty($post['helpClassifyName']) || !isset($post['sort']) || empty($post['state']) || empty($post['types'])) {
$this->error('参数不完整');
}
Db::name('help_classify')->insert([
'help_classify_id' => Random::generateRandomPrefixedId(),
'help_classify_name' => $post['helpClassifyName'],
'sort' => $post['sort'],
'types' => $post['types'],
'create_time' => $createTime,
]);
$this->success();
}
public function selectHelpWordList()
{
$get = $this->request->get();
$helpClassifyId = $get['helpClassifyId'] ?? null;
$helpWordTitle = $get['helpWordTitle'] ?? null;
$page = $get['page'] ?? null;
$limit = $get['limit'] ?? null;
$query = Db::name('help_word');
// 条件筛选
if (!is_null($helpClassifyId)) {
$query->where('help_classify_id', $helpClassifyId);
}
if (!empty($helpWordTitle)) {
$query->where('help_word_title', $helpWordTitle);
}
// 排序和分页
$list = $query->order('sort', 'asc')
->page($page, $limit)
->limit(page($page, $limit), $limit)
->select()
->toArray();
// 获取总数(用于分页信息)
$count = $query->count();
$this->n_success(['data' => [
'totalCount' => $count,
'pageSize' => $get['limit'],
'totalPage' => ceil($count / $get['limit']),
'currPage' => $get['page'],
'list' => $list,
]]);
}
}