|
...
|
...
|
@@ -16,6 +16,7 @@ use App\Models\Project\ProjectRenew; |
|
|
|
use App\Utils\LogUtils;
|
|
|
|
use Hashids\Hashids;
|
|
|
|
use Illuminate\Console\Command;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
use Illuminate\Support\Facades\Http;
|
|
|
|
|
|
...
|
...
|
@@ -57,37 +58,41 @@ class SyncProject extends Command |
|
|
|
*/
|
|
|
|
public function handle()
|
|
|
|
{
|
|
|
|
$list = NoticeLog::where('type', NoticeLog::TYPE_PROJECT)->where('status', NoticeLog::STATUS_PENDING)->get();
|
|
|
|
foreach ($list as $item){
|
|
|
|
try {
|
|
|
|
$api = new OaGlobalsoApi();
|
|
|
|
$data = $api->order_info($item['data']['order_id']);
|
|
|
|
if(!$data || empty($data['data'])){
|
|
|
|
LogUtils::error('OaGlobalsoApi order_info error', $data);
|
|
|
|
$this->retry($item);
|
|
|
|
}
|
|
|
|
if($data['data']['order_type'] == '首次'){
|
|
|
|
$this->sync($data['data']);
|
|
|
|
while (true){
|
|
|
|
$list = NoticeLog::where('type', NoticeLog::TYPE_PROJECT)->where('status', NoticeLog::STATUS_PENDING)->get();
|
|
|
|
foreach ($list as $item){
|
|
|
|
try {
|
|
|
|
$api = new OaGlobalsoApi();
|
|
|
|
$data = $api->order_info($item['data']['order_id']);
|
|
|
|
if(!$data || empty($data['data'])){
|
|
|
|
LogUtils::error('OaGlobalsoApi order_info error', $data);
|
|
|
|
$this->retry($item);
|
|
|
|
}
|
|
|
|
if($data['data']['order_type'] == '首次'){
|
|
|
|
$this->sync($data['data']);
|
|
|
|
|
|
|
|
//同步aicc
|
|
|
|
if($data['data']['exclusive_aicc']){
|
|
|
|
$this->toAicc($data['data']);
|
|
|
|
//同步aicc
|
|
|
|
if($data['data']['exclusive_aicc']){
|
|
|
|
$this->toAicc($data['data']);
|
|
|
|
}
|
|
|
|
//同步hagro
|
|
|
|
if($data['data']['exclusive_hagro']){
|
|
|
|
$this->toHagro($data['data']);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//同步hagro
|
|
|
|
if($data['data']['exclusive_hagro']){
|
|
|
|
$this->toHagro($data['data']);
|
|
|
|
if($data['data']['order_type'] == '续费'){
|
|
|
|
$this->renewSync($data['data']);
|
|
|
|
}
|
|
|
|
$item->status = NoticeLog::STATUS_SUCCESS;
|
|
|
|
$item->save();
|
|
|
|
}catch (\Exception $e){
|
|
|
|
errorLog('项目同步失败', $item, $e);
|
|
|
|
$this->retry($item);
|
|
|
|
}
|
|
|
|
if($data['data']['order_type'] == '续费'){
|
|
|
|
$this->renewSync($data['data']);
|
|
|
|
}
|
|
|
|
$item->status = NoticeLog::STATUS_SUCCESS;
|
|
|
|
$item->save();
|
|
|
|
}catch (\Exception $e){
|
|
|
|
errorLog('项目同步失败', $item, $e);
|
|
|
|
$this->retry($item);
|
|
|
|
}
|
|
|
|
sleep(2);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
...
|
...
|
@@ -190,14 +195,10 @@ class SyncProject extends Command |
|
|
|
'project_after' => [],
|
|
|
|
'payment' => [
|
|
|
|
'amount' => $param['plan_price'],
|
|
|
|
'contract'=>$param['files'],
|
|
|
|
'bill'=>$param['images']
|
|
|
|
],
|
|
|
|
];
|
|
|
|
if(!empty($param['files'])){
|
|
|
|
$data['payment']['contract'] = json_encode($param['files']);
|
|
|
|
}
|
|
|
|
if(!empty($param['images'])){
|
|
|
|
$data['payment']['bill'] = json_encode($param['images']);
|
|
|
|
}
|
|
|
|
DB::beginTransaction();
|
|
|
|
try {
|
|
|
|
$id = $this->saveProject($data['project']);
|
|
...
|
...
|
@@ -209,7 +210,7 @@ class SyncProject extends Command |
|
|
|
DB::commit();
|
|
|
|
}catch (\Exception $e){
|
|
|
|
DB::rollBack();
|
|
|
|
errorLog('项目同步失败', $data, $e);
|
|
|
|
throw new \Exception($e->getMessage());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -242,7 +243,13 @@ class SyncProject extends Command |
|
|
|
$param['channel'] = Arr::a2s($param['channel']);
|
|
|
|
}
|
|
|
|
$projectModel = new Project();
|
|
|
|
return $projectModel->addReturnId($param);
|
|
|
|
$info = $projectModel->read(['from_order_id'=>$param['from_order_id']]);
|
|
|
|
if($info !== false){
|
|
|
|
$projectModel->edit($param, ['id' => $info['id']]);
|
|
|
|
return $info['id'];
|
|
|
|
}else{
|
|
|
|
return $projectModel->addReturnId($param);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
...
|
...
|
@@ -254,7 +261,12 @@ class SyncProject extends Command |
|
|
|
$param['project_id'] = $id;
|
|
|
|
//查询数据是否存在
|
|
|
|
$afterModel = new After();
|
|
|
|
return $afterModel->add($param);
|
|
|
|
$info = $afterModel->read(['project_id'=>$id]);
|
|
|
|
if($info !== false){
|
|
|
|
$afterModel->edit($param,['id'=>$info['id']]);
|
|
|
|
}else{
|
|
|
|
$afterModel->add($param);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
...
|
...
|
@@ -267,13 +279,18 @@ class SyncProject extends Command |
|
|
|
protected function savePayment($param,$id){
|
|
|
|
$param['project_id'] = $id;
|
|
|
|
$paymentModel= new Payment();
|
|
|
|
if(isset($param['contract']) && !empty($param['contract'])){
|
|
|
|
// if(isset($param['contract']) && !empty($param['contract'])){
|
|
|
|
$param['contract'] = Arr::a2s($param['contract']);
|
|
|
|
}
|
|
|
|
if(isset($param['bill']) && !empty($param['bill'])){
|
|
|
|
// }
|
|
|
|
// if(isset($param['bill']) && !empty($param['bill'])){
|
|
|
|
$param['bill'] = Arr::a2s($param['bill']);
|
|
|
|
// }
|
|
|
|
$info = $paymentModel->read(['project_id'=>$id]);
|
|
|
|
if($info !== false){
|
|
|
|
$paymentModel->edit($param,['id'=>$info['id']]);
|
|
|
|
}else{
|
|
|
|
$paymentModel->add($param);
|
|
|
|
}
|
|
|
|
return $paymentModel->add($param);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
...
|
...
|
@@ -289,7 +306,12 @@ class SyncProject extends Command |
|
|
|
$code = $hashids->encode($id);
|
|
|
|
$param['test_domain'] = 'https://v6-' . $code . '.globalso.site/';
|
|
|
|
$deployBuildModel = new DeployBuild();
|
|
|
|
return $deployBuildModel->add($param);
|
|
|
|
$info = $deployBuildModel->read(['project_id'=>$id]);
|
|
|
|
if($info !== false){
|
|
|
|
$deployBuildModel->edit($param,['id'=>$info['id']]);
|
|
|
|
}else{
|
|
|
|
$deployBuildModel->add($param);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
...
|
...
|
@@ -302,7 +324,12 @@ class SyncProject extends Command |
|
|
|
protected function saveDeployOptimize($param,$id){
|
|
|
|
$param['project_id'] = $id;
|
|
|
|
$deployOptimizeModel = new DeployOptimize();
|
|
|
|
return $deployOptimizeModel->add($param);
|
|
|
|
$info = $deployOptimizeModel->read(['project_id'=>$id]);
|
|
|
|
if($info !== false){
|
|
|
|
$deployOptimizeModel->edit($param,['id'=>$info['id']]);
|
|
|
|
}else{
|
|
|
|
$deployOptimizeModel->add($param);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
...
|
...
|
@@ -346,7 +373,7 @@ class SyncProject extends Command |
|
|
|
* @date 2023/9/1
|
|
|
|
*/
|
|
|
|
protected function toHagro($data){
|
|
|
|
$url = 'https://beta.hagro.cn/globalso/create_project';
|
|
|
|
$url = 'https://admin.hagro.cn/globalso/create_project';
|
|
|
|
$param = [
|
|
|
|
'company' => $data['company_name'],
|
|
|
|
'phone' => $data['principal_mobile'],
|
...
|
...
|
|