diff --git a/app/admin/controller/Common.php b/app/admin/controller/Common.php index b67f6b5..82feb19 100644 --- a/app/admin/controller/Common.php +++ b/app/admin/controller/Common.php @@ -61,4 +61,22 @@ class Common extends BaseController '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' => '上传成功!' + ]; + } } diff --git a/app/admin/controller/Home/HomeEnv.php b/app/admin/controller/Home/HomeEnv.php index 1403da6..2243a19 100644 --- a/app/admin/controller/Home/HomeEnv.php +++ b/app/admin/controller/Home/HomeEnv.php @@ -31,6 +31,7 @@ class HomeEnv extends BaseController 'home_env_id', 'home_env_guid', 'home_env_img', + 'home_env_video', 'home_env_sort' ]) ->order('home_env_sort', 'asc'); @@ -45,7 +46,7 @@ class HomeEnv extends BaseController { $params = $request->param(); $this->validate($params, [ - 'home_env_img|图片' => 'require', + // 'home_env_img|图片' => 'require', 'home_env_sort|排序' => 'require' ]); $model = ModelHomeEnv::where('home_env_guid', $params['home_env_guid'])->find(); @@ -53,6 +54,7 @@ class HomeEnv extends BaseController $model->allowField([ 'home_env_update_user_guid', 'home_env_img', + 'home_env_video', 'home_env_sort' ])->save($params); return msg('编辑成功!'); @@ -65,19 +67,54 @@ class HomeEnv extends BaseController { $params = $request->param(); $this->validate($params, [ - 'home_env_img|图片' => 'require', + // 'home_env_img|图片' => 'require', 'home_env_sort|排序' => 'require' ]); $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' ]); 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('批量添加成功!'); + } + /** * 删除首页环境 */ diff --git a/app/api/controller/ContactUs/ContactInfo.php b/app/api/controller/ContactUs/ContactInfo.php index 0187cb9..c90fbfb 100644 --- a/app/api/controller/ContactUs/ContactInfo.php +++ b/app/api/controller/ContactUs/ContactInfo.php @@ -43,7 +43,7 @@ class ContactInfo extends BaseController 'contact_scancode_title', 'contact_scancode_img', ]) - ->where('contact_scancode_status', 2) + ->where('contact_scancode_status', 1) ->order('contact_scancode_order', 'asc') ->select(); @@ -53,7 +53,7 @@ class ContactInfo extends BaseController 'contact_scancode_img', 'contact_scancode_icon', ]) - ->where('contact_scancode_status', 1) + ->where('contact_scancode_status', 2) ->order('contact_scancode_order', 'asc') ->select(); diff --git a/app/api/controller/Crawler/Crawler.php b/app/api/controller/Crawler/Crawler.php index aef3bea..c0f5ab5 100644 --- a/app/api/controller/Crawler/Crawler.php +++ b/app/api/controller/Crawler/Crawler.php @@ -26,8 +26,8 @@ class Crawler extends BaseController $client = new Client(); // 获取目标网站的URL - $base_url = 'http://avers.fszhijun.com/'; - $url = 'http://avers.fszhijun.com/product/1/117.html'; + $base_url = 'http://www.zs521.com/'; + $url = 'http://www.zs521.com/article_categories/guangzhou/articles'; // return $url; diff --git a/app/api/controller/Crawler/CrawlerHoude.php b/app/api/controller/Crawler/CrawlerHoude.php new file mode 100644 index 0000000..1d2eb94 --- /dev/null +++ b/app/api/controller/Crawler/CrawlerHoude.php @@ -0,0 +1,129 @@ +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; + } +} diff --git a/app/api/controller/Works/Works.php b/app/api/controller/Works/Works.php index 7d23fd5..1adc4e0 100644 --- a/app/api/controller/Works/Works.php +++ b/app/api/controller/Works/Works.php @@ -51,25 +51,21 @@ class Works extends BaseController $con = [ ['works_type.works_type_delete_time', 'NULL', null], - ['classes.classes_delete_time', 'NULL', null], ['works.works_type_guid', '=', $works_type->works_type_guid], ]; $data = ModelWorks::field([ 'works.works_id', 'works_type.works_type_id', + 'works.works_author_type', 'works.works_img', - 'works.works_name', - 'works.works_author', 'works.works_intro', 'works.works_likes_count', 'works.works_order', 'works_type.works_type_name', - 'classes.classes_name', ]) ->where($con) ->leftJoin('works_type', 'works_type.works_type_guid = works.works_type_guid') - ->leftJoin('classes', 'classes.classes_guid = works.classes_guid') - ->append(['isLike', 'likeSrc']) + ->append(['isLike', 'likeSrc','works_author_type_name']) ->order('works_order', 'asc') ->select(); diff --git a/app/common/model/Test/Test.php b/app/common/model/Test/Test.php index 7c46101..50a6b2f 100644 --- a/app/common/model/Test/Test.php +++ b/app/common/model/Test/Test.php @@ -21,31 +21,19 @@ class Test extends BaseModel protected $disuse = []; // 设置字段信息 protected $schema = [ - - "test_id" => "int", - - "test_guid" => "string", - - "test_name" => "string", - - "test_show_status" => "string", - - "test_score" => "", - - "test_sort" => "int", - - "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", - + 'test_id' => 'int' , + 'test_guid' => 'string' , + 'test_name' => 'string' , + 'test_show_status' => 'string' , + 'test_score' => '' , + 'test_sort' => 'int' , + '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类型字段 protected $json = ['']; @@ -57,6 +45,14 @@ class Test extends BaseModel 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} 新增成功!
"; + } catch (\Throwable $th) { + $msg[] = "{$line} {$th->getMessage()}
"; + } + } + 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',] + ); + } + } diff --git a/app/common/model/Works/Works.php b/app/common/model/Works/Works.php index 9e9c2c7..8b7403a 100644 --- a/app/common/model/Works/Works.php +++ b/app/common/model/Works/Works.php @@ -11,6 +11,7 @@ use app\common\exception\Tool; use think\facade\Db; use app\common\model\Works\WorksType as ModelWorksType; use app\common\model\Enrol\Classes as ModelClasses; +use app\common\model\Dictionary\Dictionary as ModelDictionary; class Works extends BaseModel { @@ -182,4 +183,16 @@ class Works extends BaseModel { 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; + } }