作者 lyh

Merge branch 'master' of http://47.244.231.31:8099/zhl/globalso-v6 into master-server

... ... @@ -5,6 +5,7 @@ namespace App\Http\Controllers\Aside\Optimize;
use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Optimize\InquiryForwardLogic;
use App\Models\Inquiry\AreaTimezone;
class InquiryForwardController extends BaseController
{
... ... @@ -74,8 +75,6 @@ class InquiryForwardController extends BaseController
'ip' => 'required',//ip
'forward_url' => 'required',//转发网址
'message' => 'required',//发送内容
'inquiry_diff' => 'required',//发送时区
'inquiry_date' => 'required',//发送时间
], [
'id.required' => 'ID不能为空',
'name.required' => '名称不能为空',
... ... @@ -84,8 +83,6 @@ class InquiryForwardController extends BaseController
'ip.required' => 'ip不能为空',
'forward_url.required' => '转发网址不能为空',
'message.required' => '内容不能为空',
'inquiry_diff.required' => '发送时区不能为空',
'inquiry_date.required' => '发送时间不能为空',
]);
}
... ...
... ... @@ -7,6 +7,7 @@ use App\Helper\Gpt;
use App\Helper\Translate;
use App\Http\Logic\Aside\BaseLogic;
use App\Models\Ai\AiCommand;
use App\Models\Inquiry\AreaTimezone;
use App\Models\Inquiry\InquiryInfo;
use App\Models\Inquiry\InquiryProject;
use App\Models\Inquiry\InquiryProjectRoute;
... ... @@ -105,14 +106,50 @@ class InquiryForwardLogic extends BaseLogic
$is_v6 = $project_version->version == 6 ? 1 : 0;
//计算发送时间
if ($this->param['inquiry_diff'] > 0) {
$start_at = date('Y-m-d H:i:s', strtotime($this->param['inquiry_date'] . ' -' . $this->param['inquiry_diff'] . ' hours'));
} elseif ($this->param['inquiry_diff'] < 0) {
$start_at = date('Y-m-d H:i:s', strtotime($this->param['inquiry_date'] . ' +' . abs($this->param['inquiry_diff']) . ' hours'));
} else {
//获取发送时间
if (isset($this->param['inquiry_date']) && $this->param['inquiry_date']) {
//填写了时间,直接使用
$start_at = $this->param['inquiry_date'];
} else {
//未填写时间
//1.根据时差获取当地随机10-18点时间
$timezoneModel = new AreaTimezone();
$country_area = $timezoneModel->read(['name' => $info['country']], ['diff']);
$diff = $country_area ? $country_area['diff'] : 0;
if ($diff > 0) {
$area_time = date('Y-m-d H:i:s', strtotime($now . ' +' . $diff . ' hours'));
} elseif ($diff < 0) {
$area_time = date('Y-m-d H:i:s', strtotime($now . ' -' . abs($diff) . ' hours'));
} else {
$area_time = $now;
}
$area_timestamp = strtotime($area_time);
$area_hour = date('H', $area_timestamp);
if ($area_hour < 18) {
//当地时间为18点前
$area_day = date('Y-m-d', $area_timestamp);
$area_start_time = $area_hour < 10 ? '10:00:00' : date('H:i:s', $area_timestamp);
} else {
//当地时间为18点后,顺延一天
$area_day = date('Y-m-d', strtotime($area_time . ' +1 day'));
$area_start_time = '10:00:00';
}
$start_time = strtotime($area_day . ' ' . $area_start_time);
$end_time = strtotime($area_day . ' 18:00:00');
$random_timestamp = mt_rand($start_time, $end_time);
$area_date = date('Y-m-d H:i:s', $random_timestamp);
//2.再根据时差将随机生成的当地时间换算成国内时间
if ($diff > 0) {
$start_at = date('Y-m-d H:i:s', strtotime($area_date . ' -' . $diff . ' hours'));
} elseif ($diff < 0) {
$start_at = date('Y-m-d H:i:s', strtotime($area_date . ' +' . abs($diff) . ' hours'));
} else {
$start_at = $area_date;
}
}
//换算后的国内时间小于当前时间,使用当前时间
if ($start_at < $now) {
$start_at = $now;
}
... ...