作者 赵彬吉

re_inquiry_config

... ... @@ -13,6 +13,7 @@ use App\Helper\QuanqiusouApi;
use App\Http\Controllers\Aside\BaseController;
use App\Models\Channel\Channel;
use App\Models\Domain\DomainInfo;
use App\Models\Inquiry\ReInquiryConfig;
use App\Models\Inquiry\ReInquiryCost;
use App\Models\Inquiry\ReInquiryCount;
use App\Models\Inquiry\ReInquiryDetail;
... ... @@ -20,6 +21,7 @@ use App\Models\Inquiry\ReInquiryForm;
use App\Models\Inquiry\ReInquiryTask;
use App\Models\Project\Project;
use App\Utils\HttpUtils;
use App\Utils\LogUtils;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
... ... @@ -96,7 +98,7 @@ class AdsController extends BaseController
$item['cost'] = ReInquiryCost::getCostByAdIds($item['ad_id']);
}
$result['relay_site_total'] = $relay_site_total;
$result['default_ai_param'] = ReInquiryTask::DEFAULT_AI_PARAM;
$result['default_ai_param'] = ReInquiryConfig::getDefaultConfigCache();
return $this->response('success', Code::SUCCESS, $result);
}
... ... @@ -380,4 +382,61 @@ class AdsController extends BaseController
return $this->response('success', Code::SUCCESS, $result);
}
/**
* 默认配置
* @author zbj
* @date 2025/2/12
*/
public function fbAdsDefaultSet(){
$config = ReInquiryConfig::get();
if($this->request->isMethod('get')){
return $this->response('success', Code::SUCCESS, $config);
}
DB::beginTransaction();
try {
foreach ($config as $item){
if(empty($this->param[$item->key])){
throw new \Exception($item->title . '不能为空!');
}
$item->content = $this->param[$item->key];
$item->save();
}
ReInquiryConfig::delCache();
DB::commit();
}catch (\Exception $e){
DB::rollBack();
return $this->response($e->getMessage(), Code::USER_ERROR, []);
}
return $this->response('success', Code::SUCCESS, []);
}
/**
* 一键批量设置
* @author zbj
* @date 2025/2/12
*/
public function fbAdsSetBatch(){
$config = ReInquiryConfig::find($this->param['id']);
if(!$config){
return $this->response('配置不存在', Code::USER_ERROR, []);
}
$tasks = ReInquiryTask::get();
DB::beginTransaction();
try {
foreach ($tasks as $task){
$ai_param = $task->ai_param;
$ai_param[$config['key']] = $config['content']?:"";
$task->ai_param = $ai_param;
$task->save();
}
DB::commit();
}catch (\Exception $e){
DB::rollBack();
LogUtils::error('fbAdsSetBatch error:' . $e->getMessage());
return $this->response('设置失败', Code::USER_ERROR, []);
}
return $this->response('success', Code::SUCCESS, []);
}
}
... ...
<?php
namespace App\Models\Inquiry;
use App\Models\Base;
use Illuminate\Support\Facades\Cache;
/**
* Class ReInquiryConfig
* @package App\Models\Inquiry
* @author zbj
* @date 2025/2/12
*/
class ReInquiryConfig extends Base
{
//设置关联表名
protected $table = 'gl_re_inquiry_config';
public static function getDefaultConfigCache(){
$cache_key = 'ReInquiryDefaultConfigCache';
$data = Cache::get($cache_key);
if(!$data){
$data = self::pluck('content', 'key');
if($data){
Cache::put($cache_key, $data);
}
}
return $data;
}
public static function delCache(){
$cache_key = 'ReInquiryDefaultConfigCache';
Cache::forget($cache_key);
}
}
... ...
... ... @@ -29,36 +29,6 @@ class ReInquiryTask extends Base
const STATUS_OPEN = 1;
const STATUS_CLOSE = 0;
const DEFAULT_AI_PARAM = [
'mkeywords' => '',
'characters' => '30
40
50
60
70
80
90
100
120
150',
'inkeywords' => 'OEM/ODM价格
FOB价格多少
最小起订量
批发价格多少
批发价格及价格梯度
本地是否招商
支持的支付方式
产品画册及类别
公司详细资质
能否WhatsApp直接联系
是否需求本地合作伙伴',
'suoxie' => 'Thanks 写成 Tks
Please 写成 Pls
As Soon As Possible 写成 ASAP
For Your Information 写成 FYI
How Much 写成 HM',
];
/**
* 创建询盘任务
* @param $id
... ... @@ -122,6 +92,6 @@ How Much 写成 HM',
public function getAiParamAttribute($value)
{
return Arr::s2a($value) ?: self::DEFAULT_AI_PARAM;
return Arr::s2a($value) ?: ReInquiryConfig::getDefaultConfigCache();
}
}
... ...
... ... @@ -490,6 +490,8 @@ Route::middleware(['aloginauth'])->group(function () {
// FB广告相关路由
Route::any('/fb_list', [Aside\Task\AdsController::class, 'fbAdsList'])->name('admin.fb_ads_task_list');
Route::any('/fb_set', [Aside\Task\AdsController::class, 'setFbAds'])->name('admin.fb_ads_task_set');
Route::any('/fb_default_set', [Aside\Task\AdsController::class, 'fbAdsDefaultSet'])->name('admin.fb_ads_default_set');
Route::any('/fb_set_batch', [Aside\Task\AdsController::class, 'fbAdsSetBatch'])->name('admin.fb_ads_set_batch');
Route::any('/fb_set_site', [Aside\Task\AdsController::class, 'setRelaySite'])->name('admin.fb_set_site');
Route::any('/fb_check_domain', [Aside\Task\AdsController::class, 'checkDomain'])->name('admin.fb_check_domain');
Route::any('/fb_inquiry_list', [Aside\Task\AdsController::class, 'fbInquiryList'])->name('admin.fb_ads_inquiry_list');
... ...