作者 李宇航

合并分支 'master-server' 到 'master'

Master server



查看合并请求 !704
@@ -30,7 +30,7 @@ class ProductController extends BaseController @@ -30,7 +30,7 @@ class ProductController extends BaseController
30 public function getImages(Request $request) 30 public function getImages(Request $request)
31 { 31 {
32 $project_id = $request->input('project_id'); 32 $project_id = $request->input('project_id');
33 - $project = ProjectServer::useProject($project_id); 33 + $project = ProjectServer::useProject($project_id); $project = ProjectServer::useProject($project_id);
34 if (!$project) { 34 if (!$project) {
35 $this->response('项目不存在', Code::SYSTEM_ERROR); 35 $this->response('项目不存在', Code::SYSTEM_ERROR);
36 } 36 }
@@ -66,7 +66,7 @@ class ExtensionModuleController extends BaseController @@ -66,7 +66,7 @@ class ExtensionModuleController extends BaseController
66 'module_id.required' => '模块id不能为空', 66 'module_id.required' => '模块id不能为空',
67 ]); 67 ]);
68 $moduleFieldModel = new ExtensionModuleField(); 68 $moduleFieldModel = new ExtensionModuleField();
69 - $list = $moduleFieldModel->list(['module_id'=>$this->param['module_id']]); 69 + $list = $moduleFieldModel->list(['module_id'=>$this->param['module_id']],'sort');
70 $moduleValueModel = new ExtensionModuleValue(); 70 $moduleValueModel = new ExtensionModuleValue();
71 foreach ($list as $k => $v){ 71 foreach ($list as $k => $v){
72 $v['is_use'] = 0; 72 $v['is_use'] = 0;
@@ -257,4 +257,23 @@ class ExtensionModuleController extends BaseController @@ -257,4 +257,23 @@ class ExtensionModuleController extends BaseController
257 } 257 }
258 $this->response('success',Code::SUCCESS,['str'=>$uniqueString]); 258 $this->response('success',Code::SUCCESS,['str'=>$uniqueString]);
259 } 259 }
  260 +
  261 + /**
  262 + * @remark :获取类型
  263 + * @name :getFieldType
  264 + * @author :lyh
  265 + * @method :post
  266 + * @time :2024/8/22 11:22
  267 + */
  268 + public function getFieldType(){
  269 + $data = [
  270 + 1=>'文本框',
  271 + 2=>'多文本框',
  272 + 3=>'图片框',
  273 + 4=>'文件框',
  274 + 5=>'下拉框',
  275 + 6=>'自动订单'
  276 + ];
  277 + $this->response('success',Code::SUCCESS,$data);
  278 + }
260 } 279 }
@@ -17,6 +17,7 @@ use App\Models\Product\ExtendInfo; @@ -17,6 +17,7 @@ use App\Models\Product\ExtendInfo;
17 use App\Models\Product\Keyword; 17 use App\Models\Product\Keyword;
18 use App\Models\Product\KeywordRelated; 18 use App\Models\Product\KeywordRelated;
19 use App\Models\Product\Product; 19 use App\Models\Product\Product;
  20 +use App\Models\Product\ProductType;
