| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- namespace App\Http\Controllers\Api\Museum;
- use App\Http\Controllers\Controller;
- use Illuminate\Http\Request;
- use App\Servers\Wenlv\MuseumServer;
- use App\Models\Api\Museum\Spot as SpotModel;
- use App\Models\Api\Museum\SpotTmp as SpotTmpModel;
- class Spot extends Controller
- {
- /**
- * 采集博物馆列表数据
- * @author 唐远望
- * @version 1.0
- * @date 2026-04-02
- */
- public function collect_data(SpotTmpModel $SpotTmpModel)
- {
- $MuseumServer = new MuseumServer();
- $page_data = $MuseumServer->getMuseumPageData();
- $pages = $page_data['pages'];
- if ($pages > 0) {
- for ($page = 1; $page < $pages; $page++) {
- //查询是否存在第一页数据
- $page_data = $SpotTmpModel->where(['page' => $page])->first();
- if ($page_data) {
- $museum_list = json_decode($page_data->data, true);
- $this->add_museum($museum_list);
- continue;
- }
- $list_data = $MuseumServer->getMuseumList($page);
- $list = isset($list_data['rows']['records']) ? $list_data['rows']['records']:'';
- if (!$list) continue;
- $SpotTmpModel->insert(['page' => $page, 'data' => json_encode($list)]);
- }
- }
- // 加载模板
- return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => '']);
- }
- /**
- * 添加博物馆数据到数据库
- * @author 唐远望
- * @version 1.0
- * @date 2026-04-02
- */
- public function add_museum($list)
- {
- $SpotModel = new SpotModel();
- $museum_type_config = [
- '文化文物系统国有博物馆' => '1',
- '其他行业国有博物馆' => '2',
- '非国有博物馆' => '3',
- ];
- foreach ($list as $key => $value) {
- $insert_data['museum_type_id'] = isset($museum_type_config[$value['NB_BWGXZ_NAME']]) ? $museum_type_config[$value['NB_BWGXZ_NAME']] : '0';
- $insert_data['museum_level'] = isset($value['NB_ZLDJ_NAME']) ? $value['NB_ZLDJ_NAME'] : '';
- $insert_data['is_open'] = '0';
- $insert_data['name'] = isset($value['NB_BWGMC']) ? $value['NB_BWGMC'] : '';
- $insert_data['intro'] = isset($value['NB_BWGJJ']) ? $value['NB_BWGJJ'] : '';
- $insert_data['province_name'] = isset($value['NB_S_NAME']) ? $value['NB_S_NAME'] : '';
- $insert_data['city_name'] = isset($value['NB_X_NAME']) ? $value['NB_X_NAME'] : '';
- $insert_data['district_name'] = '';
- $insert_data['insert_time'] = time();
- //查询是否存在博物馆
- $museum_info = $SpotModel->where(['name' => $insert_data['name'], 'province_name' => $insert_data['province_name']])->first();
- if (!$museum_info) {
- $SpotModel->insert($insert_data);
- }
- }
- }
- }
|