123
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use app\admin\controller\Domain;
|
||||
use app\admin\controller\Novel;
|
||||
use app\admin\middleware\AdminAuth;
|
||||
use think\facade\Route;
|
||||
|
||||
@@ -24,37 +26,19 @@ Route::group("/system", function () {
|
||||
Route::get("/cjpz/list", "SystemConfig/getCaiJiPeiZhiList")->name("SystemConfig@getCaiJiPeiZhiList");
|
||||
Route::post("/cjpz/save", "SystemConfig/saveCaiJiPeiZhi")->name("SystemConfig@saveCaiJiPeiZhi");
|
||||
|
||||
Route::get("/zydd/list", "SystemConfig/getZiYuanDuanDianList")->name("SystemConfig@getZiYuanDuanDianList");
|
||||
Route::post("/zydd/save", "SystemConfig/saveZiYuanDuanDian")->name("SystemConfig@saveZiYuanDuanDian");
|
||||
|
||||
Route::get("/plan/list", "SystemConfig/getPlanTaskList")->name("SystemConfig@getPlanTaskList");
|
||||
Route::post("/plan/save", "SystemConfig/savePlanTask")->name("SystemConfig@savePlanTask");
|
||||
|
||||
Route::get("/keyword/list", "SeoKeywords/getSeoKeywordList")->name("SeoKeywords@getSeoKeywordList");
|
||||
Route::post("/keyword/save", "SeoKeywords/saveSeoKeyword")->name("SeoKeywords@saveSeoKeyword");
|
||||
Route::post("/keyword/del", "SeoKeywords/delSeoKeyword")->name("SeoKeywords@delSeoKeyword");
|
||||
})->middleware(AdminAuth::class);
|
||||
|
||||
# 广告
|
||||
Route::group("/guanggao", function () {
|
||||
# 主
|
||||
Route::get("/main/group/list", "GuangGao/getGuangGaoFenZuList")->name("GuangGao@getGuangGaoFenZuList");
|
||||
Route::post("/main/group/save", "GuangGao/saveGuangGaoFenZu")->name("GuangGao@saveGuangGaoFenZu");
|
||||
Route::post("/main/group/del", "GuangGao/delGuangGaoFenZu")->name("GuangGao@delGuangGaoFenZu");
|
||||
Route::get("/main/list", "GuangGao/getGuangGaoList")->name("GuangGao@getGuangGaoList");
|
||||
Route::post("/main/save", "GuangGao/saveGuangGao")->name("GuangGao@saveGuangGao");
|
||||
Route::post("/main/del", "GuangGao/delGuangGao")->name("GuangGao@delGuangGao");
|
||||
|
||||
# 广告配置
|
||||
Route::get("/ggpz/list", "GuangGao/getGuangGaoPeiZhiList")->name("GuangGao@getGuangGaoPeiZhiList");
|
||||
Route::post("/ggpz/save", "GuangGao/saveGuangGaoPeiZhi")->name("GuangGao@saveGuangGaoPeiZhi");
|
||||
|
||||
})->middleware(AdminAuth::class);
|
||||
|
||||
# 小说
|
||||
Route::group("/xiaoshuo", function () {
|
||||
Route::get("/main/list", "XiaoShuo/getXiaoShuoList")->name("XiaoShuo@getXiaoShuoList");
|
||||
Route::get("/zhangjie/list", "XiaoShuo/getXiaoShuoZhangJieList")->name("XiaoShuo@getXiaoShuoZhangJieList");
|
||||
Route::get("/fenlei/list", "XiaoShuo/getXiaoShuoFenLeiList")->name("XiaoShuo@getXiaoShuoFenLeiList");
|
||||
Route::group("/novel", function () {
|
||||
Route::get("/list", [Novel::class, "getNovelList"])->name("Domain@getNovelList");
|
||||
Route::post("/level/set", [Novel::class, "updateNovelLevel"])->name("Novel@updateNovelLevel");
|
||||
Route::get("/category/list", [Novel::class, "getCategory"])->name("Domain@getCategory");
|
||||
})->middleware(AdminAuth::class);
|
||||
|
||||
# 站点
|
||||
Route::group("/site", function () {
|
||||
Route::get("/domain/list", [Domain::class, "getDomainList"])->name("Domain@getDomainList");
|
||||
Route::post("/domain/upload", [Domain::class, "uploadDomain"])->name("Domain@uploadDomain");
|
||||
})->middleware(AdminAuth::class);
|
||||
|
||||
118
code/app/admin/controller/Domain.php
Normal file
118
code/app/admin/controller/Domain.php
Normal file
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\admin\BaseController;
|
||||
use app\model\AdminUserModel;
|
||||
use app\model\DomainModel;
|
||||
use app\Request;
|
||||
use PhpOffice\PhpSpreadsheet\IOFactory;
|
||||
use think\Response;
|
||||
|
||||
class Domain extends BaseController
|
||||
{
|
||||
|
||||
/**
|
||||
* upload site domain info file
|
||||
*
|
||||
* @param Request $Request
|
||||
* @param AdminUserModel|null $AdminUserModel
|
||||
* @return Response
|
||||
*/
|
||||
public function uploadDomain(Request $Request, ?AdminUserModel $AdminUserModel)
|
||||
{
|
||||
$File = $Request->file('excel_file');
|
||||
if (!$File) {
|
||||
return $this->error("9999", '请上传 Excel 文件');
|
||||
}
|
||||
|
||||
try {
|
||||
$arrAllowedExt = ['xls', 'xlsx'];
|
||||
$strExt = $File->getOriginalExtension();
|
||||
if (!in_array($strExt, $arrAllowedExt)) {
|
||||
return $this->error("9999", '仅支持 xls 或 xlsx 文件');
|
||||
}
|
||||
|
||||
$FilePath = $File->getPathname();
|
||||
|
||||
$Spreadsheet = IOFactory::load($FilePath);
|
||||
$Sheet = $Spreadsheet->getActiveSheet();
|
||||
$arrData = $Sheet->toArray();
|
||||
|
||||
array_shift($arrData);
|
||||
|
||||
foreach ($arrData as $arrRows) {
|
||||
$arrDomain = [
|
||||
'd_domain' => $arrRows[0],
|
||||
't_id' => $arrRows[1],
|
||||
'd_title' => $arrRows[2],
|
||||
'd_keywords' => $arrRows[3],
|
||||
'd_description' => $arrRows[4],
|
||||
'd_statis' => $arrRows[5],
|
||||
'd_logo_type' => (int)$arrRows[6],
|
||||
'd_text_log' => $arrRows[7],
|
||||
'd_img_log' => $arrRows[8],
|
||||
];
|
||||
$DomainModel = DomainModel::where('d_domain', $arrDomain['d_domain'])->findOrEmpty();
|
||||
$DomainModel->fill($arrDomain);
|
||||
$DomainModel->save();
|
||||
}
|
||||
|
||||
|
||||
return $this->success();
|
||||
} catch (\Exception $e) {
|
||||
return $this->error("9999", '导入失败: ' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*
|
||||
* @param Request $Request
|
||||
* @param AdminUserModel|null $AdminUserModel
|
||||
* @return Response
|
||||
*/
|
||||
public function getDomainList(Request $Request, ?AdminUserModel $AdminUserModel)
|
||||
{
|
||||
$arrData = [
|
||||
"page" => $Request->get('page', 1),
|
||||
"limit" => $Request->get('limit', 10),
|
||||
"key" => $Request->get('key'),
|
||||
];
|
||||
|
||||
$arrRule = [
|
||||
'page' => 'require|number',
|
||||
'limit' => 'require|number',
|
||||
];
|
||||
|
||||
$this->validate($arrData, $arrRule);
|
||||
|
||||
$DomainModel = DomainModel::alias('d');
|
||||
|
||||
if (!empty($arrData['key'])) {
|
||||
$strKey = $arrData['key'];
|
||||
$DomainModel->where(function ($DomainModel) use ($strKey) {
|
||||
$DomainModel->whereOr([
|
||||
['d.d_domain', 'like', "%" . $strKey . "%"],
|
||||
['d.d_id', 'like', "%" . $strKey . "%"],
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
$Paginate = $DomainModel->paginate([
|
||||
'list_rows' => $arrData['limit'],
|
||||
'page' => $arrData['page'],
|
||||
]);
|
||||
|
||||
$arrResult = [
|
||||
'items' => $Paginate->items(),
|
||||
'total' => $Paginate->total(),
|
||||
'current_page' => $Paginate->currentPage(),
|
||||
'total_pages' => $Paginate->lastPage(),
|
||||
];
|
||||
|
||||
return $this->success($arrResult);
|
||||
}
|
||||
}
|
||||
115
code/app/admin/controller/Novel.php
Normal file
115
code/app/admin/controller/Novel.php
Normal file
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\admin\BaseController;
|
||||
use app\model\AdminUserModel;
|
||||
use app\model\CategoryModel;
|
||||
use app\model\FenLeiModel;
|
||||
use app\model\GuangGaoFenZuModel;
|
||||
use app\model\GuangGaoModel;
|
||||
use app\model\GuangGaoPeiZhiModel;
|
||||
use app\model\NovelModel;
|
||||
use app\model\NvYouModel;
|
||||
use app\model\ShiPinModel;
|
||||
use app\Request;
|
||||
use think\Response;
|
||||
|
||||
class Novel extends BaseController
|
||||
{
|
||||
|
||||
/**
|
||||
* 根据关键词修改小说评级
|
||||
*
|
||||
* @param Request $Request
|
||||
* @param AdminUserModel|null $AdminUserModel
|
||||
* @return Response
|
||||
*/
|
||||
public function updateNovelLevel(Request $Request, ?AdminUserModel $AdminUserModel)
|
||||
{
|
||||
$arrData = [
|
||||
"keywords" => $Request->post('keywords'),
|
||||
"n_level" => (int)$Request->post('n_level'),
|
||||
];
|
||||
|
||||
$arrRule = [
|
||||
'keywords' => 'require',
|
||||
'n_level' => 'require',
|
||||
];
|
||||
|
||||
$this->validate($arrData, $arrRule);
|
||||
|
||||
$arrKeywords = explode(',', $arrData['keywords']);
|
||||
$NovelModel = new NovelModel;
|
||||
$NovelModel->updateByKeywords($arrKeywords, $arrData['n_level']);
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 小说分页
|
||||
*
|
||||
* @param Request $Request
|
||||
* @param AdminUserModel|null $AdminUserModel
|
||||
* @return Response
|
||||
*/
|
||||
public function getNovelList(Request $Request, ?AdminUserModel $AdminUserModel)
|
||||
{
|
||||
$intPage = $Request->param('page', 1, 'intval');
|
||||
$intLimit = $Request->param('limit', 10, 'intval');
|
||||
|
||||
try {
|
||||
|
||||
$NovelModel = new NovelModel;
|
||||
|
||||
$Col = $NovelModel->getCol();
|
||||
|
||||
// 查询条件(可选)
|
||||
$arrFilter = [];
|
||||
// 示例:如果需要筛选,例如 status=1
|
||||
// $arrFilter['status'] = 1;
|
||||
|
||||
$arrOptions = [
|
||||
'sort' => ['_id' => -1],
|
||||
'skip' => ($intPage - 1) * $intLimit,
|
||||
'limit' => $intLimit,
|
||||
];
|
||||
|
||||
$Cursor = $Col->find($arrFilter, $arrOptions);
|
||||
$arrData = iterator_to_array($Cursor);
|
||||
|
||||
$intTotal = $Col->countDocuments($arrFilter);
|
||||
|
||||
$arrResult = [
|
||||
'code' => 200,
|
||||
'msg' => '查询成功',
|
||||
'data' => $arrData,
|
||||
'total' => $intTotal,
|
||||
'page' => $intPage,
|
||||
'limit' => $intLimit,
|
||||
'pages' => ceil($intTotal / $intLimit)
|
||||
];
|
||||
return $this->success($arrResult);
|
||||
} catch (\Exception $e) {
|
||||
return $this->error("9999", $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* get category data
|
||||
*
|
||||
* @param Request $Request
|
||||
* @param AdminUserModel|null $AdminUserModel
|
||||
* @return void
|
||||
*/
|
||||
public function getCategory(Request $Request, ?AdminUserModel $AdminUserModel)
|
||||
{
|
||||
$arrResult = [
|
||||
'all' => CategoryModel::getCategory(),
|
||||
'man' => CategoryModel::getManCategory(),
|
||||
'women' => CategoryModel::getWomenCategory(),
|
||||
];
|
||||
return $this->success($arrResult);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user