作者 刘锟

update

@@ -75,8 +75,6 @@ class InquiryForwardController extends BaseController @@ -75,8 +75,6 @@ class InquiryForwardController extends BaseController
75 'ip' => 'required',//ip 75 'ip' => 'required',//ip
76 'forward_url' => 'required',//转发网址 76 'forward_url' => 'required',//转发网址
77 'message' => 'required',//发送内容 77 'message' => 'required',//发送内容
78 - 'inquiry_diff' => 'required',//发送时区  
79 - 'inquiry_date' => 'required',//发送时间  
80 ], [ 78 ], [
81 'id.required' => 'ID不能为空', 79 'id.required' => 'ID不能为空',
82 'name.required' => '名称不能为空', 80 'name.required' => '名称不能为空',
@@ -85,8 +83,6 @@ class InquiryForwardController extends BaseController @@ -85,8 +83,6 @@ class InquiryForwardController extends BaseController
85 'ip.required' => 'ip不能为空', 83 'ip.required' => 'ip不能为空',
86 'forward_url.required' => '转发网址不能为空', 84 'forward_url.required' => '转发网址不能为空',
87 'message.required' => '内容不能为空', 85 'message.required' => '内容不能为空',
88 - 'inquiry_diff.required' => '发送时区不能为空',  
89 - 'inquiry_date.required' => '发送时间不能为空',  
90 ]); 86 ]);
91 } 87 }
92 88
@@ -151,18 +147,6 @@ class InquiryForwardController extends BaseController @@ -151,18 +147,6 @@ class InquiryForwardController extends BaseController
151 } 147 }
152 148
153 /** 149 /**
154 - * 获取询盘发送时区  
155 - * @param AreaTimezone $areaTimezone  
156 - * @author Akun  
157 - * @date 2025/02/28 11:51  
158 - */  
159 - public function getTimeZone(AreaTimezone $areaTimezone)  
160 - {  
161 - $list = $areaTimezone->list([], 'id', ['name', 'diff'], 'asc');  
162 - $this->response('success', Code::SUCCESS, $list);  
163 - }  
164 -  
165 - /**  
166 * 设置询盘无效 150 * 设置询盘无效
167 * @param InquiryForwardLogic $inquiryForwardLogic 151 * @param InquiryForwardLogic $inquiryForwardLogic
168 * @throws \App\Exceptions\AsideGlobalException 152 * @throws \App\Exceptions\AsideGlobalException
@@ -7,6 +7,7 @@ use App\Helper\Gpt; @@ -7,6 +7,7 @@ use App\Helper\Gpt;
7 use App\Helper\Translate; 7 use App\Helper\Translate;
8 use App\Http\Logic\Aside\BaseLogic; 8 use App\Http\Logic\Aside\BaseLogic;
9 use App\Models\Ai\AiCommand; 9 use App\Models\Ai\AiCommand;
  10 +use App\Models\Inquiry\AreaTimezone;
10 use App\Models\Inquiry\InquiryInfo; 11 use App\Models\Inquiry\InquiryInfo;
11 use App\Models\Inquiry\InquiryProject; 12 use App\Models\Inquiry\InquiryProject;
12 use App\Models\Inquiry\InquiryProjectRoute; 13 use App\Models\Inquiry\InquiryProjectRoute;
@@ -105,14 +106,41 @@ class InquiryForwardLogic extends BaseLogic @@ -105,14 +106,41 @@ class InquiryForwardLogic extends BaseLogic
105 $is_v6 = $project_version->version == 6 ? 1 : 0; 106 $is_v6 = $project_version->version == 6 ? 1 : 0;
106 107
107 108
108 - //计算发送时间  
109 - if ($this->param['inquiry_diff'] > 0) {  
110 - $start_at = date('Y-m-d H:i:s', strtotime($this->param['inquiry_date'] . ' -' . $this->param['inquiry_diff'] . ' hours'));  
111 - } elseif ($this->param['inquiry_diff'] < 0) {  
112 - $start_at = date('Y-m-d H:i:s', strtotime($this->param['inquiry_date'] . ' +' . abs($this->param['inquiry_diff']) . ' hours')); 109 + //获取发送时间
  110 + if (isset($this->param['inquiry_date']) && $this->param['inquiry_date']) {
  111 + //填写了时间
  112 + $date = $this->param['inquiry_date'];
113 } else { 113 } else {
114 - $start_at = $this->param['inquiry_date']; 114 + //未填写时间
  115 + $hour = date('H');
  116 + if ($hour < 18) {
  117 + //当前时间为18点前
  118 + $day = date('Y-m-d');
  119 + $start_hour = $hour < 10 ? 10 : $hour;
  120 + } else {
  121 + //当前时间为18点后,顺延一天
  122 + $day = date('Y-m-d', strtotime('+1 day'));
  123 + $start_hour = 10;
  124 + }
  125 + $start_time = strtotime($day . ' ' . $start_hour . ':00:00');
  126 + $end_time = strtotime($day . ' 18:00:00');
  127 + $random_timestamp = mt_rand($start_time, $end_time);
  128 + $date = date('Y-m-d H:i:s', $random_timestamp);
115 } 129 }
  130 +
  131 + //根据时区换算发送的国内时间
  132 + $timezoneModel = new AreaTimezone();
  133 + $country_area = $timezoneModel->read(['name' => $info['country']], ['diff']);
  134 + $diff = $country_area ? $country_area['diff'] : 0;
  135 + if ($diff > 0) {
  136 + $start_at = date('Y-m-d H:i:s', strtotime($date . ' -' . $diff . ' hours'));
  137 + } elseif ($diff < 0) {
  138 + $start_at = date('Y-m-d H:i:s', strtotime($date . ' +' . abs($diff) . ' hours'));
  139 + } else {
  140 + $start_at = $date;
  141 + }
  142 +
  143 + //换算后国内时间小于当前时间,使用当前时间
116 if ($start_at < $now) { 144 if ($start_at < $now) {
117 $start_at = $now; 145 $start_at = $now;
118 } 146 }
@@ -348,7 +348,6 @@ Route::middleware(['aloginauth'])->group(function () { @@ -348,7 +348,6 @@ Route::middleware(['aloginauth'])->group(function () {
348 Route::any('/getInquiryIp', [Aside\Optimize\InquiryForwardController::class, 'getInquiryIp'])->name('admin.inquiry_forward_getInquiryIp'); 348 Route::any('/getInquiryIp', [Aside\Optimize\InquiryForwardController::class, 'getInquiryIp'])->name('admin.inquiry_forward_getInquiryIp');
349 Route::any('/searchInquiryKeywords', [Aside\Optimize\InquiryForwardController::class, 'searchInquiryKeywords'])->name('admin.inquiry_forward_searchInquiryKeywords'); 349 Route::any('/searchInquiryKeywords', [Aside\Optimize\InquiryForwardController::class, 'searchInquiryKeywords'])->name('admin.inquiry_forward_searchInquiryKeywords');
350 Route::any('/aiRewriteInquiry', [Aside\Optimize\InquiryForwardController::class, 'aiRewriteInquiry'])->name('admin.inquiry_forward_aiRewriteInquiry'); 350 Route::any('/aiRewriteInquiry', [Aside\Optimize\InquiryForwardController::class, 'aiRewriteInquiry'])->name('admin.inquiry_forward_aiRewriteInquiry');
351 - Route::any('/getTimeZone', [Aside\Optimize\InquiryForwardController::class, 'getTimeZone'])->name('admin.inquiry_forward_getTimeZone');  
352 Route::any('/setInquiryExpired', [Aside\Optimize\InquiryForwardController::class, 'setInquiryExpired'])->name('admin.inquiry_forward_setInquiryExpired'); 351 Route::any('/setInquiryExpired', [Aside\Optimize\InquiryForwardController::class, 'setInquiryExpired'])->name('admin.inquiry_forward_setInquiryExpired');
353 }); 352 });
354 353