20 use App\Models\RouteMap\RouteMap; 21 use App\Models\RouteMap\RouteMap;
21 use App\Models\Template\Setting; 22 use App\Models\Template\Setting;
22 use App\Models\Template\BTemplate; 23 use App\Models\Template\BTemplate;
@@ -665,4 +666,41 @@ class ProductController extends BaseController @@ -665,4 +666,41 @@ class ProductController extends BaseController
665 $logic->delProductKeyword(); 666 $logic->delProductKeyword();
666 $this->response('success'); 667 $this->response('success');
667 } 668 }
  669 +
  670 + /**
  671 + * @remark :获取产品类型
  672 + * @name :getProductType
  673 + * @author :lyh
  674 + * @method :post
  675 + * @time :2024/8/21 17:18
  676 + */
  677 + public function getProductType(){
  678 + $typeModel = new ProductType();
  679 + $data = $typeModel->list(['project_id'=>['in',[0,$this->user['project_id']]]]);
  680 + $this->response('success',Code::SUCCESS,$data);
  681 + }
  682 +
  683 + /**
  684 + * @remark :保存数据
  685 + * @name :saveType
  686 + * @author :lyh
  687 + * @method :post
  688 + * @time :2024/8/21 17:52
  689 + */
  690 + public function saveType(){
  691 + $this->request->validate([
  692 + 'name'=>'required',
  693 + ],[
  694 + 'name.required' => 'id不为空',
  695 + ]);
  696 + $typeModel = new ProductType();
  697 + if(isset($this->param['id']) && !empty($this->param['id'])){
  698 + $id = $this->param['id'];
  699 + $typeModel->edit($this->param,['id'=>$this->param['id']]);
  700 + }else{
  701 + $this->param['project_id'] = $this->user['project_id'];
  702 + $id = $typeModel->addReturnId($this->param);
  703 + }
  704 + $this->response('success',Code::SUCCESS,['id'=>$id]);
  705 + }
668 } 706 }
@@ -10,6 +10,7 @@ use App\Jobs\CopyProjectJob; @@ -10,6 +10,7 @@ use App\Jobs\CopyProjectJob;
10 use App\Jobs\SyncImageFileJob; 10 use App\Jobs\SyncImageFileJob;
11 use App\Models\File\ErrorFile; 11 use App\Models\File\ErrorFile;
12 use App\Models\File\Image as ImageModel; 12 use App\Models\File\Image as ImageModel;
  13 +use App\Models\File\WatermarkImage;
13 use App\Models\Project\Project; 14 use App\Models\Project\Project;
14 use App\Services\AmazonS3Service; 15 use App\Services\AmazonS3Service;
15 use App\Services\CosService; 16 use App\Services\CosService;
@@ -525,16 +526,21 @@ class ImageController extends Controller @@ -525,16 +526,21 @@ class ImageController extends Controller
525 */ 526 */
526 public function coverOriginalImage(){ 527 public function coverOriginalImage(){
527 $this->request->validate([ 528 $this->request->validate([
  529 + 'old_url'=>['required'],
528 'url'=>['required'], 530 'url'=>['required'],
529 'saveUrl'=>['required'], 531 'saveUrl'=>['required'],
530 ],[ 532 ],[
  533 + 'old_url.required'=>'原图的相对路径',
531 'url.required'=>'请填写预览的链接', 534 'url.required'=>'请填写预览的链接',
532 'saveUrl.required'=>'保存的路径', 535 'saveUrl.required'=>'保存的路径',
533 ]); 536 ]);
534 $cos = new CosService(); 537 $cos = new CosService();
535 $url = $cos->coverOriginalImage($this->param['url'],$this->param['saveUrl']); 538 $url = $cos->coverOriginalImage($this->param['url'],$this->param['saveUrl']);
536 - $upYun = new UpyunService();  
537 - $upYun->purgePush($url); 539 + $this->saveWatermarkImage($this->param['saveUrl'],$this->param['old_url']);
  540 + if($this->param['saveUrl'] == $this->param['old_url']){
  541 + $upYun = new UpyunService();
  542 + $upYun->purgePush($url);
  543 + }
538 $this->response('success',Code::SUCCESS,['url'=>$url]); 544 $this->response('success',Code::SUCCESS,['url'=>$url]);
539 } 545 }
540 546
@@ -583,4 +589,21 @@ class ImageController extends Controller @@ -583,4 +589,21 @@ class ImageController extends Controller
583 $data = $cos->getPosition(); 589 $data = $cos->getPosition();
584 $this->response('success',Code::SUCCESS,$data); 590 $this->response('success',Code::SUCCESS,$data);
585 } 591 }
  592 +
  593 + /**
  594 + * @remark :保存水印图片记录
  595 + * @name :saveWatermarkImage
  596 + * @author :lyh
  597 + * @method :post
  598 + * @time :2024/8/21 14:34
  599 + */
  600 + public function saveWatermarkImage($path,$old_path){
  601 + $watermarkImageModel = new WatermarkImage();
  602 + $data = [
  603 + 'path' => $path,
  604 + 'old_path'=>$old_path,
  605 + 'project_id' =>$this->cache['project_id'] ?? 0
  606 + ];
  607 + return $watermarkImageModel->addReturnId($data);
  608 + }
