作者 Your Name
@@ -78,10 +78,10 @@ class DeleteBlogCategory extends Command @@ -78,10 +78,10 @@ class DeleteBlogCategory extends Command
78 $this->updateCategory(); 78 $this->updateCategory();
79 DB::disconnect('custom_mysql'); 79 DB::disconnect('custom_mysql');
80 $noticeLogModel->edit(['status'=>NoticeLog::STATUS_SUCCESS],['id'=>$item['id']]); 80 $noticeLogModel->edit(['status'=>NoticeLog::STATUS_SUCCESS],['id'=>$item['id']]);
81 - echo 'success:' . $item['id'] . PHP_EOL; 81 + echo 'success:' . $item['id'] . '执行时间:'. date('Y-m-d H:i:s') . PHP_EOL;
82 }catch (\Exception $e){ 82 }catch (\Exception $e){
83 - echo 'error:' . $item['id'] . $e->getMessage() . PHP_EOL;  
84 - errorLog('delete_blog_category删除失败', $item, $e); 83 + echo 'error:' . $item['id'] . $e->getMessage() . '执行时间:'.date('Y-m-d H:i:s') . PHP_EOL;
  84 + errorLog('delete_blog_category删除失败'.date('Y-m-d H:i:s'), $item, $e);
85 } 85 }
86 } 86 }
87 return true; 87 return true;
@@ -78,9 +78,9 @@ class DeleteCustomCategory extends Command @@ -78,9 +78,9 @@ class DeleteCustomCategory extends Command
78 $this->updateCategory(); 78 $this->updateCategory();
79 DB::disconnect('custom_mysql'); 79 DB::disconnect('custom_mysql');
80 $noticeLogModel->edit(['status'=>NoticeLog::STATUS_SUCCESS],['id'=>$item['id']]); 80 $noticeLogModel->edit(['status'=>NoticeLog::STATUS_SUCCESS],['id'=>$item['id']]);
81 - echo 'success:' . $item['id'] . PHP_EOL; 81 + echo 'success:' . $item['id'] . '执行时间:'. date('Y-m-d H:i:s') . PHP_EOL;
82 }catch (\Exception $e){ 82 }catch (\Exception $e){
83 - echo 'error:' . $item['id'] . $e->getMessage() . PHP_EOL; 83 + echo 'error:' . $item['id'] . $e->getMessage() . '执行时间:'. date('Y-m-d H:i:s') . PHP_EOL;
84 errorLog('delete_custom_category删除失败', $item, $e); 84 errorLog('delete_custom_category删除失败', $item, $e);
85 } 85 }
86 } 86 }
@@ -78,9 +78,9 @@ class DeleteNewsCategory extends Command @@ -78,9 +78,9 @@ class DeleteNewsCategory extends Command
78 $this->updateCategory(); 78 $this->updateCategory();
79 DB::disconnect('custom_mysql'); 79 DB::disconnect('custom_mysql');
80 $noticeLogModel->edit(['status'=>NoticeLog::STATUS_SUCCESS],['id'=>$item['id']]); 80 $noticeLogModel->edit(['status'=>NoticeLog::STATUS_SUCCESS],['id'=>$item['id']]);
81 - echo 'success:' . $item['id'] . PHP_EOL; 81 + echo 'success:' . $item['id'] . '执行时间:'.date('Y-m-d H:i:s') . PHP_EOL;
82 }catch (\Exception $e){ 82 }catch (\Exception $e){
83 - echo 'error:' . $item['id'] . $e->getMessage() . PHP_EOL; 83 + echo 'error:' . $item['id'] . $e->getMessage() . '执行时间:'.date('Y-m-d H:i:s') . PHP_EOL;
84 errorLog('delete_news_category删除失败', $item, $e); 84 errorLog('delete_news_category删除失败', $item, $e);
85 } 85 }
86 } 86 }
@@ -79,10 +79,10 @@ class DeleteProductCategory extends Command @@ -79,10 +79,10 @@ class DeleteProductCategory extends Command
79 $this->updateCategory(); 79 $this->updateCategory();
80 DB::disconnect('custom_mysql'); 80 DB::disconnect('custom_mysql');
81 $noticeLogModel->edit(['status'=>NoticeLog::STATUS_SUCCESS],['id'=>$item['id']]); 81 $noticeLogModel->edit(['status'=>NoticeLog::STATUS_SUCCESS],['id'=>$item['id']]);
82 - echo 'success:' . $item['id'] . PHP_EOL; 82 + echo 'success:' . $item['id'] . '执行时间:'.date('Y-m-d H:i:s') . PHP_EOL;
83 }catch (\Exception $e){ 83 }catch (\Exception $e){
84 echo 'error:' . $item['id'] . $e->getMessage() . PHP_EOL; 84 echo 'error:' . $item['id'] . $e->getMessage() . PHP_EOL;
85 - errorLog('delete_product_category删除失败', $item, $e); 85 + errorLog('delete_product_category删除失败'.',执行时间:'.date('Y-m-d H:i:s'), $item, $e);
86 } 86 }
87 } 87 }
88 return true; 88 return true;
@@ -79,7 +79,7 @@ class InitKeyword extends Command @@ -79,7 +79,7 @@ class InitKeyword extends Command
79 ProjectServer::useProject($notice['data']['project_id']); 79 ProjectServer::useProject($notice['data']['project_id']);
80 $keyword = Keyword::whereNull('route')->get(); 80 $keyword = Keyword::whereNull('route')->get();
81 foreach ($keyword as $val) { 81 foreach ($keyword as $val) {
82 - $this->output(' keywordID: ' . $val->id . ', title: ' . $val->title); 82 + $this->output(' keywordID: ' . $val->id . ', title: ' . $val->title . '时间:'. date('Y-m-d H:i:s'));
83 try { 83 try {
84 if(contains_russian($val['title'])){ 84 if(contains_russian($val['title'])){
85 $title = Translate::tran($val['title'], 'en'); 85 $title = Translate::tran($val['title'], 'en');
@@ -90,7 +90,7 @@ class InitKeyword extends Command @@ -90,7 +90,7 @@ class InitKeyword extends Command
90 $val->route = $route; 90 $val->route = $route;
91 $val->save(); 91 $val->save();
92 } catch (\Exception $e) { 92 } catch (\Exception $e) {
93 - $this->output(' keywordID: ' . $val->id . ', title: ' . $val->title . ', error: ' . $e->getMessage()); 93 + $this->output(' keywordID: ' . $val->id . ', title: ' . $val->title . ', error: ' . $e->getMessage() . '执行时间:'.date('Y-m-d H:i:s'));
94 } 94 }
95 } 95 }
96 96
@@ -63,9 +63,9 @@ class InitProject extends Command @@ -63,9 +63,9 @@ class InitProject extends Command
63 $project_logic->createdRole($project['id']); 63 $project_logic->createdRole($project['id']);
64 $item->status = NoticeLog::STATUS_SUCCESS; 64 $item->status = NoticeLog::STATUS_SUCCESS;
65 $item->save(); 65 $item->save();
66 - echo 'success:' . $item['id'] . PHP_EOL; 66 + echo 'success:' . $item['id'] . PHP_EOL . date('Y-m-d H:i:s');
67 }catch (\Exception $e){ 67 }catch (\Exception $e){
68 - echo 'error:' . $item['id'] . $e->getMessage() . PHP_EOL; 68 + echo 'error:' . $item['id'] . $e->getMessage() . PHP_EOL . date('Y-m-d H:i:s');
69 errorLog('项目初始化失败', $item, $e); 69 errorLog('项目初始化失败', $item, $e);
70 $this->retry($item, $e->getMessage()); 70 $this->retry($item, $e->getMessage());
71 } 71 }
@@ -96,9 +96,9 @@ class SyncProject extends Command @@ -96,9 +96,9 @@ class SyncProject extends Command
96 } 96 }
97 $item->status = NoticeLog::STATUS_SUCCESS; 97 $item->status = NoticeLog::STATUS_SUCCESS;
98 $item->save(); 98 $item->save();
99 - echo 'success:' . $item['id'] . PHP_EOL; 99 + echo 'success:' . $item['id'] . '执行时间:' . date('Y-m-d H:i:s') . PHP_EOL;
100 }catch (\Exception $e){ 100 }catch (\Exception $e){
101 - echo 'error:' . $item['id'] . $e->getMessage() .' line ' . $e->getLine() . PHP_EOL; 101 + echo 'error:' . $item['id'] . $e->getMessage() .' line ' . $e->getLine() . '执行时间:' . PHP_EOL;
102 errorLog('项目同步失败', $item, $e); 102 errorLog('项目同步失败', $item, $e);
103 $this->retry($item, $e->getMessage()); 103 $this->retry($item, $e->getMessage());
104 } 104 }
@@ -13,7 +13,6 @@ use Illuminate\Support\Facades\DB; @@ -13,7 +13,6 @@ use Illuminate\Support\Facades\DB;
13 use Illuminate\Support\Facades\Redis; 13 use Illuminate\Support\Facades\Redis;
14 use Illuminate\Support\Facades\Schema; 14 use Illuminate\Support\Facades\Schema;
15 use Illuminate\Support\Str; 15 use Illuminate\Support\Str;
16 -  
17 /** 16 /**
18 * 17 *
19 * Class SyncSubmitTask 18 * Class SyncSubmitTask
@@ -30,6 +29,7 @@ class SyncSubmitTaskDistribution extends Command @@ -30,6 +29,7 @@ class SyncSubmitTaskDistribution extends Command
30 public function handle() 29 public function handle()
31 { 30 {
32 while (true) { 31 while (true) {
  32 + try {
33 $len = Redis::llen('sync_submit_task'); 33 $len = Redis::llen('sync_submit_task');
34 if (!$len) { 34 if (!$len) {
35 $max_id = SyncSubmitTaskModel::orderBy('id', 'desc')->value('id'); 35 $max_id = SyncSubmitTaskModel::orderBy('id', 'desc')->value('id');
@@ -41,8 +41,12 @@ class SyncSubmitTaskDistribution extends Command @@ -41,8 +41,12 @@ class SyncSubmitTaskDistribution extends Command
41 $task->status = 3; 41 $task->status = 3;
42 $task->save(); 42 $task->save();
43 Redis::lpush('sync_submit_task', $task->id); 43 Redis::lpush('sync_submit_task', $task->id);
  44 + $this->output('分发:' . $task->id);
  45 + }
44 } 46 }
45 } 47 }
  48 + }catch (\Exception $e){
  49 + $this->output('异常:' . $e->getMessage());
46 } 50 }
47 } 51 }
48 } 52 }
@@ -32,7 +32,7 @@ class SyncTimeFiles extends Command @@ -32,7 +32,7 @@ class SyncTimeFiles extends Command
32 public function handle() 32 public function handle()
33 { 33 {
34 $fileModel = new File(); 34 $fileModel = new File();
35 - $start = '2024-08-10 00:00:00'; 35 + $start = '2024-08-26 00:00:00';
36 $end = date('Y-m-d H:i:s'); 36 $end = date('Y-m-d H:i:s');
37 $lists = $fileModel->list(['created_at'=>['between',[$start,$end]]]); 37 $lists = $fileModel->list(['created_at'=>['between',[$start,$end]]]);
38 foreach ($lists as $v){ 38 foreach ($lists as $v){
@@ -349,4 +349,6 @@ class ExtensionModuleController extends BaseController @@ -349,4 +349,6 @@ class ExtensionModuleController extends BaseController
349 $moduleValueModel->del(['module_id'=>$this->param['module_id'],'uuid'=>$this->param['uuid']]); 349 $moduleValueModel->del(['module_id'=>$this->param['module_id'],'uuid'=>$this->param['uuid']]);
350 $this->response('success'); 350 $this->response('success');
351 } 351 }
  352 +
  353 +
352 } 354 }
@@ -703,4 +703,22 @@ class ProductController extends BaseController @@ -703,4 +703,22 @@ class ProductController extends BaseController
703 } 703 }
704 $this->response('success',Code::SUCCESS,['id'=>$id]); 704 $this->response('success',Code::SUCCESS,['id'=>$id]);
705 } 705 }
  706 +
  707 + /**
  708 + * @remark :删除
  709 + * @name :delProductType
  710 + * @author :lyh
  711 + * @method :post
  712 + * @time :2024/8/27 9:44
  713 + */
  714 + public function delProductType(){
  715 + $this->request->validate([
  716 + 'name'=>'required',
  717 + ],[
  718 + 'name.required' => 'id不为空',
  719 + ]);
  720 + $typeModel = new ProductType();
  721 + $typeModel->del(['project_id'=>$this->user['project_id'],'name'=>$this->param['name']]);
  722 + $this->response('success');
  723 + }
