From 39db756dbf5dff2fbb4c0cf294ca74bd8a7778ba Mon Sep 17 00:00:00 2001 From: xiaodong Date: Thu, 3 Sep 2026 19:27:10 +0800 Subject: [PATCH] debug --- app/controller/backend/WebsiteController.php | 215 ++++++++++++++++++++++++++- app/controller/frontend/FormController.php | 5 + app/controller/frontend/SearchController.php | 11 +- 3 files changed, 225 insertions(+), 6 deletions(-) diff --git a/app/controller/backend/WebsiteController.php b/app/controller/backend/WebsiteController.php index 268e7c3..2b0ef32 100644 --- a/app/controller/backend/WebsiteController.php +++ b/app/controller/backend/WebsiteController.php @@ -3,14 +3,18 @@ declare (strict_types = 1); namespace app\controller\backend; +use app\exception\ModelEmptyException; +use app\exception\ModelException; use app\model\Admin; use app\model\Route; use app\model\Website; use app\model\WebsiteLang; use app\model\WebsiteSetting; use app\service\CacheService; +use app\service\ContentService; use app\service\SitemapService; use app\service\WebsiteLangService; +use app\validate\ContentValidate; use app\validate\WebsiteValidate; use app\service\WebsiteService; use think\facade\Db; @@ -279,9 +283,212 @@ class WebsiteController extends BaseController */ public function sitemap(SitemapService $sitemapService): \think\response\Json { - $siteId = (int)$this->request->param('website_id'); - $sellerId = $this->admin['seller_id']; - $res = $sitemapService -> makeSitemap($siteId,$sellerId); - return json($res); + // $siteId = (int)$this->request->param('website_id'); + // $sellerId = $this->admin['seller_id']; + // $res = $sitemapService -> makeSitemap($siteId,$sellerId); + // return json($res); + + $this->dealDataToNew(); + return json(['msg'=>'ok']); } + + + // 数据处理, 新站导入老站的新闻信息 + public function dealDataToNew() + { + $reqParam = request()->param(); + $from_cate_id = $reqParam['from_cate_id']; + $to_cate_id = $reqParam['to_cate_id']; + // if($from_cate_id == -1 && $to_cate_id == -1){ + // // 迁移数据 交易及市场日历(calendar) + // $res = $this->dealDataToNewCalendar($reqParam); + // return $res; + // } + // var_dump($reqParam); + // exit(); + + // 直接定义目标数据库连接参数 + $otherDbConfig = [ + 'type' => 'mysql', + 'hostname' => '127.0.0.1', // 目标IP + 'database' => 'ruineng-tmp-tmp', // 数据库名 + 'username' => 'root', + 'password' => 'root', + 'hostport' => '3306', + 'charset' => 'utf8mb4', + 'prefix' => '', + 'debug' => true, + ]; + + // 动态注册到 connections 中 + $dbConfig = config('database'); + $dbConfig['connections']['temp_remote_conn'] = $otherDbConfig; + config($dbConfig, 'database'); + // 验证分类 + $fromCateInfo = Db::connect('temp_remote_conn') + ->table('zlkj_arctype') + // ->where('state', 1) + ->where('id', $from_cate_id) + ->findOrEmpty(); + + if(empty($fromCateInfo)){ + var_dump('$fromCateInfo 不存在'); + exit(); + } + $toCateInfo = Db::table('hc_category') + ->where('id', $to_cate_id)->findOrEmpty(); + if(empty($toCateInfo)){ + var_dump('$toCateInfo 不存在'); + exit(); + } + if($fromCateInfo['typename'] != $toCateInfo['title']){ + var_dump('分类名称不对应'); + exit(); + } + + // 通过连接名使用 + $listTmp = Db::connect('temp_remote_conn') + ->table('zlkj_archives') + // ->where('state', 1) + ->where('typeid', $from_cate_id) + // ->limit(3) + ->select(); + if(empty($listTmp)){ + var_dump('数据为空!'); + exit; + } + $listArr = $listTmp->toArray(); + // var_dump($listTmp->toArray()); + // exit(); + if(empty($listArr)){ + var_dump('数据为空!'); + exit; + } + + $opNum = 0; + $remoteConnTmp = Db::connect('temp_remote_conn'); + foreach ($listArr as $k=>$oneOrigin){ + $aid = $oneOrigin['aid'] ?? 0; + if(empty($aid)){ + var_dump('数据异常!---$aid='.$oneOrigin['aid']); + exit; + } + // 查询关联表TODO... + $remoteContentOne = $remoteConnTmp->table('zlkj_article_content') + // ->where('state', 1) + ->where('aid', $aid) + // ->limit(3) + ->findOrEmpty(); + if(empty($remoteContentOne)){ + var_dump('数据异常--$remoteContent!---$aid='.$oneOrigin['aid']); + exit; + } + // dd($remoteContentOne); + + + $param = []; + // 手动拼接参数 $param + // module_id=1: 系统文章模型 + // module_id=2: 客户模型 + // module_id=3: 普通文章模型 + // module_id=4: demo1案例模型 + $param['module_id'] = 3; // 普通文章模型 + $param['category_id'][0] = $to_cate_id; // 分类ID + $param['lang'] = 'zh'; + $param['main_content']['sub_title'] = ''; + $param['main_content']['more_file'] = ''; + + $param['sub_content']['title'] = $oneOrigin['title']; + $param['sub_content']['sub_title'] = ''; + $param['sub_content']['detail_tpl'] = ''; + $param['sub_content']['description'] = $remoteContentOne['desc'] ?? ''; + $param['sub_content']['thumbnail'] = 0; // 缩略图 + $param['sub_content']['cover'] = ''; + $param['sub_content']['hits'] = $oneOrigin['click']; // 浏览量 + $param['sub_content']['author'] = ''; + $param['sub_content']['status'] = '1'; + $param['sub_content']['url'] = ''; + $param['sub_content']['is_top'] = ''; + $param['sub_content']['is_recommend'] = ''; + $param['sub_content']['sort'] = ''; + $param['sub_content']['seo_title'] = ''; + $param['sub_content']['seo_keyword'] = ''; + $param['sub_content']['seo_description'] = $oneOrigin['seo_description'] ?? ''; + $param['sub_content']['tag'] = ''; // 标签 + $param['sub_content']['publish_time'] = ''; + $param['sub_content']['content'] = $remoteContentOne['content'] ?? ''; // 富文本内容 + $param['sub_content']['category_id'] = $to_cate_id; // 分类ID + $param['sub_content']['sub_category_ids'] = ''; // + + if(!empty($remoteContentOne['img'])){ + $fullName = basename($remoteContentOne['img']); // 16a67b...png + $ext = explode('.', $fullName); + $extension = end($ext); // 结果:png + $filename = substr($fullName, 0, strrpos($fullName, '.')); + // 将图片资源插入数据库 + $fileData = [ + 'seller_id'=>1, + 'name'=>$filename, + 'attachment_cate_id'=>0, + 'url'=>$remoteContentOne['img'], + 'mime_type'=>$extension, + ]; + $fileID = Db::table('hc_attachment') + ->insertGetId($fileData); + $param['sub_content']['thumbnail'] = $fileID; // 缩略图 + } + if(!empty($oneOrigin['add_time'])){ + $param['sub_content']['publish_time'] = date('Y-m-d H:i:s',$oneOrigin['add_time']); + } + try{ + validate(ContentValidate::class)->scene('save')->check($param); + }catch (ValidateException $e){ + return jsonReturn(422, $e->getError()); + } + $param['admin'] = $this->admin; + unset($param['main_content']['id']);//添加接口以防冲突不需要id + unset($param['sub_content']['id']);//添加接口以防冲突不需要id + if(empty($param['sub_content']['publish_time'])){ + $param['sub_content']['publish_time'] = date('Y-m-d H:i:s',time()); + } + if(!isset($param['main_content'])){ + $param['main_content'] = []; + } + + // var_dump($param); + // exit(); + + $contentService = new ContentService(); + try { + $res = $contentService->saveContent($param); + // var_dump($res); + // exit(); + // 更改创建时间 ================= START + $newSubContentID = $res['id'] ?? '0'; + if($newSubContentID <= 0){ + var_dump('ID为空, 新增失败'); + exit(); + } + if(!empty($oneOrigin['add_time'])){ + Db::table('hc_sub_content') + ->where('id', $newSubContentID) + ->update(['status'=>1,'create_time' => $oneOrigin['add_time']]); + + Db::table('hc_article') + ->where('sub_id', $newSubContentID) + ->update(['create_time' => $oneOrigin['add_time']]); + } + + // 更改创建时间 ================= END + } catch (ModelEmptyException | ModelException $e) { + return jsonReturn(-3,$e->getMessage()); + } + $opNum ++; + } + + var_dump('操作的条数为: ', $opNum); + exit; + } + + } diff --git a/app/controller/frontend/FormController.php b/app/controller/frontend/FormController.php index 629a957..3672f71 100644 --- a/app/controller/frontend/FormController.php +++ b/app/controller/frontend/FormController.php @@ -2,12 +2,17 @@ namespace app\controller\frontend; +use app\exception\ModelEmptyException; +use app\exception\ModelException; use app\model\Attachment; use app\model\customModel\Down; use app\model\DiyForm; use app\model\SubContent; use app\model\SysSetting; +use app\service\ContentService; use app\service\upload\Upload; +use app\validate\ContentValidate; +use think\exception\ValidateException; use think\facade\Db; class FormController extends BaseController diff --git a/app/controller/frontend/SearchController.php b/app/controller/frontend/SearchController.php index 061657c..9ed9854 100644 --- a/app/controller/frontend/SearchController.php +++ b/app/controller/frontend/SearchController.php @@ -4,10 +4,16 @@ namespace app\controller\frontend; +use app\exception\ModelEmptyException; +use app\exception\ModelException; use app\model\Category; use app\model\CategorySubContent; use app\model\SubContent; use app\model\SysSetting; +use app\service\ContentService; +use app\validate\ContentValidate; +use think\exception\ValidateException; +use think\facade\Db; class SearchController extends BaseController { @@ -45,9 +51,10 @@ class SearchController extends BaseController // 获取可以查询的栏目 $category = new Category(); - // $categories = $category -> getAllCustomArrayData(['is_search' => 1],'id desc','id')['data']; + $categories = $category -> getAllCustomArrayData(['is_search' => 1],'id desc','id')['data']; // status: 1 正常 2 禁用 - $categories = $category -> getAllCustomArrayData(['status' => 1],'id desc','id')['data']; + // $categories = $category -> getAllCustomArrayData(['status' => 1],'id desc','id')['data']; + $cateIds = array_column($categories,'id'); $cateSub = new CategorySubContent();