作者 张关杰

Merge branch 'develop' of http://47.244.231.31:8099/zhl/globalso-v6 into bate

... ... @@ -9,20 +9,13 @@ namespace App\Console\Commands\KeywordInVideo;
use App\Console\Commands\Model;
use App\Console\Commands\TaskSub;
use App\Enums\Common\Code;
use App\Models\Com\KeywordVideoTask;
use App\Models\Com\KeywordVideoTaskLog;
use App\Models\Domain\DomainInfo;
use App\Models\Product\Keyword;
use App\Models\Product\Product;
use App\Models\RouteMap\RouteMap;
use App\Models\Template\BSettingTemplate;
use App\Models\Template\BTemplateCommon;
use App\Models\Template\Setting;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
... ...
... ... @@ -2,10 +2,14 @@
namespace App\Http\Controllers\Api;
use App\Enums\Common\Code;
use App\Exceptions\InquiryFilterException;
use App\Models\SyncSubmitTask\SyncSubmitTask;
use App\Models\Visit\Visit;
use App\Services\CosService;
use App\Services\ProjectServer;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
/**
* Class InquiryController
... ... @@ -51,4 +55,39 @@ class InquiryController extends BaseController
}
return $this->success();
}
/**
* @remark :修改
* @name :editInquiryStatus
* @author :lyh
* @method :post
* @time :2024/3/22 15:41
*/
public function editInquiryStatus(){
$this->request->validate([
'project_id'=>'required',
'ip'=>'required',
'updated_date'=>'required',
],[
'project_id.required' => 'project_id不能为空',
'ip.required' => 'ip不能为空',
'updated_date.required' => '日期不能为空',
]);
ProjectServer::useProject($this->param['project_id']);
$customerVisitModel = new Visit();
$info = $customerVisitModel->read([
'ip'=>$this->param['ip'],
'updated_date'=>$this->param['updated_date']
]);
if($info === false){
$this->response('当前记录不存在',Code::SYSTEM_ERROR);
}
try {
$customerVisitModel->edit(['is_inquiry'=>1],['id'=>$info['id']]);
}catch (\Exception $e){
$this->response('操作失败',Code::SYSTEM_ERROR);
}
DB::disconnect('custom_mysql');
$this->response('success');
}
}
... ...
... ... @@ -160,4 +160,95 @@ class ProductController extends BaseController
}
return $category_id;
}
/**
* @param Request $request
* @author zbj
* @date 2024/1/22
*/
protected function searchProduct(Request $request)
{
$project_id = $request->input('project_id');
$limit = $request->input('limit') ?: 5;
$text = $request->input('text');
$key = $request->input('key') ?: 'title';
$key_limit = $request->input('key_limit') ?: 15;
$project = ProjectServer::useProject($project_id);
if (!$project) {
$this->response('项目不存在', Code::SYSTEM_ERROR);
}
//匹配产品
$products = Product::with('category')
->where("title", 'like', $text . '%')
->where("status", 1)
->orderBy("id", "DESC")
->limit($limit)
->select('title', 'thumb', 'id', 'route')
->get()
->toArray();
//对应分类
$categories = [];
foreach ($products as &$product) {
foreach ($product['category'] as $category) {
$categories[$category['route']] = [
'title' => $category['title'],
'route' => '/' . $category['route'] . '/',
];
}
unset($product['id']);
unset($product['category']);
if(!empty($product['thumb']) && !empty($product['thumb']['url'])){
$product['thumb'] = getImageUrl($product['thumb']['url'],$project['storage_type'] ?? 0,$project['project_location']);
}
$product['route'] = '/' . $product['route'] . '/';
}
$data = [
'products' => $products,
'categories' => array_values($categories),
'suggestions' => $this->searchSuggestion($text, $key, $key_limit)
];
$this->response('success', Code::SUCCESS, $data);
}
protected function searchSuggestion($text, $key, $key_limit): array
{
$model = new Product();
$columns = $model->getConnection()->getSchemaBuilder()->getColumnListing($model->getTable());
//产品字段
if (in_array($key, $columns)) {
//匹配产品
$suggestions = Product::where("status", 1)
->where($key, 'like', $text . '%')
->orderBy("id", "DESC")
->limit($key_limit)
->select($key .' as title', 'route')
->get()
->toArray();
} else {
//扩展字段
$suggestions = Product::leftJoin('gl_product_extend_info as pei', 'gl_product.id', '=', 'pei.product_id')
->where('pei.values', 'like', $text . '%')
->where("gl_product.status", 1)
->orderBy("gl_product.id", "DESC")
->limit($key_limit)
->select('pei.values','gl_product.route')
->get()
->toArray();
}
foreach ($suggestions as &$suggestion){
$suggestion['route'] = '/' . $suggestion['route'] . '/';
}
return $suggestions;
}
}
... ...
... ... @@ -142,8 +142,8 @@ class ProductController extends BaseController
if(isset($this->map['status'])){
$query = $query->where('status',$this->map['status']);
}
if(!empty($this->map['created_at']) && !empty($this->map['created_at'])){
$query->whereBetween('created_at', $this->map['created_at'][1]);
if(!empty($this->param['start_at']) && !empty($this->param['end_at'])){
$query->where('created_at', '>=' ,$this->param['start_at'].' 00:00:00')->where('created_at', '<=' ,$this->param['end_at'].' 59:59:59');
}
return $query;
}
... ...
... ... @@ -34,7 +34,7 @@ class TranslateLogic extends BaseLogic
if($this->param['url'] == 'All'){
$info = $this->model->read(['url'=>$this->param['url'],'language_id'=>$this->param['language_id'],'type'=>$this->param['type']]);
if(!empty($info) && !empty($info['data'])){
$translateInfo = json_decode($info['data'],true);
$translateInfo = json_decode($info['data'],JSON_UNESCAPED_UNICODE);
foreach ($translateInfo as $k => $v){
$data[] = [$k=>$v];
}
... ... @@ -48,7 +48,7 @@ class TranslateLogic extends BaseLogic
// 原始校对内容
$info = $this->model->read(['url'=>$this->param['url'],'language_id'=>$this->param['language_id'],'type'=>$this->param['type']]);
if($info !== false){
$data_read = json_decode($info['data'],true);
$data_read = json_decode($info['data'],JSON_UNESCAPED_UNICODE);
foreach ($data_read as $k => $v){
$data[] = [$k => $v];
}
... ... @@ -130,7 +130,7 @@ class TranslateLogic extends BaseLogic
$info = $this->model->read(['url'=>$this->param['url'],'language_id'=>$this->param['language_id'],'type'=>$this->param['type']]);
$data = [];
if(!empty($info) && !empty($info['data'])){
$translateInfo = json_decode($info['data'],true);
$translateInfo = json_decode($info['data'],JSON_UNESCAPED_UNICODE);
foreach ($translateInfo as $k => $v){
$data[] = [$k=>$v];
}
... ... @@ -151,7 +151,7 @@ class TranslateLogic extends BaseLogic
}
$new_list = $this->getUrlImageRead($url);
$old_list = [];
$data_read = json_decode($info['data'],true);
$data_read = json_decode($info['data'],JSON_UNESCAPED_UNICODE);
foreach ($data_read as $k=>$v){
$old_list[] = $k;
$data[] = [
... ... @@ -282,10 +282,10 @@ class TranslateLogic extends BaseLogic
'language_id'=>$this->param['language_id'],
'alias'=>$this->param['alias'],
];
$param['data'] = json_encode($data,true);
$param['data'] = json_encode($data,JSON_UNESCAPED_UNICODE);
$this->model->add($param);
}else{
$data = json_encode($data,true);
$data = json_encode($data,JSON_UNESCAPED_UNICODE);
$this->model->edit(['data'=>$data],['language_id'=>$this->param['language_id'],'url'=>$this->param['url'],'type'=>$this->param['type']]);
}
}catch (\Exception $e){
... ...
... ... @@ -17,20 +17,4 @@ class CustomModule extends Base
protected $table = 'gl_custom_module';
//连接数据库
protected $connection = 'custom_mysql';
/**
* 根据模块查找自定义模块分类数据
*/
public static function getModuleCategory($projectId,$modules)
{
$moduleCategoryInfo = null;
if (isset($modules->category_id) && !empty($modules->category_id) && $modules->category_id != ",,"){
$cateArr = explode(",",$modules->category_id);
$cateArr = array_filter($cateArr);
if (!empty($cateArr)){
$cateId = (int)array_shift($cateArr);
$moduleCategoryInfo = CustomModuleCategory::getModuleCategoryAndExtendById($projectId,$cateId);
}
}
return $moduleCategoryInfo;
}
}
... ...
... ... @@ -11,6 +11,9 @@ namespace App\Models\CustomModule;
use App\Helper\Arr;
use App\Models\Base;
use App\Models\Module\CustomModule;
use App\Models\Module\ModuleCategory;
use App\Services\Html\PageService;
class CustomModuleContent extends Base
{
... ... @@ -18,8 +21,9 @@ class CustomModuleContent extends Base
//连接数据库
protected $connection = 'custom_mysql';
public function getCategoryIdAttribute($value){
return explode(',',trim($value,','));
public function getCategoryIdAttribute($value)
{
return explode(',', trim($value, ','));
}
/**
... ... @@ -29,10 +33,114 @@ class CustomModuleContent extends Base
* @method :post
* @time :2024/1/23 14:31
*/
public function getVideoAttribute($value){
if(!empty($value)){
public function getVideoAttribute($value)
{
if (!empty($value)) {
$value = Arr::s2a($value);
}
return $value;
}
/**
* 根据路由获取模块信息
*/
public static function getModuleAndExtendById($projectId, $id)
{
return self::with("getExtend")->where("project_id", $projectId)->where("id", $id)->where("status", 0)->first();
}
/**
* 关联模块信息
*/
public function getExtend(): \Illuminate\Database\Eloquent\Relations\HasOne
{
return $this->hasOne(CustomModule::class, 'id', 'module_id');
}
/**
* module数据处理
*/
public static function modulesListDataHandle($moduleCategoryInfo, $modules): array
{
$newT = [];
$pageService = new PageService();
if (!empty($modules)) {
foreach ($modules as $key => $item) {
if (!empty($item->remark)) {
$remark = $item->remark;
} else {
$text = strip_tags($item->content);
$remark = strlen($text) > 260 ? substr($text, 0, 260) . '...' : $text;
}
$newT[$key]["id"] = $item->id;
if (!empty($item->category_id)) {
$categoryIdArr = explode(",", $item->category_id);
if (!empty($categoryIdArr)) {
$categoryIdArr = array_filter($categoryIdArr);
$categoryId = (int)array_shift($categoryIdArr);
$newT[$key]["category_id"] = $categoryId;
}
}
//视频
$newT[$key]["video"] = !empty($item->video) ? json_decode($item->video) : null;
$newT[$key]["image"] = !empty($item->image) ? $pageService->getImageUrl($item->image) : "";
$newT[$key]["content"] = !empty($item->content) ? $item->content : "";
$newT[$key]["name"] = !empty($item->name) ? $item->name : "";
$newT[$key]["remark"] = $remark;
if (isset($item->release_at) && !empty(isset($item->release_at))) {
$newT[$key]["created_at"] = $item->release_at;
} else {
$time = !empty($item->created_at) ? $item->created_at->toArray()['formatted'] : "";
$newT[$key]["created_at"] = $time;
}
$newT[$key]["created_at"] = strtotime($newT[$key]["created_at"]);
$newT[$key]["created_at"] = date("Y-m-d", $newT[$key]["created_at"]);
if (isset($newT[$key]["category_id"]) && !empty($newT[$key]["category_id"])) {
$categoryInfo = CustomModuleCategory::getModuleCategoryAndExtendById($item->project_id, $newT[$key]["category_id"]);
$newT[$key]["aUrl"] = !empty($categoryInfo) ? $categoryInfo->route . "/" . $item->route : "";
} else {
$newT[$key]["aUrl"] = !empty($item->route) ? $moduleCategoryInfo->route . "/" . $item->route : "";
}
}
}
return $newT;
}
/**
* 根据模块查找自定义模块分类数据
*/
public static function getModuleCategory($projectId, $modules)
{
$moduleCategoryInfo = null;
if (isset($modules->category_id) && !empty($modules->category_id) && $modules->category_id != ",,") {
$cateArr = explode(",", $modules->category_id);
$cateArr = array_filter($cateArr);
if (!empty($cateArr)) {
$cateId = (int)array_shift($cateArr);
$moduleCategoryInfo = CustomModuleCategory::getModuleCategoryAndExtendById($projectId, $cateId);
}
}
return $moduleCategoryInfo;
}
/**
* 是否是自定义扩展模块
*/
public static function isModule($moduleDataModule)
{
$moduleDataModuleArr = explode("-", $moduleDataModule);
if (count($moduleDataModuleArr) == 2) {
$moduleArr = $moduleDataModuleArr;
if (!empty($moduleArr)) {
$moduleArr[0] = isset($moduleArr[0]) && !empty($moduleArr[0]) ? $moduleArr[0] : null;
$moduleArr[1] = isset($moduleArr[1]) && !empty($moduleArr[1]) ? (int)$moduleArr[1] : null;
}
return $moduleArr;
} else {
// return $moduleDataModule;
return null;
}
}
}
... ...
... ... @@ -26,6 +26,60 @@ class Category extends Base
public static $productSearchPagePercent = 12;
/**
* 根据分类ID查询上面所有父级,递归
*/
public static function getAllFatherCategory($categoryId): array
{
$category = self::find($categoryId);
return $category->getAncestorsRecursive();
}
/**
* 根据产品分类获取分类列表和产品
*/
public static function getCategoryBySelfCategory($projectId,$routerMap)
{
if ($routerMap->source_id == 0){
$categoryList = Category::with("products")->where("project_id",$projectId)->where("pid",0)->where("status",1)->orderBy("sort","desc")->orderBy("id","desc")->get();
}else{
$categoryIds = [];
$category = Category::where("project_id",$projectId)->where("pid",$routerMap->source_id)->where("status",1)->orderBy("sort","desc")->orderBy("id","desc")->get();
if (count($category)>=1){
foreach ($category as $categoryItem){
$categoryIds[] = $categoryItem->id;
}
}else{
$categoryIds[] = $routerMap->source_id;
}
$categoryList = Category::with("products")->where("project_id",$projectId)->whereIn("id",$categoryIds)->where("status",1)->orderBy("sort","desc")->orderBy("id","desc")->get();
}
return $categoryList;
}
/**
* 森联数据处理
*/
public static function getSenLianCategoryAndProducts($routerMap)
{
$data = [];
//下级分类及产品+产品扩展型号
$categorys = null;
$sonData = self::with("productsSl")->where("project_id",$routerMap->project_id)->where("status",1)->where("pid",$routerMap->source_id)->orderBy("id","desc")->get();
if ($routerMap->route == "products" || !empty($sonData)){
if ($routerMap->route == "products"){
$categorys = self::with("productsSl")->where("project_id",$routerMap->project_id)->where("status",1)->where("pid",0)->where("route","!=","products")->orderBy("id","desc")->get();
}else{
$categorys = $sonData;
}
}
if (!empty($categorys)){
$categorys = $categorys->toArray();
}
$data["categorySon"] = $categorys;
return $data;
}
/**
* 获取指定分类的所有子分类IDS(包括自己)
* @param $id
* @return array
... ...
... ... @@ -17,4 +17,10 @@ class Extend extends Base
protected $table = 'gl_product_extend';
//连接数据库
protected $connection = 'custom_mysql';
//产品详情扩展字段类型 1,文本输入框 2,代码块 3,图片列表 4,文件列表
public static $textExtendType = 1;
public static $codeExtendType = 2;
public static $imageExtendType = 3;
public static $fileExtendType = 4;
}
... ...
... ... @@ -17,4 +17,76 @@ class ExtendInfo extends Base
protected $table = 'gl_product_extend_info';
//连接数据库
protected $connection = 'custom_mysql';
/**
* 搜索模块-广州万天实业有限公司-项目ID:194,获取产品品牌和型号扩展字段的值
* key值固定为:pd_extended_field_1:品牌,pd_extended_field_2:型号
*/
public static function getProductsAllBrandAndModel($projectId): array
{
$brandAndModel = [];
$brandArr = [];
$productIds = [];
$productsExtendInfo = self::where("project_id",$projectId)->get();
if (!empty($productsExtendInfo)){
$productsExtendBrandInfo = $productsExtendInfo->where("key","pd_extended_field_1");
if (!empty($productsExtendBrandInfo)){
foreach ($productsExtendBrandInfo as $productsExtendBrandInfoItem){
if (!empty($productsExtendBrandInfoItem->values)){
$brand = explode(",",$productsExtendBrandInfoItem->values);
$brands = array_filter($brand);
if (!empty($brands)){
foreach ($brands as $brandsItem){
$brandArr[] = $brandsItem;
}
}
}
}
}
}
//临时数据
if (!empty($brandArr)){
$brandArr = array_unique($brandArr);
$key = 0;
foreach ($brandArr as $brandArrItem){
$brandKeys = $productsExtendInfo->where("key","pd_extended_field_1");
if (!empty($brandKeys)){
foreach ($brandKeys as $brandKeysItem){
if ($brandKeysItem->values){
if (strpos($brandKeysItem->values, $brandArrItem) !== false){
$brandAndModel[$key]["ids"][] = $brandKeysItem->product_id;
$brandAndModel[$key]["brand"] = $brandArrItem;
}
}
}
}
$key++;
}
}
if (!empty($brandAndModel)){
foreach ($brandAndModel as $keyItem=>$brandAndModelItem){
if (!empty($brandAndModelItem["ids"])){
$productIds = array_unique($brandAndModelItem["ids"]);
$modelKeys = $productsExtendInfo->where("key","pd_extended_field_2")->whereIn("product_id",$productIds);
$models = [];
if (!empty($modelKeys)){
foreach ($modelKeys as $modelKeysItem){
if (!empty($modelKeysItem->values)){
$modelArr = array_filter(explode(",",$modelKeysItem->values));
foreach ($modelArr as $modelArrItem){
$models[] = $modelArrItem;
}
}
}
}
if (!empty($models)){
$models = array_unique($models);
$brandAndModel[$keyItem]["model"] = $models;
}
}
}
}
return $brandAndModel;
}
}
... ...
... ... @@ -4,6 +4,7 @@ namespace App\Models\Product;
use App\Helper\Arr;
use App\Models\Base;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
... ... @@ -209,4 +210,15 @@ class Product extends Base
}
return $value;
}
/**
* 多对多关联
* @return BelongsToMany
* @author zbj
* @date 2024/1/22
*/
public function category(): BelongsToMany
{
return $this->belongsToMany(Category::class, 'gl_product_category_related', 'product_id', 'cate_id');
}
}
... ...
... ... @@ -3,8 +3,29 @@
namespace App\Models\Project;
use App\Models\Base;
use App\Models\WebSetting\WebLanguage;
use App\Models\WebSetting\WebSetting;
use Illuminate\Support\Facades\Redis;
class Country extends Base
{
protected $table = 'gl_project_country';
public static function getProjectCountry($projectId)
{
if (Redis::get("project_" . $projectId . "_country") == null) {
$country = Country::where("project_id", $projectId)->first();
if (!empty($country)) {
// $webCountry = WebLanguage::with("countryCustom")->whereIn("id", explode(",", $country->country_lists))->get();
$webCountry = WebLanguage::with(["countryCustom" => function($query) use ($projectId) {
$query->where('project_id', $projectId);
}])->whereIn("id", explode(",", $country->country_lists))->orderByRaw(DB::raw("FIND_IN_SET(id,'" . $country->country_lists. "'" . ')'))->get();
} else {
$webCountry = null;
}
Redis::set("project_" . $projectId . "_country", json_encode($webCountry));
Redis::expire("project_" . $projectId . "_country", WebSetting::$redisExpireTime);
}
return json_decode(Redis::get("project_".$projectId."_country"));
}
}
... ...
<?php
namespace App\Models\Template;
use App\Models\Base;
/**
* @remark :默认主题
* @name :Setting
* @author :lyh
* @time :2023/6/28 16:51
*/
class BSettingTemplate extends Base
{
protected $table = 'gl_web_setting_template';
//连接数据库
protected $connection = 'custom_mysql';
}
... ... @@ -16,4 +16,5 @@ class BTemplateCommon extends Base
protected $table = 'gl_web_template_common';
//连接数据库
protected $connection = 'custom_mysql';
}
... ...
... ... @@ -13,4 +13,12 @@ use App\Models\Base;
class Setting extends Base
{
protected $table = 'gl_web_setting_template';
/**
* 获取项目模板信息
*/
public static function getProjectTemplateInfo($projectId)
{
return self::where("project_id",$projectId)->first();
}
}
... ...
<?php
/**
* @remark :
* @name :TemplateProject.php
* @author :lyh
* @method :post
* @time :2023/11/15 14:38
*/
namespace App\Models\Template;
use App\Models\Base;
class TemplateProject extends Base
{
protected $table = 'gl_web_setting_template';
//连接数据库
protected $connection = 'custom_mysql';
}
... ... @@ -10,13 +10,30 @@
namespace App\Models\WebSetting;
use App\Models\Base;
use App\Models\Project\CountryCustom;
use Illuminate\Support\Facades\Cache;
class WebLanguage extends Base
{
protected $table = 'gl_web_language';
/**
* 关键词17种语种
*/
public static function getKeywordsCountry($project = null)
{
$languageIds = [1,4,5,6,7,8,9,10,11,14,15,18,22,26,40,68,78,95,99];
//加入项目主语种
if (!empty($project)){
$mainLangId = $project->main_lang_id;
array_unshift($languageIds,(int)$mainLangId);
}
$projectId = $project->id;
$languageIds=array_unique($languageIds);
return WebLanguage::with(["countryCustom" => function($query) use ($projectId) {
$query->where('project_id', $projectId);
}])->whereIn("id",$languageIds)->get();
}
/**
* @param $id
* @return mixed
... ... @@ -75,4 +92,12 @@ class WebLanguage extends Base
return array_unique($languageIds);
}
/**
* 关联语种自定义跳转设置
*/
public function countryCustom(): \Illuminate\Database\Eloquent\Relations\HasOne
{
return $this->hasOne(CountryCustom::class, 'language_id', 'id');
}
}
... ...
... ... @@ -8,7 +8,7 @@ use App\Models\Collect\CollectTask;
use App\Models\Com\Notify;
use App\Models\Com\UpdateNotify;
use App\Models\Com\UpdateProgress;
use App\Models\CustomModule\CustomModule;
use App\Models\CustomModule\CustomModuleContent;
use App\Models\CustomModule\CustomModuleCategory;
use App\Models\News\News;
use App\Models\News\NewsCategory;
... ... @@ -472,7 +472,7 @@ class CreatePageService{
$tdkService = new TdkService();
//页面路由
$routePath = $routerMap->route;
$module_detail = CustomModule::where("project_id",$project->id)->where("id",$routerMap->source_id)->where("status",0)->first();
$module_detail = CustomModuleContent::where("project_id",$project->id)->where("id",$routerMap->source_id)->where("status",0)->first();
if (!empty($module_detail)){
if($project['update_info']['is_update'] && $module_detail->six_read){
return $this->getOldHtml($project,$routerMap,$project['update_info']['old_domain_test'],$project['update_info']['old_domain_online'],$lang);
... ... @@ -481,7 +481,7 @@ class CreatePageService{
$webCustomHtml = $pageService->publicMontagePage($project,RouteMap::SOURCE_MODULE,$routerMap);
//公共面包屑导航,左侧导航处理,内页banner背景图,列表页分页
$webCustomHtml = $pageService->publicMdAndLeftNavInnerImageListDetailsDataHandle($webCustomHtml,$project,RouteMap::SOURCE_MODULE,$routerMap,null);
$moduleCategoryInfo = CustomModule::getModuleCategory($project->id,$module_detail);
$moduleCategoryInfo = CustomModuleContent::getModuleCategory($project->id,$module_detail);
if (isset($moduleCategoryInfo->getExtend->detail_visualization) && $moduleCategoryInfo->getExtend->detail_visualization == 1){
//产品,产品分类,新闻,博客(section模板通用数据模块处理)
$webCustomHtml = $pageService->generalTemplateProcessingForDataModules($webCustomHtml,$project->id);
... ... @@ -957,8 +957,8 @@ class CreatePageService{
}elseif($routerMap->source == "blog"){
$route = "/blogs/".$route;
}elseif($routerMap->source == "module"){
$modules = CustomModule::where("project_id",$project->id)->where("id",$routerMap->source_id)->where("status",0)->first();
$moduleCategoryInfo = CustomModule::getModuleCategory($project->id,$modules);
$modules = CustomModuleContent::where("project_id",$project->id)->where("id",$routerMap->source_id)->where("status",0)->first();
$moduleCategoryInfo = CustomModuleContent::getModuleCategory($project->id,$modules);
if (isset($moduleCategoryInfo->route) && !empty($moduleCategoryInfo->route)){
$route = "/".$moduleCategoryInfo->route."/".$route;
}
... ... @@ -1021,8 +1021,8 @@ class CreatePageService{
$route = "/".$moduleCategory->route."/page";
}
}elseif ($routerMap->source == "module"){
$modules = CustomModule::where("project_id",$project->id)->where("id",$routerMap->source_id)->where("status",0)->first();
$moduleCategoryInfo = CustomModule::getModuleCategory($project->id,$modules);
$modules = CustomModuleContent::where("project_id",$project->id)->where("id",$routerMap->source_id)->where("status",0)->first();
$moduleCategoryInfo = CustomModuleContent::getModuleCategory($project->id,$modules);
if (isset($moduleCategoryInfo->getExtend->route) && !empty($moduleCategoryInfo->getExtend->route)){
$route = "/".$moduleCategoryInfo->route."/".$modules->route;
}else{
... ... @@ -1109,8 +1109,8 @@ class CreatePageService{
}elseif($routerMap->source == "blog"){
$route = "/blogs/".$route;
}elseif($routerMap->source == "module"){
$modules = CustomModule::where("project_id",$project->id)->where("id",$routerMap->source_id)->where("status",0)->first();
$moduleCategoryInfo = CustomModule::getModuleCategory($project->id,$modules);
$modules = CustomModuleContent::where("project_id",$project->id)->where("id",$routerMap->source_id)->where("status",0)->first();
$moduleCategoryInfo = CustomModuleContent::getModuleCategory($project->id,$modules);
if (isset($moduleCategoryInfo->route) && !empty($moduleCategoryInfo->route)){
$route = "/".$moduleCategoryInfo->route."/".$route;
}
... ... @@ -1153,8 +1153,8 @@ class CreatePageService{
}elseif ($routerMap->source == "product_category"){
$route = "/".$route."/page";
}elseif ($routerMap->source == "module"){
$modules = CustomModule::where("project_id",$project->id)->where("id",$routerMap->source_id)->where("status",0)->first();
$moduleCategoryInfo = CustomModule::getModuleCategory($project->id,$modules);
$modules = CustomModuleContent::where("project_id",$project->id)->where("id",$routerMap->source_id)->where("status",0)->first();
$moduleCategoryInfo = CustomModuleContent::getModuleCategory($project->id,$modules);
if (isset($moduleCategoryInfo->getExtend->route) && !empty($moduleCategoryInfo->getExtend->route)){
$route = "/".$moduleCategoryInfo->getExtend->route."_catalog/".$moduleCategoryInfo->route."/page";
}else{
... ...
... ... @@ -5,6 +5,7 @@ namespace App\Services\Html;
use App\Models\Blog\Blog;
use App\Models\CustomModule\CustomModule;
use App\Models\CustomModule\CustomModuleContent;
use App\Models\Domain\DomainInfo;
use App\Models\Module\Module;
use App\Models\News\News;
... ... @@ -807,7 +808,7 @@ tr.stripe { background-color:#f7f7f7; }
$botNum = $outerNum+1 == 1 ? "" : "_".($outerNum+1);
$moduleCategoryUrlItem = '';
foreach ($moduleCategory as $moduleCategoryItem){
$count = CustomModule::where("project_id",$item["project_id"])->where("category_id","like","%,".(string)$moduleCategoryItem->source_id.",%")->where("status",0)->count();
$count = CustomModuleContent::where("project_id",$item["project_id"])->where("category_id","like","%,".(string)$moduleCategoryItem->source_id.",%")->where("status",0)->count();
$innerNum++;
if ($count >= 1){
$webSettingNum = SettingNum::where("project_id",$item["project_id"])->where("type",SettingNum::$newsListType)->orderBy("id","desc")->first();
... ... @@ -1093,8 +1094,8 @@ tr.stripe { background-color:#f7f7f7; }
$data = RouteMap::where("project_id",$item["project_id"])->where("source","module")->offset($offset)->limit($perPage)->get();
if (!empty($data)){
foreach ($data as $j){
$module_detail = CustomModule::where("project_id",$item["project_id"])->where("id",$j->source_id)->where("status",0)->first();
$moduleAndCategoryInfo = CustomModule::getModuleCategory($item["project_id"],$module_detail);
$module_detail = CustomModuleContent::where("project_id",$item["project_id"])->where("id",$j->source_id)->where("status",0)->first();
$moduleAndCategoryInfo = CustomModuleContent::getModuleCategory($item["project_id"],$module_detail);
if (!empty($module_detail) && !empty($moduleAndCategoryInfo)){
$isExistFile = $this->isExistHtmlFile($item['domain'],"",$j,$j->route,null);
if ($isExistFile){
... ...
... ... @@ -23,7 +23,9 @@ Route::get('optimize_project_list', [\App\Http\Controllers\Api\PrivateController
Route::get('get_project_route', [\App\Http\Controllers\Api\PrivateController::class, 'getProjectRoute'])->name('api.get_project_route');
Route::any('get_product_images', [\App\Http\Controllers\Api\ProductController::class, 'getImages'])->name('api.get_product_images');
Route::any('saveProduct', [\App\Http\Controllers\Api\ProductController::class, 'saveProduct'])->name('api.saveProduct');
Route::any('searchProduct', [\App\Http\Controllers\Api\ProductController::class, 'searchProduct'])->name('api.searchProduct');
Route::post('inquiry_submit', [\App\Http\Controllers\Api\InquiryController::class, 'submit'])->name('api.inquiry_submit');
Route::post('editInquiryStatus', [\App\Http\Controllers\Api\InquiryController::class, 'editInquiryStatus'])->name('api.inquiry_editInquiryStatus');
Route::any('getOptimizationReport', [\App\Http\Controllers\Api\OptimizationReportController::class, 'getOptimizationReport'])->name('api.getOptimizationReport');
// 视频任务回调信息
Route::post('video_task_callback', [\App\Http\Controllers\Api\NoticeController::class, 'videoTaskCallback'])->name('api.video_task_callback');
... ...