706 } 724 }
@@ -207,8 +207,9 @@ class ImageController extends Controller @@ -207,8 +207,9 @@ class ImageController extends Controller
207 $fileName = $this->getOnlyFilename($name,$param['project_id'] ?? 0); 207 $fileName = $this->getOnlyFilename($name,$param['project_id'] ?? 0);
208 //上传到cos 208 //上传到cos
209 if($this->upload_location == 0){ 209 if($this->upload_location == 0){
  210 + $watermarkOptions = $this->getProjectConfig($this->cache['project_id'] ?? 0);
210 $cosService = new CosService(); 211 $cosService = new CosService();
211 - $cosService->uploadFile($files,$this->path,$fileName); 212 + $cosService->uploadFile($files,$this->path,$fileName,false,$watermarkOptions);
212 }else{ 213 }else{
213 //TODO::上传亚马逊 214 //TODO::上传亚马逊
214 $amazonS3Service = new AmazonS3Service(); 215 $amazonS3Service = new AmazonS3Service();
@@ -342,7 +343,7 @@ class ImageController extends Controller @@ -342,7 +343,7 @@ class ImageController extends Controller
342 if($this->upload_location == 0){ 343 if($this->upload_location == 0){
343 $watermarkOptions = $this->getProjectConfig($this->cache['project_id'] ?? 0); 344 $watermarkOptions = $this->getProjectConfig($this->cache['project_id'] ?? 0);
344 $cosService = new CosService(); 345 $cosService = new CosService();
345 - $cosService->uploadFile($file,$this->path,$fileName,$watermarkOptions); 346 + $cosService->uploadFile($file,$this->path,$fileName,false,$watermarkOptions);
346 }else{ 347 }else{
347 //TODO::上传亚马逊 348 //TODO::上传亚马逊
348 $amazonS3Service = new AmazonS3Service(); 349 $amazonS3Service = new AmazonS3Service();
@@ -365,37 +366,44 @@ class ImageController extends Controller @@ -365,37 +366,44 @@ class ImageController extends Controller
365 * @time :2024/8/24 11:03 366 * @time :2024/8/24 11:03
366 */ 367 */
367 public function getProjectConfig($project_id = 0){ 368 public function getProjectConfig($project_id = 0){
  369 + $str = '';
368 $imageSettingModel = new ImageSetting(); 370 $imageSettingModel = new ImageSetting();
369 $settingInfo = $imageSettingModel->read(['project_id'=>$project_id]); 371 $settingInfo = $imageSettingModel->read(['project_id'=>$project_id]);
370 if($settingInfo !== false){ 372 if($settingInfo !== false){
371 if($settingInfo['status'] == 1 && !empty($settingInfo['image_data'])){ 373 if($settingInfo['status'] == 1 && !empty($settingInfo['image_data'])){
372 $image_data = json_decode($settingInfo['image_data'],true); 374 $image_data = json_decode($settingInfo['image_data'],true);
373 foreach ($image_data as $k => $v){ 375 foreach ($image_data as $k => $v){
374 - $arr = implode('/',$v);  
375 - if ($arr[0] == 'image') {  
376 - $arr[1] = urlSafeBase64Encode($arr[1]); 376 + if (str_starts_with($v, "image/")) {
  377 + $v = 'image/'.urlSafeBase64Encode(substr($v, strlen("image/")));
377 } 378 }
378 $image_data[$k] = $v; 379 $image_data[$k] = $v;
379 } 380 }
  381 + $str = 'watermark/1/'.implode('/',$image_data);
  382 + return $str;
380 } 383 }
381 if($settingInfo['status'] == 2 && !empty($settingInfo['str_data'])){ 384 if($settingInfo['status'] == 2 && !empty($settingInfo['str_data'])){
382 $str_data = json_decode($settingInfo['str_data'],true); 385 $str_data = json_decode($settingInfo['str_data'],true);
383 foreach ($str_data as $k => $v){ 386 foreach ($str_data as $k => $v){
384 - $arr = implode('/',$v); 387 + $arr = explode('/',$v);
385 if ($arr[0] == 'text') { 388 if ($arr[0] == 'text') {
386 $arr[1] = urlSafeBase64Encode($arr[1]); 389 $arr[1] = urlSafeBase64Encode($arr[1]);
  390 + $v = implode('/',$arr);
387 } 391 }
388 if ($arr[0] == 'font') { 392 if ($arr[0] == 'font') {
389 $arr[1] = urlSafeBase64Encode($arr[1]); 393 $arr[1] = urlSafeBase64Encode($arr[1]);
  394 + $v = implode('/',$arr);
390 } 395 }
391 if ($arr[0] == 'fill') { 396 if ($arr[0] == 'fill') {
392 $arr[1] = urlSafeBase64Encode($arr[1]); 397 $arr[1] = urlSafeBase64Encode($arr[1]);
  398 + $v = implode('/',$arr);
393 } 399 }
394 - $str_data[$k] = $arr; 400 + $str_data[$k] = $v;
395 } 401 }
  402 + $str = 'watermark/2/'.implode('/',$str_data);
  403 + return $str;
396 } 404 }
397 } 405 }
398 - return null; 406 + return $str;
399 } 407 }
400 408
401 /** 409 /**
@@ -726,10 +734,10 @@ class ImageController extends Controller @@ -726,10 +734,10 @@ class ImageController extends Controller
726 if($info === false){ 734 if($info === false){
727 $this->response('请先设置水印',Code::SYSTEM_ERROR); 735 $this->response('请先设置水印',Code::SYSTEM_ERROR);
728 } 736 }
729 - if($info['status'] == 1 && !empty($info['image_data'])){ 737 + if($info['status'] == 1 && empty($info['image_data'])){
730 $this->response('请先设置水印',Code::SYSTEM_ERROR); 738 $this->response('请先设置水印',Code::SYSTEM_ERROR);
731 } 739 }
732 - if($info['status'] == 2 && !empty($info['str_data'])){ 740 + if($info['status'] == 2 && empty($info['str_data'])){
733 $this->response('请先设置水印',Code::SYSTEM_ERROR); 741 $this->response('请先设置水印',Code::SYSTEM_ERROR);
734 } 742 }
735 $imageSetting->edit(['status'=>$this->param['status']],['project_id'=>$this->cache['project_id']]); 743 $imageSetting->edit(['status'=>$this->param['status']],['project_id'=>$this->cache['project_id']]);
@@ -753,7 +761,9 @@ class ImageController extends Controller @@ -753,7 +761,9 @@ class ImageController extends Controller
753 if(!empty($info['str_data'])){ 761 if(!empty($info['str_data'])){
754 $info['str_data'] = json_decode($info['str_data'],true); 762 $info['str_data'] = json_decode($info['str_data'],true);
755 } 763 }
  764 + $info['domain'] = 'http://globalso-v6-1309677403.cos.ap-hongkong.myqcloud.com';
756 } 765 }
  766 +
757 $this->response('success',Code::SUCCESS,$info); 767 $this->response('success',Code::SUCCESS,$info);
758 } 768 }
759 } 769 }
@@ -9,6 +9,7 @@ use App\Models\CustomModule\CustomModuleCategory; @@ -9,6 +9,7 @@ use App\Models\CustomModule\CustomModuleCategory;
9 use App\Models\IsCom\ProjectComConfig; 9 use App\Models\IsCom\ProjectComConfig;
10 use App\Models\News\NewsCategory; 10 use App\Models\News\NewsCategory;
11 use App\Models\Product\Category; 11 use App\Models\Product\Category;
  12 +use App\Models\Product\ProductType;
12 use App\Models\Project\PageSetting; 13 use App\Models\Project\PageSetting;
13 use App\Models\RouteMap\RouteMap; 14 use App\Models\RouteMap\RouteMap;
14 use App\Models\Service\Service as ServiceSettingModel; 15 use App\Models\Service\Service as ServiceSettingModel;
@@ -777,6 +778,14 @@ class BTemplateLogic extends BaseLogic @@ -777,6 +778,14 @@ class BTemplateLogic extends BaseLogic
777 $productCategory = $this->getCategoryList((new Category()),1); 778 $productCategory = $this->getCategoryList((new Category()),1);
778 $newCategory = $this->getCategoryList((new NewsCategory())); 779 $newCategory = $this->getCategoryList((new NewsCategory()));
779 $blogCategory = $this->getCategoryList((new BlogCategory())); 780 $blogCategory = $this->getCategoryList((new BlogCategory()));
  781 + $productTypeModel = new ProductType();
  782 + $productTypeList = $productTypeModel->list(['project_id'=>$this->user['project_id']],'id',['id','name']);
  783 + if(!empty($productTypeList)){
  784 + foreach ($productTypeList as $items){
  785 + $items['id'] = 'product_type_'.$items['id'];
  786 + $data["products"]["category"][] =$items;
  787 + }
  788 + }
780 if (!empty($productCategory)){ 789 if (!empty($productCategory)){
781 foreach ($productCategory as $item){$data["products"]["category"][] =$item;} 790 foreach ($productCategory as $item){$data["products"]["category"][] =$item;}
782 } 791 }
@@ -837,6 +846,14 @@ class BTemplateLogic extends BaseLogic @@ -837,6 +846,14 @@ class BTemplateLogic extends BaseLogic
837 $values['category'][] = $item; 846 $values['category'][] = $item;
838 } 847 }
839 } 848 }
  849 + $productTypeModel = new ProductType();
  850 + $productTypeList = $productTypeModel->list(['project_id'=>$this->user['project_id']],'id',['id','name']);
  851 + if(!empty($productTypeList)){
  852 + foreach ($productTypeList as $items){
  853 + $items['id'] = 'product_type_'.$items['id'];
  854 + $values['category'][] = $items;
  855 + }
  856 + }
840 break; 857 break;
841 case '新闻': 858 case '新闻':
842 $newCategory = $this->getCategoryList((new NewsCategory()),0,['id','name','pid']); 859 $newCategory = $this->getCategoryList((new NewsCategory()),0,['id','name','pid']);
@@ -23,7 +23,7 @@ class CosService @@ -23,7 +23,7 @@ class CosService
23 * @method :post 23 * @method :post
24 * @time :2023/7/19 15:28 24 * @time :2023/7/19 15:28
25 */ 25 */
26 - public function uploadFile(&$files,$path,$filename, $binary = false,$watermarkOptions = null) 26 + public function uploadFile(&$files,$path,$filename, $binary = false,$watermarkOptions = '')
27 { 27 {
28 $cos = config('filesystems.disks.cos'); 28 $cos = config('filesystems.disks.cos');
29 $cosClient = new Client([ 29 $cosClient = new Client([
@@ -42,18 +42,18 @@ class CosService @@ -42,18 +42,18 @@ class CosService
42 ]; 42 ];
43 //水印 43 //水印
44 if ($watermarkOptions) { 44 if ($watermarkOptions) {
45 - $options['Pic-Operations'] = json_encode([ 45 + $options['PicOperations'] = json_encode([
46 'is_pic_info' => 1, 46 'is_pic_info' => 1,
47 'rules' => [ 47 'rules' => [
48 [ 48 [
49 - 'fileid' => $filename, // 使用相同的文件名保存  
50 - 'rule' => 'watermark/1/'.implode('/',$watermarkOptions), 49 + 'fileid' => $key, // 使用相同的文件名保存
  50 + 'rule' => $watermarkOptions,
51 ] 51 ]
52 ] 52 ]
53 - ]); 53 + ], true);
54 } 54 }
55 - // 上传文件  
56 - $cosClient->putObject($options); 55 + $res = $cosClient->putObject($options);
  56 + @file_put_contents(storage_path('logs/lyh_error.log'), var_export($res, true) . PHP_EOL, FILE_APPEND);
57 return $key; 57 return $key;
58 } 58 }
59 59
@@ -189,7 +189,7 @@ class CosService @@ -189,7 +189,7 @@ class CosService
189 if($is_image){ 189 if($is_image){
190 $param = [ 190 $param = [
191 'image/'.urlSafeBase64Encode($domain.$data['image'] ?? ''),//图片 191 'image/'.urlSafeBase64Encode($domain.$data['image'] ?? ''),//图片
192 - 'gravity/'.($data['gravity'] ?? 'SouthEast'), 192 + 'gravity/'.($data['gravity'] ?? 'southeast'),
193 'dx/'.($data['dx'] ?? 0), 193 'dx/'.($data['dx'] ?? 0),
194 'dy/'. ($data['dy'] ?? 0), 194 'dy/'. ($data['dy'] ?? 0),
195 'batch/'.($data['batch'] ?? 0),//平铺水印功能 195 'batch/'.($data['batch'] ?? 0),//平铺水印功能
@@ -200,7 +200,7 @@ class CosService @@ -200,7 +200,7 @@ class CosService
200 }else{ 200 }else{
201 $param = [ 201 $param = [
202 'text/'.urlSafeBase64Encode($data['text'] ?? ''),//文字水印名称 202 'text/'.urlSafeBase64Encode($data['text'] ?? ''),//文字水印名称
203 - 'gravity/'.($data['gravity'] ?? 'SouthEast'), 203 + 'gravity/'.($data['gravity'] ?? 'southeast'),
204 'dx/'.($data['dx'] ?? 10), 204 'dx/'.($data['dx'] ?? 10),
205 'dy/'. ($data['dy'] ?? 10), 205 'dy/'. ($data['dy'] ?? 10),
206 'font/'.urlSafeBase64Encode($data['font'] ?? 'tahoma.ttf'),//默认宋体 206 'font/'.urlSafeBase64Encode($data['font'] ?? 'tahoma.ttf'),//默认宋体
@@ -259,6 +259,7 @@ Route::middleware(['bloginauth'])->group(function () { @@ -259,6 +259,7 @@ Route::middleware(['bloginauth'])->group(function () {
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'); 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'); 261 Route::any('/saveType', [\App\Http\Controllers\Bside\Product\ProductController::class, 'saveType'])->name('product_saveType');
  262 + Route::any('/delProductType', [\App\Http\Controllers\Bside\Product\ProductController::class, 'delProductType'])->name('product_delProductType');
262 //产品分类 263 //产品分类
263 Route::get('category', [\App\Http\Controllers\Bside\Product\CategoryController::class, 'index'])->name('product_category'); 264 Route::get('category', [\App\Http\Controllers\Bside\Product\CategoryController::class, 'index'])->name('product_category');
264 Route::get('category/info', [\App\Http\Controllers\Bside\Product\CategoryController::class, 'info'])->name('product_category_info'); 265 Route::get('category/info', [\App\Http\Controllers\Bside\Product\CategoryController::class, 'info'])->name('product_category_info');