fix : 修改细节
This commit is contained in:
parent
67582b95c1
commit
694a2394be
@ -61,4 +61,22 @@ class Common extends BaseController
|
|||||||
'msg' => '上传成功!'
|
'msg' => '上传成功!'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传视频
|
||||||
|
*/
|
||||||
|
public function uploadVideo(Request $request)
|
||||||
|
{
|
||||||
|
$dirName = $request->param('dirName');
|
||||||
|
$upload = new UploadFile('uploads', 'file');
|
||||||
|
$path = $upload->putFile($dirName . 'File');
|
||||||
|
return [
|
||||||
|
'code' => 0,
|
||||||
|
'data' => [
|
||||||
|
"name" => $path,
|
||||||
|
"url" => "/uploads/" . $path,
|
||||||
|
],
|
||||||
|
'msg' => '上传成功!'
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,7 @@ class HomeEnv extends BaseController
|
|||||||
'home_env_id',
|
'home_env_id',
|
||||||
'home_env_guid',
|
'home_env_guid',
|
||||||
'home_env_img',
|
'home_env_img',
|
||||||
|
'home_env_video',
|
||||||
'home_env_sort'
|
'home_env_sort'
|
||||||
])
|
])
|
||||||
->order('home_env_sort', 'asc');
|
->order('home_env_sort', 'asc');
|
||||||
@ -45,7 +46,7 @@ class HomeEnv extends BaseController
|
|||||||
{
|
{
|
||||||
$params = $request->param();
|
$params = $request->param();
|
||||||
$this->validate($params, [
|
$this->validate($params, [
|
||||||
'home_env_img|图片' => 'require',
|
// 'home_env_img|图片' => 'require',
|
||||||
'home_env_sort|排序' => 'require'
|
'home_env_sort|排序' => 'require'
|
||||||
]);
|
]);
|
||||||
$model = ModelHomeEnv::where('home_env_guid', $params['home_env_guid'])->find();
|
$model = ModelHomeEnv::where('home_env_guid', $params['home_env_guid'])->find();
|
||||||
@ -53,6 +54,7 @@ class HomeEnv extends BaseController
|
|||||||
$model->allowField([
|
$model->allowField([
|
||||||
'home_env_update_user_guid',
|
'home_env_update_user_guid',
|
||||||
'home_env_img',
|
'home_env_img',
|
||||||
|
'home_env_video',
|
||||||
'home_env_sort'
|
'home_env_sort'
|
||||||
])->save($params);
|
])->save($params);
|
||||||
return msg('编辑成功!');
|
return msg('编辑成功!');
|
||||||
@ -65,19 +67,54 @@ class HomeEnv extends BaseController
|
|||||||
{
|
{
|
||||||
$params = $request->param();
|
$params = $request->param();
|
||||||
$this->validate($params, [
|
$this->validate($params, [
|
||||||
'home_env_img|图片' => 'require',
|
// 'home_env_img|图片' => 'require',
|
||||||
'home_env_sort|排序' => 'require'
|
'home_env_sort|排序' => 'require'
|
||||||
]);
|
]);
|
||||||
$model = ModelHomeEnv::create($params, [
|
$model = ModelHomeEnv::create($params, [
|
||||||
'home_env_guid',
|
'home_env_guid',
|
||||||
'home_env_create_user_guid',
|
'home_env_create_user_guid',
|
||||||
'home_env_update_user_guid',
|
'home_env_update_user_guid',
|
||||||
|
'home_env_video',
|
||||||
'home_env_img',
|
'home_env_img',
|
||||||
'home_env_sort'
|
'home_env_sort'
|
||||||
]);
|
]);
|
||||||
return msg('添加成功!');
|
return msg('添加成功!');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量添加首页环境
|
||||||
|
*/
|
||||||
|
public function batchAddHomeEnv(Request $request): array
|
||||||
|
{
|
||||||
|
$params = $request->param();
|
||||||
|
$this->validate($params, [
|
||||||
|
'home_env_img|图片' => 'require',
|
||||||
|
]);
|
||||||
|
$params['home_env_sort'] = 1;
|
||||||
|
|
||||||
|
$arr = explode(",", $params['home_env_img']);
|
||||||
|
// return $arr;
|
||||||
|
if (empty($arr)) {
|
||||||
|
$model = ModelHomeEnv::create($params, [
|
||||||
|
'home_env_guid',
|
||||||
|
'home_env_create_user_guid',
|
||||||
|
'home_env_update_user_guid',
|
||||||
|
'home_env_video',
|
||||||
|
'home_env_img',
|
||||||
|
'home_env_sort'
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
foreach ($arr as $key => $value) {
|
||||||
|
ModelHomeEnv::create([
|
||||||
|
'home_env_img' => $value,
|
||||||
|
// 'home_env_sort' => 1
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return msg('批量添加成功!');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除首页环境
|
* 删除首页环境
|
||||||
*/
|
*/
|
||||||
|
@ -43,7 +43,7 @@ class ContactInfo extends BaseController
|
|||||||
'contact_scancode_title',
|
'contact_scancode_title',
|
||||||
'contact_scancode_img',
|
'contact_scancode_img',
|
||||||
])
|
])
|
||||||
->where('contact_scancode_status', 2)
|
->where('contact_scancode_status', 1)
|
||||||
->order('contact_scancode_order', 'asc')
|
->order('contact_scancode_order', 'asc')
|
||||||
->select();
|
->select();
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ class ContactInfo extends BaseController
|
|||||||
'contact_scancode_img',
|
'contact_scancode_img',
|
||||||
'contact_scancode_icon',
|
'contact_scancode_icon',
|
||||||
])
|
])
|
||||||
->where('contact_scancode_status', 1)
|
->where('contact_scancode_status', 2)
|
||||||
->order('contact_scancode_order', 'asc')
|
->order('contact_scancode_order', 'asc')
|
||||||
->select();
|
->select();
|
||||||
|
|
||||||
|
@ -26,8 +26,8 @@ class Crawler extends BaseController
|
|||||||
$client = new Client();
|
$client = new Client();
|
||||||
|
|
||||||
// 获取目标网站的URL
|
// 获取目标网站的URL
|
||||||
$base_url = 'http://avers.fszhijun.com/';
|
$base_url = 'http://www.zs521.com/';
|
||||||
$url = 'http://avers.fszhijun.com/product/1/117.html';
|
$url = 'http://www.zs521.com/article_categories/guangzhou/articles';
|
||||||
|
|
||||||
// return $url;
|
// return $url;
|
||||||
|
|
||||||
|
129
app/api/controller/Crawler/CrawlerHoude.php
Normal file
129
app/api/controller/Crawler/CrawlerHoude.php
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\api\controller\Crawler;
|
||||||
|
|
||||||
|
use app\Request;
|
||||||
|
use app\common\model\Flow\Flow as ModelFlow;
|
||||||
|
use app\common\model\Home\HomeEnv as ModelHomeEnv;
|
||||||
|
use app\common\model\Home\HomeWorks as ModelHomeWorks;
|
||||||
|
use think\db\Where;
|
||||||
|
use think\facade\Validate;
|
||||||
|
use app\BaseController;
|
||||||
|
use app\exception\ErrorMsg;
|
||||||
|
use think\facade\Filesystem;
|
||||||
|
use app\common\arw\adjfut\src\UploadFile;
|
||||||
|
use app\common\exception\Tool;
|
||||||
|
use Goutte\Client;
|
||||||
|
|
||||||
|
class CrawlerHoude extends BaseController
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 爬虫测试
|
||||||
|
*/
|
||||||
|
public function Test(Request $request)
|
||||||
|
{
|
||||||
|
// return 1;
|
||||||
|
// 创建Goutte客户端对象
|
||||||
|
$client = new Client();
|
||||||
|
|
||||||
|
// 获取目标网站的URL
|
||||||
|
// $base_url = 'http://www.zs521.com/';
|
||||||
|
// $url = 'http://www.zs521.com/article_categories/guangzhou/articles';
|
||||||
|
|
||||||
|
$base_url = 'http://www.zs521.com/';
|
||||||
|
$url = 'http://www.zs521.com/article_categories/guangzhou/articles';
|
||||||
|
|
||||||
|
// return $url;
|
||||||
|
|
||||||
|
// 发起请求并获取响应对象
|
||||||
|
$crawler = $client->request('GET', $url);
|
||||||
|
|
||||||
|
// 选择要解析的HTML元素
|
||||||
|
$imgs = $crawler->filter('.grid img');
|
||||||
|
// return $titles;
|
||||||
|
// dump($titles);
|
||||||
|
// die;
|
||||||
|
|
||||||
|
// 在全部元素中筛选
|
||||||
|
// $products = $crawler->filter('.productsBody .productItem .products');
|
||||||
|
|
||||||
|
// foreach ($products as $key => $value) {
|
||||||
|
// // dump($value->filter('.productType')->eq($key)->text());
|
||||||
|
// // die;
|
||||||
|
// foreach ($titles->filter('.productType')->eq($key) as $key => $value) {
|
||||||
|
// $title = $value->textContent;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // return $title;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
$titleArr = [];
|
||||||
|
// 遍历元素并输出结果
|
||||||
|
// foreach ($titles as $title) {
|
||||||
|
// $titleArr[] = $title->textContent;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// return $titleArr;
|
||||||
|
|
||||||
|
// $imgArr = [];
|
||||||
|
foreach ($imgs as $img) {
|
||||||
|
// var_dump($img->getAttribute('lazyload'));
|
||||||
|
// die;
|
||||||
|
// return $img->getAttribute('lazyload');
|
||||||
|
$src = $img->getAttribute('src');
|
||||||
|
|
||||||
|
if (strpos($src, 'http') === 0) {
|
||||||
|
$img_url = $src;
|
||||||
|
} else {
|
||||||
|
$img_url = $base_url . $src;
|
||||||
|
}
|
||||||
|
// return $img_url;
|
||||||
|
|
||||||
|
// 文件夹名称
|
||||||
|
$dirName = "HomeWorks" . "Img";
|
||||||
|
// 文件保存位置
|
||||||
|
$fileSaveLocation = public_path('uploads') . $dirName . "\\";
|
||||||
|
// return $fileSaveLocation;
|
||||||
|
if (true !== $res = Tool::mkdir($fileSaveLocation)) {
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
|
$saveFileSaveLocation = $fileSaveLocation . date('Ymd') . "\\";
|
||||||
|
if (true !== $res = Tool::mkdir($saveFileSaveLocation)) {
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取图片二进制数据
|
||||||
|
$imageContent = file_get_contents($img_url);
|
||||||
|
// var_dump($imageContent);
|
||||||
|
// die;
|
||||||
|
// return $imageContent;
|
||||||
|
|
||||||
|
// return $saveFileSaveLocation;
|
||||||
|
|
||||||
|
// 保存图片到本地文件系统
|
||||||
|
file_put_contents($saveFileSaveLocation . basename($img_url), $imageContent);
|
||||||
|
|
||||||
|
$res_img_url = "/uploads" . "/" . $dirName . "/" . date('Ymd') . "/" . basename($img_url);
|
||||||
|
// return $res_img_url;
|
||||||
|
|
||||||
|
// $model = ModelHomeEnv::create([
|
||||||
|
// 'home_env_img' => $res_img_url,
|
||||||
|
// 'home_env_sort' => 1
|
||||||
|
// ]);
|
||||||
|
|
||||||
|
$model = ModelHomeWorks::create([
|
||||||
|
'home_works_img' => $res_img_url,
|
||||||
|
'home_works_sort' => 1
|
||||||
|
]);
|
||||||
|
|
||||||
|
// return $res_img_url;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// return $imgArr;
|
||||||
|
return $titleArr;
|
||||||
|
}
|
||||||
|
}
|
@ -51,25 +51,21 @@ class Works extends BaseController
|
|||||||
|
|
||||||
$con = [
|
$con = [
|
||||||
['works_type.works_type_delete_time', 'NULL', null],
|
['works_type.works_type_delete_time', 'NULL', null],
|
||||||
['classes.classes_delete_time', 'NULL', null],
|
|
||||||
['works.works_type_guid', '=', $works_type->works_type_guid],
|
['works.works_type_guid', '=', $works_type->works_type_guid],
|
||||||
];
|
];
|
||||||
$data = ModelWorks::field([
|
$data = ModelWorks::field([
|
||||||
'works.works_id',
|
'works.works_id',
|
||||||
'works_type.works_type_id',
|
'works_type.works_type_id',
|
||||||
|
'works.works_author_type',
|
||||||
'works.works_img',
|
'works.works_img',
|
||||||
'works.works_name',
|
|
||||||
'works.works_author',
|
|
||||||
'works.works_intro',
|
'works.works_intro',
|
||||||
'works.works_likes_count',
|
'works.works_likes_count',
|
||||||
'works.works_order',
|
'works.works_order',
|
||||||
'works_type.works_type_name',
|
'works_type.works_type_name',
|
||||||
'classes.classes_name',
|
|
||||||
])
|
])
|
||||||
->where($con)
|
->where($con)
|
||||||
->leftJoin('works_type', 'works_type.works_type_guid = works.works_type_guid')
|
->leftJoin('works_type', 'works_type.works_type_guid = works.works_type_guid')
|
||||||
->leftJoin('classes', 'classes.classes_guid = works.classes_guid')
|
->append(['isLike', 'likeSrc','works_author_type_name'])
|
||||||
->append(['isLike', 'likeSrc'])
|
|
||||||
->order('works_order', 'asc')
|
->order('works_order', 'asc')
|
||||||
->select();
|
->select();
|
||||||
|
|
||||||
|
@ -21,31 +21,19 @@ class Test extends BaseModel
|
|||||||
protected $disuse = [];
|
protected $disuse = [];
|
||||||
// 设置字段信息
|
// 设置字段信息
|
||||||
protected $schema = [
|
protected $schema = [
|
||||||
|
'test_id' => 'int' ,
|
||||||
"test_id" => "int",
|
'test_guid' => 'string' ,
|
||||||
|
'test_name' => 'string' ,
|
||||||
"test_guid" => "string",
|
'test_show_status' => 'string' ,
|
||||||
|
'test_score' => '' ,
|
||||||
"test_name" => "string",
|
'test_sort' => 'int' ,
|
||||||
|
'test_create_time' => 'datetime' ,
|
||||||
"test_show_status" => "string",
|
'test_create_user_guid' => 'string' ,
|
||||||
|
'test_update_time' => 'datetime' ,
|
||||||
"test_score" => "",
|
'test_update_user_guid' => 'string' ,
|
||||||
|
'test_delete_time' => 'datetime' ,
|
||||||
"test_sort" => "int",
|
'test_delete_user_guid' => 'string' ,
|
||||||
|
|
||||||
"test_create_time" => "datetime",
|
|
||||||
|
|
||||||
"test_create_user_guid" => "string",
|
|
||||||
|
|
||||||
"test_update_time" => "datetime",
|
|
||||||
|
|
||||||
"test_update_user_guid" => "string",
|
|
||||||
|
|
||||||
"test_delete_time" => "datetime",
|
|
||||||
|
|
||||||
"test_delete_user_guid" => "string",
|
|
||||||
|
|
||||||
];
|
];
|
||||||
// 设置json类型字段
|
// 设置json类型字段
|
||||||
protected $json = [''];
|
protected $json = [''];
|
||||||
@ -57,6 +45,14 @@ class Test extends BaseModel
|
|||||||
protected $updateTime = 'test_update_time';
|
protected $updateTime = 'test_update_time';
|
||||||
|
|
||||||
|
|
||||||
|
// excel导入/下载模板表头
|
||||||
|
public const EXCELFIELD = [
|
||||||
|
'test_name' => '名称',
|
||||||
|
'test_show_status' => '首页是否展示',
|
||||||
|
'test_score' => '评分',
|
||||||
|
'test_sort' => '排序',
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -86,10 +82,87 @@ class Test extends BaseModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出Excel
|
||||||
|
*
|
||||||
|
* @param array $select 导出的数据
|
||||||
|
*/
|
||||||
|
public static function exportExcel(array $select): void
|
||||||
|
{
|
||||||
|
$data = [[
|
||||||
|
'名称',
|
||||||
|
'首页是否展示',
|
||||||
|
'评分',
|
||||||
|
'排序'
|
||||||
|
]];
|
||||||
|
foreach ($select as $key => $val) {
|
||||||
|
$data[] = [
|
||||||
|
$val['test_name'],
|
||||||
|
$val['test_show_status'],
|
||||||
|
$val['test_score'],
|
||||||
|
$val['test_sort'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$excel = (new Excel())->exporTsheet($data);
|
||||||
|
$excel->save('测试.xlsx');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入excel
|
||||||
|
*
|
||||||
|
* @param \app\common\arw\adjfut\src\UploadFile $file excel
|
||||||
|
*/
|
||||||
|
public static function importExcel(\app\common\arw\adjfut\src\UploadFile $file): string
|
||||||
|
{
|
||||||
|
$msg = [];
|
||||||
|
|
||||||
|
Db::startTrans();
|
||||||
|
try {
|
||||||
|
$excel = new Excel($file);
|
||||||
|
$data = $excel->parseExcel(
|
||||||
|
Tool::getExcelRule(self::EXCELFIELD),
|
||||||
|
[
|
||||||
|
'titleLine' => [1]
|
||||||
|
]);
|
||||||
|
if (!$data) throwErrorMsg('excel无数据', 1);
|
||||||
|
$msg = [];
|
||||||
|
foreach ($data as $line => $value) {
|
||||||
|
try {
|
||||||
|
$model = self::importExcelInit($value);
|
||||||
|
$msg[] = "{$line} <span style='color:#27af49'>新增成功!</span><br>";
|
||||||
|
} catch (\Throwable $th) {
|
||||||
|
$msg[] = "{$line} <span style='color:red'>{$th->getMessage()}</span><br>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Db::commit();
|
||||||
|
return implode(', ', $msg);
|
||||||
|
} catch (\Throwable $th) {
|
||||||
|
Db::rollback();
|
||||||
|
throw $th;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入excel初始化
|
||||||
|
*
|
||||||
|
* @param array $value excel每行数据
|
||||||
|
*/
|
||||||
|
public static function importExcelInit(array $value):void
|
||||||
|
{
|
||||||
|
$test_name = $value['test_name'];$test_show_status = $value['test_show_status'];$test_score = $value['test_score'];$test_sort = $value['test_sort'];
|
||||||
|
|
||||||
|
self::create(
|
||||||
|
['test_name' => $test_name,
|
||||||
|
'test_show_status' => $test_show_status,
|
||||||
|
'test_score' => $test_score,
|
||||||
|
'test_sort' => $test_sort,
|
||||||
|
],
|
||||||
|
['test_name','test_show_status','test_score','test_sort',]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ use app\common\exception\Tool;
|
|||||||
use think\facade\Db;
|
use think\facade\Db;
|
||||||
use app\common\model\Works\WorksType as ModelWorksType;
|
use app\common\model\Works\WorksType as ModelWorksType;
|
||||||
use app\common\model\Enrol\Classes as ModelClasses;
|
use app\common\model\Enrol\Classes as ModelClasses;
|
||||||
|
use app\common\model\Dictionary\Dictionary as ModelDictionary;
|
||||||
|
|
||||||
class Works extends BaseModel
|
class Works extends BaseModel
|
||||||
{
|
{
|
||||||
@ -182,4 +183,16 @@ class Works extends BaseModel
|
|||||||
{
|
{
|
||||||
return "/img/business/works/like1.png";
|
return "/img/business/works/like1.png";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 作品作者类型字典获取器
|
||||||
|
*/
|
||||||
|
public function getWorksAuthorTypeNameAttr($value, $data)
|
||||||
|
{
|
||||||
|
$works_author_type = $data['works_author_type'];
|
||||||
|
$dic_works_author_type = ModelDictionary::getDictionaryData('works_author_type');
|
||||||
|
$works_author_type = ModelDictionary::getDataDictionaryName($dic_works_author_type, $works_author_type);
|
||||||
|
return $works_author_type;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user