作者 赵彬吉

re_inquiry_config

@@ -13,6 +13,7 @@ use App\Helper\QuanqiusouApi; @@ -13,6 +13,7 @@ use App\Helper\QuanqiusouApi;
13 use App\Http\Controllers\Aside\BaseController; 13 use App\Http\Controllers\Aside\BaseController;
14 use App\Models\Channel\Channel; 14 use App\Models\Channel\Channel;
15 use App\Models\Domain\DomainInfo; 15 use App\Models\Domain\DomainInfo;
  16 +use App\Models\Inquiry\ReInquiryConfig;
16 use App\Models\Inquiry\ReInquiryCost; 17 use App\Models\Inquiry\ReInquiryCost;
17 use App\Models\Inquiry\ReInquiryCount; 18 use App\Models\Inquiry\ReInquiryCount;
18 use App\Models\Inquiry\ReInquiryDetail; 19 use App\Models\Inquiry\ReInquiryDetail;
@@ -20,6 +21,7 @@ use App\Models\Inquiry\ReInquiryForm; @@ -20,6 +21,7 @@ use App\Models\Inquiry\ReInquiryForm;
20 use App\Models\Inquiry\ReInquiryTask; 21 use App\Models\Inquiry\ReInquiryTask;
21 use App\Models\Project\Project; 22 use App\Models\Project\Project;
22 use App\Utils\HttpUtils; 23 use App\Utils\HttpUtils;
  24 +use App\Utils\LogUtils;
23 use GuzzleHttp\Exception\GuzzleException; 25 use GuzzleHttp\Exception\GuzzleException;
24 use Illuminate\Http\Request; 26 use Illuminate\Http\Request;
25 use Illuminate\Support\Collection; 27 use Illuminate\Support\Collection;
@@ -96,7 +98,7 @@ class AdsController extends BaseController @@ -96,7 +98,7 @@ class AdsController extends BaseController
96 $item['cost'] = ReInquiryCost::getCostByAdIds($item['ad_id']); 98 $item['cost'] = ReInquiryCost::getCostByAdIds($item['ad_id']);
97 } 99 }
98 $result['relay_site_total'] = $relay_site_total; 100 $result['relay_site_total'] = $relay_site_total;
99 - $result['default_ai_param'] = ReInquiryTask::DEFAULT_AI_PARAM; 101 + $result['default_ai_param'] = ReInquiryConfig::getDefaultConfigCache();
100 102
101 return $this->response('success', Code::SUCCESS, $result); 103 return $this->response('success', Code::SUCCESS, $result);
102 } 104 }
@@ -380,4 +382,61 @@ class AdsController extends BaseController @@ -380,4 +382,61 @@ class AdsController extends BaseController
380 382
381 return $this->response('success', Code::SUCCESS, $result); 383 return $this->response('success', Code::SUCCESS, $result);
382 } 384 }
  385 +
  386 + /**
  387 + * 默认配置
  388 + * @author zbj
  389 + * @date 2025/2/12
  390 + */
  391 + public function fbAdsDefaultSet(){
  392 + $config = ReInquiryConfig::get();
  393 + if($this->request->isMethod('get')){
  394 + return $this->response('success', Code::SUCCESS, $config);
  395 + }
  396 +
  397 + DB::beginTransaction();
  398 + try {
  399 + foreach ($config as $item){
  400 + if(empty($this->param[$item->key])){
  401 + throw new \Exception($item->title . '不能为空!');
  402 + }
  403 + $item->content = $this->param[$item->key];
  404 + $item->save();
  405 + }
  406 + ReInquiryConfig::delCache();
  407 + DB::commit();
  408 + }catch (\Exception $e){
  409 + DB::rollBack();
  410 + return $this->response($e->getMessage(), Code::USER_ERROR, []);
  411 + }
  412 + return $this->response('success', Code::SUCCESS, []);
  413 + }
  414 +
  415 + /**
  416 + * 一键批量设置
  417 + * @author zbj
  418 + * @date 2025/2/12
  419 + */
  420 + public function fbAdsSetBatch(){
  421 + $config = ReInquiryConfig::find($this->param['id']);
  422 + if(!$config){
  423 + return $this->response('配置不存在', Code::USER_ERROR, []);
  424 + }
  425 + $tasks = ReInquiryTask::get();
  426 + DB::beginTransaction();
  427 + try {
  428 + foreach ($tasks as $task){
  429 + $ai_param = $task->ai_param;
  430 + $ai_param[$config['key']] = $config['content']?:"";
  431 + $task->ai_param = $ai_param;
  432 + $task->save();
  433 + }
  434 + DB::commit();
  435 + }catch (\Exception $e){
  436 + DB::rollBack();
  437 + LogUtils::error('fbAdsSetBatch error:' . $e->getMessage());
  438 + return $this->response('设置失败', Code::USER_ERROR, []);
  439 + }
  440 + return $this->response('success', Code::SUCCESS, []);
  441 + }