586 } 609 }
@@ -149,6 +149,11 @@ class CustomModuleContentLogic extends BaseLogic @@ -149,6 +149,11 @@ class CustomModuleContentLogic extends BaseLogic
149 * @time :2023/12/7 15:04 149 * @time :2023/12/7 15:04
150 */ 150 */
151 public function contentAdd(){ 151 public function contentAdd(){
  152 + //验证当前name是否已添加
  153 + $info = $this->model->read(['name'=>$this->param['name'],'module_id'=>$this->param['module_id']]);
  154 + if($info !== false){
  155 + $this->fail('当前数据名称已存在');
  156 + }
152 try { 157 try {
153 $this->param['sort'] = $this->setNewsSort(); 158 $this->param['sort'] = $this->setNewsSort();
154 $id = $this->model->addReturnId($this->param); 159 $id = $this->model->addReturnId($this->param);
@@ -178,6 +178,7 @@ class UserLoginLogic @@ -178,6 +178,7 @@ class UserLoginLogic
178 $info['uptime'] = $project['uptime']; 178 $info['uptime'] = $project['uptime'];
179 $info['storage_type'] = $project['storage_type']; 179 $info['storage_type'] = $project['storage_type'];
180 $info['project_location'] = $project['project_location']; 180 $info['project_location'] = $project['project_location'];
  181 + $info['open_export_product'] = $project['open_export_product'];
181 $info['is_update_language'] = $project['is_update_language']; 182 $info['is_update_language'] = $project['is_update_language'];
182 $info['configuration'] = $project['deploy_build']['configuration']; 183 $info['configuration'] = $project['deploy_build']['configuration'];
183 $info['file_cdn'] = $project['deploy_build']['file_cdn']; 184 $info['file_cdn'] = $project['deploy_build']['file_cdn'];
@@ -286,6 +287,7 @@ class UserLoginLogic @@ -286,6 +287,7 @@ class UserLoginLogic
286 $info['configuration'] = $project['deploy_build']['configuration']; 287 $info['configuration'] = $project['deploy_build']['configuration'];
287 $info['project_type'] = $project['type']; 288 $info['project_type'] = $project['type'];
288 $info['storage_type'] = $project['storage_type']; 289 $info['storage_type'] = $project['storage_type'];
  290 + $info['open_export_product'] = $project['open_export_product'];
289 $info['project_location'] = $project['project_location']; 291 $info['project_location'] = $project['project_location'];
290 $info['file_cdn'] = $project['deploy_build']['file_cdn']; 292 $info['file_cdn'] = $project['deploy_build']['file_cdn'];
291 $info['service_duration'] = $project['deploy_build']['service_duration'] ?? 0; 293 $info['service_duration'] = $project['deploy_build']['service_duration'] ?? 0;
  1 +<?php
  2 +/**
  3 + * @remark :
  4 + * @name :WatermarkImage.php
  5 + * @author :lyh
  6 + * @method :post
  7 + * @time :2024/8/21 14:29
  8 + */
  9 +
  10 +namespace App\Models\File;
  11 +
  12 +use App\Models\Base;
  13 +
  14 +class WatermarkImage extends Base
  15 +{
  16 + protected $table = 'gl_watermark_image';
  17 +}
  1 +<?php
  2 +/**
  3 + * @remark :
  4 + * @name :ProductType.php
  5 + * @author :lyh
  6 + * @method :post
  7 + * @time :2024/8/21 16:46
  8 + */
  9 +
  10 +namespace App\Models\Product;
  11 +
  12 +use App\Models\Base;
  13 +
  14 +class ProductType extends Base
  15 +{
  16 + protected $table = 'gl_product_type';
  17 +}
@@ -257,6 +257,8 @@ Route::middleware(['bloginauth'])->group(function () { @@ -257,6 +257,8 @@ Route::middleware(['bloginauth'])->group(function () {
257 Route::any('/sendAiProduct', [\App\Http\Controllers\Bside\Product\ProductController::class, 'sendAiProduct'])->name('product_sendAiProduct'); 257 Route::any('/sendAiProduct', [\App\Http\Controllers\Bside\Product\ProductController::class, 'sendAiProduct'])->name('product_sendAiProduct');
258 Route::any('/getSearchCategoryList', [\App\Http\Controllers\Bside\Product\ProductController::class, 'getSearchCategoryList'])->name('product_getSearchCategoryList'); 258 Route::any('/getSearchCategoryList', [\App\Http\Controllers\Bside\Product\ProductController::class, 'getSearchCategoryList'])->name('product_getSearchCategoryList');
259 Route::any('/delProductKeyword', [\App\Http\Controllers\Bside\Product\ProductController::class, 'delProductKeyword'])->name('product_delProductKeyword'); 259 Route::any('/delProductKeyword', [\App\Http\Controllers\Bside\Product\ProductController::class, 'delProductKeyword'])->name('product_delProductKeyword');
  260 + Route::any('/getProductType', [\App\Http\Controllers\Bside\Product\ProductController::class, 'getProductType'])->name('product_getProductType');
  261 + Route::any('/saveType', [\App\Http\Controllers\Bside\Product\ProductController::class, 'saveType'])->name('product_saveType');
260 //产品分类 262 //产品分类
261 Route::get('category', [\App\Http\Controllers\Bside\Product\CategoryController::class, 'index'])->name('product_category'); 263 Route::get('category', [\App\Http\Controllers\Bside\Product\CategoryController::class, 'index'])->name('product_category');
262 Route::get('category/info', [\App\Http\Controllers\Bside\Product\CategoryController::class, 'info'])->name('product_category_info'); 264 Route::get('category/info', [\App\Http\Controllers\Bside\Product\CategoryController::class, 'info'])->name('product_category_info');
@@ -582,6 +584,7 @@ Route::middleware(['bloginauth'])->group(function () { @@ -582,6 +584,7 @@ Route::middleware(['bloginauth'])->group(function () {
582 Route::any('/addModuleValue', [\App\Http\Controllers\Bside\ExtensionModule\ExtensionModuleController::class, 'addModuleValue'])->name('extension_module_addModuleValue'); 584 Route::any('/addModuleValue', [\App\Http\Controllers\Bside\ExtensionModule\ExtensionModuleController::class, 'addModuleValue'])->name('extension_module_addModuleValue');
583 Route::any('/editModuleValue', [\App\Http\Controllers\Bside\ExtensionModule\ExtensionModuleController::class, 'editModuleValue'])->name('extension_module_editModuleValue'); 585 Route::any('/editModuleValue', [\App\Http\Controllers\Bside\ExtensionModule\ExtensionModuleController::class, 'editModuleValue'])->name('extension_module_editModuleValue');
584 Route::any('/sendUniqueStr', [\App\Http\Controllers\Bside\ExtensionModule\ExtensionModuleController::class, 'sendUniqueStr'])->name('extension_module_sendUniqueStr'); 586 Route::any('/sendUniqueStr', [\App\Http\Controllers\Bside\ExtensionModule\ExtensionModuleController::class, 'sendUniqueStr'])->name('extension_module_sendUniqueStr');
  587 + Route::any('/getFieldType', [\App\Http\Controllers\Bside\ExtensionModule\ExtensionModuleController::class, 'getFieldType'])->name('extension_module_getFieldType');
585 }); 588 });
586 589
587 //自定义小语种文本信息 590 //自定义小语种文本信息