383 } 442 }
  1 +<?php
  2 +
  3 +namespace App\Models\Inquiry;
  4 +
  5 +
  6 +use App\Models\Base;
  7 +use Illuminate\Support\Facades\Cache;
  8 +
  9 +
  10 +/**
  11 + * Class ReInquiryConfig
  12 + * @package App\Models\Inquiry
  13 + * @author zbj
  14 + * @date 2025/2/12
  15 + */
  16 +class ReInquiryConfig extends Base
  17 +{
  18 +
  19 + //设置关联表名
  20 + protected $table = 'gl_re_inquiry_config';
  21 +
  22 +
  23 + public static function getDefaultConfigCache(){
  24 + $cache_key = 'ReInquiryDefaultConfigCache';
  25 + $data = Cache::get($cache_key);
  26 + if(!$data){
  27 + $data = self::pluck('content', 'key');
  28 + if($data){
  29 + Cache::put($cache_key, $data);
  30 + }
  31 + }
  32 + return $data;
  33 + }
  34 +
  35 + public static function delCache(){
  36 + $cache_key = 'ReInquiryDefaultConfigCache';
  37 + Cache::forget($cache_key);
  38 + }
  39 +}
@@ -29,36 +29,6 @@ class ReInquiryTask extends Base @@ -29,36 +29,6 @@ class ReInquiryTask extends Base
29 const STATUS_OPEN = 1; 29 const STATUS_OPEN = 1;
30 const STATUS_CLOSE = 0; 30 const STATUS_CLOSE = 0;
31 31
32 - const DEFAULT_AI_PARAM = [  
33 - 'mkeywords' => '',  
34 - 'characters' => '30  
35 -40  
36 -50  
37 -60  
38 -70  
39 -80  
40 -90  
41 -100  
42 -120  
43 -150',  
44 - 'inkeywords' => 'OEM/ODM价格  
45 -FOB价格多少  
46 -最小起订量  
47 -批发价格多少  
48 -批发价格及价格梯度  
49 -本地是否招商  
50 -支持的支付方式  
51 -产品画册及类别  
52 -公司详细资质  
53 -能否WhatsApp直接联系  
54 -是否需求本地合作伙伴',  
55 - 'suoxie' => 'Thanks 写成 Tks  
56 -Please 写成 Pls  
57 -As Soon As Possible 写成 ASAP  
58 -For Your Information 写成 FYI  
59 -How Much 写成 HM',  
60 - ];  
61 -  
62 /** 32 /**
63 * 创建询盘任务 33 * 创建询盘任务
64 * @param $id 34 * @param $id
@@ -122,6 +92,6 @@ How Much 写成 HM', @@ -122,6 +92,6 @@ How Much 写成 HM',
122 92
123 public function getAiParamAttribute($value) 93 public function getAiParamAttribute($value)
124 { 94 {
125 - return Arr::s2a($value) ?: self::DEFAULT_AI_PARAM; 95 + return Arr::s2a($value) ?: ReInquiryConfig::getDefaultConfigCache();
126 } 96 }
127 } 97 }
@@ -490,6 +490,8 @@ Route::middleware(['aloginauth'])->group(function () { @@ -490,6 +490,8 @@ Route::middleware(['aloginauth'])->group(function () {
490 // FB广告相关路由 490 // FB广告相关路由
491 Route::any('/fb_list', [Aside\Task\AdsController::class, 'fbAdsList'])->name('admin.fb_ads_task_list'); 491 Route::any('/fb_list', [Aside\Task\AdsController::class, 'fbAdsList'])->name('admin.fb_ads_task_list');
492 Route::any('/fb_set', [Aside\Task\AdsController::class, 'setFbAds'])->name('admin.fb_ads_task_set'); 492 Route::any('/fb_set', [Aside\Task\AdsController::class, 'setFbAds'])->name('admin.fb_ads_task_set');
  493 + Route::any('/fb_default_set', [Aside\Task\AdsController::class, 'fbAdsDefaultSet'])->name('admin.fb_ads_default_set');
  494 + Route::any('/fb_set_batch', [Aside\Task\AdsController::class, 'fbAdsSetBatch'])->name('admin.fb_ads_set_batch');
493 Route::any('/fb_set_site', [Aside\Task\AdsController::class, 'setRelaySite'])->name('admin.fb_set_site'); 495 Route::any('/fb_set_site', [Aside\Task\AdsController::class, 'setRelaySite'])->name('admin.fb_set_site');
494 Route::any('/fb_check_domain', [Aside\Task\AdsController::class, 'checkDomain'])->name('admin.fb_check_domain'); 496 Route::any('/fb_check_domain', [Aside\Task\AdsController::class, 'checkDomain'])->name('admin.fb_check_domain');
495 Route::any('/fb_inquiry_list', [Aside\Task\AdsController::class, 'fbInquiryList'])->name('admin.fb_ads_inquiry_list'); 497 Route::any('/fb_inquiry_list', [Aside\Task\AdsController::class, 'fbInquiryList'])->name('admin.fb_ads_inquiry_list');