正在显示
2 个修改的文件
包含
103 行增加
和
3 行删除
| @@ -7,12 +7,15 @@ use App\Helper\Common; | @@ -7,12 +7,15 @@ use App\Helper\Common; | ||
| 7 | use App\Helper\OaGlobalsoApi; | 7 | use App\Helper\OaGlobalsoApi; |
| 8 | use App\Models\Channel\Channel; | 8 | use App\Models\Channel\Channel; |
| 9 | use App\Models\Com\NoticeLog; | 9 | use App\Models\Com\NoticeLog; |
| 10 | +use App\Models\Com\UpdateLog; | ||
| 10 | use App\Models\Project\After; | 11 | use App\Models\Project\After; |
| 11 | use App\Models\Project\DeployBuild; | 12 | use App\Models\Project\DeployBuild; |
| 12 | use App\Models\Project\DeployOptimize; | 13 | use App\Models\Project\DeployOptimize; |
| 13 | use App\Models\Project\Payment; | 14 | use App\Models\Project\Payment; |
| 14 | use App\Models\Project\Project; | 15 | use App\Models\Project\Project; |
| 15 | use App\Models\Project\ProjectRenew; | 16 | use App\Models\Project\ProjectRenew; |
| 17 | +use App\Models\User\User as UserModel; | ||
| 18 | +use App\Services\ProjectServer; | ||
| 16 | use App\Utils\LogUtils; | 19 | use App\Utils\LogUtils; |
| 17 | use Hashids\Hashids; | 20 | use Hashids\Hashids; |
| 18 | use Illuminate\Console\Command; | 21 | use Illuminate\Console\Command; |
| @@ -62,14 +65,20 @@ class SyncProject extends Command | @@ -62,14 +65,20 @@ class SyncProject extends Command | ||
| 62 | $list = NoticeLog::where('type', NoticeLog::TYPE_PROJECT)->where('status', NoticeLog::STATUS_PENDING)->get(); | 65 | $list = NoticeLog::where('type', NoticeLog::TYPE_PROJECT)->where('status', NoticeLog::STATUS_PENDING)->get(); |
| 63 | foreach ($list as $item){ | 66 | foreach ($list as $item){ |
| 64 | try { | 67 | try { |
| 68 | + $is_update = $item['data']['is_update']??0;//是否是4.0或5.0更新到6.0 | ||
| 69 | + $order_id = $item['data']['order_id']; | ||
| 70 | + if($is_update == 1){ | ||
| 71 | + $data = http_get('https://quanqiusou.cn/extend_api/v6/update.php?postid='.$order_id, ['charset' => 'UTF-8']); | ||
| 72 | + }else{ | ||
| 65 | $api = new OaGlobalsoApi(); | 73 | $api = new OaGlobalsoApi(); |
| 66 | - $data = $api->order_info($item['data']['order_id']); | 74 | + $data = $api->order_info($order_id); |
| 75 | + } | ||
| 67 | if(!$data || empty($data['data'])){ | 76 | if(!$data || empty($data['data'])){ |
| 68 | LogUtils::error('OaGlobalsoApi order_info error', $data); | 77 | LogUtils::error('OaGlobalsoApi order_info error', $data); |
| 69 | $this->retry($item); | 78 | $this->retry($item); |
| 70 | } | 79 | } |
| 71 | if($data['data']['order_type'] == '首次'){ | 80 | if($data['data']['order_type'] == '首次'){ |
| 72 | - $this->sync($data['data']); | 81 | + $this->sync($data['data'],$is_update); |
| 73 | 82 | ||
| 74 | //同步aicc | 83 | //同步aicc |
| 75 | if($data['data']['exclusive_aicc']){ | 84 | if($data['data']['exclusive_aicc']){ |
| @@ -164,7 +173,7 @@ class SyncProject extends Command | @@ -164,7 +173,7 @@ class SyncProject extends Command | ||
| 164 | * @method :post | 173 | * @method :post |
| 165 | * @time :2023/8/9 15:04 | 174 | * @time :2023/8/9 15:04 |
| 166 | */ | 175 | */ |
| 167 | - public function sync($param){ | 176 | + public function sync($param,$is_update = 0){ |
| 168 | $title = date('Ymd') . '-' . $param['company_name']; | 177 | $title = date('Ymd') . '-' . $param['company_name']; |
| 169 | $data = [ | 178 | $data = [ |
| 170 | 'project'=>[ | 179 | 'project'=>[ |
| @@ -207,6 +216,22 @@ class SyncProject extends Command | @@ -207,6 +216,22 @@ class SyncProject extends Command | ||
| 207 | $this->saveDeployBuild($data['deploy_build'],$id); | 216 | $this->saveDeployBuild($data['deploy_build'],$id); |
| 208 | $this->saveDeployOptimize($data['deploy_optimize'],$id); | 217 | $this->saveDeployOptimize($data['deploy_optimize'],$id); |
| 209 | $this->saveAfter($data['project_after'],$id); | 218 | $this->saveAfter($data['project_after'],$id); |
| 219 | + | ||
| 220 | + if($is_update == 1){ | ||
| 221 | + //4.0或5.0更新到6.0 | ||
| 222 | + | ||
| 223 | + //初始化数据库 | ||
| 224 | + $this->initializationMysql($id); | ||
| 225 | + | ||
| 226 | + //初始账号 | ||
| 227 | + $this->createUser($data['project']['mobile'],$id,$data['project']['lead_name']); | ||
| 228 | + | ||
| 229 | + //新增数据抓取任务 | ||
| 230 | + foreach ($param['api_type'] as $v_type){ | ||
| 231 | + UpdateLog::createLog($id,$v_type,$param['get_data_url']); | ||
| 232 | + } | ||
| 233 | + } | ||
| 234 | + | ||
| 210 | DB::commit(); | 235 | DB::commit(); |
| 211 | }catch (\Exception $e){ | 236 | }catch (\Exception $e){ |
| 212 | DB::rollBack(); | 237 | DB::rollBack(); |
| @@ -388,4 +413,43 @@ class SyncProject extends Command | @@ -388,4 +413,43 @@ class SyncProject extends Command | ||
| 388 | LogUtils::error('ProjectToHagro error', $res); | 413 | LogUtils::error('ProjectToHagro error', $res); |
| 389 | } | 414 | } |
| 390 | } | 415 | } |
| 416 | + | ||
| 417 | + /** | ||
| 418 | + * 初始化数据库 | ||
| 419 | + * @param $project_id | ||
| 420 | + * @author Akun | ||
| 421 | + * @date 2023/09/19 15:12 | ||
| 422 | + */ | ||
| 423 | + public function initializationMysql($project_id){ | ||
| 424 | + //切换数据库配置 | ||
| 425 | + $project = ProjectServer::useProject($project_id); | ||
| 426 | + //创建数据库 | ||
| 427 | + ProjectServer::createDatabase($project); | ||
| 428 | + //创建表 | ||
| 429 | + ProjectServer::initTable(); | ||
| 430 | + } | ||
| 431 | + | ||
| 432 | + /** | ||
| 433 | + * 创建用户 | ||
| 434 | + * @param $mobile | ||
| 435 | + * @param $project_id | ||
| 436 | + * @param $lead_name | ||
| 437 | + * @author Akun | ||
| 438 | + * @date 2023/09/19 15:12 | ||
| 439 | + */ | ||
| 440 | + public function createUser($mobile,$project_id,$lead_name){ | ||
| 441 | + $userModel = new UserModel(); | ||
| 442 | + //查看当前用户是否存在 | ||
| 443 | + $info = $userModel->read(['mobile'=>$mobile,'project_id'=>$project_id]); | ||
| 444 | + if($info === false){ | ||
| 445 | + $data = [ | ||
| 446 | + 'mobile'=>$mobile, | ||
| 447 | + 'password'=>base64_encode(md5('123456')), | ||
| 448 | + 'project_id'=>$project_id, | ||
| 449 | + 'name'=>$lead_name, | ||
| 450 | + 'type'=>UserModel::TYPE_ONE | ||
| 451 | + ]; | ||
| 452 | + $userModel->add($data); | ||
| 453 | + } | ||
| 454 | + } | ||
| 391 | } | 455 | } |
app/Models/Com/UpdateLog.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Models\Com; | ||
| 4 | + | ||
| 5 | +use Illuminate\Database\Eloquent\Model; | ||
| 6 | + | ||
| 7 | +class UpdateLog extends Model | ||
| 8 | +{ | ||
| 9 | + //设置关联表名 | ||
| 10 | + protected $table = 'gl_update_log'; | ||
| 11 | + | ||
| 12 | + const STATUS_PENDING = 0; | ||
| 13 | + const STATUS_SUCCESS = 1; | ||
| 14 | + const STATUS_FAIL = 2; | ||
| 15 | + | ||
| 16 | + /** | ||
| 17 | + * 创建更新日志 | ||
| 18 | + * @param $type | ||
| 19 | + * @param $project_id | ||
| 20 | + * @param $type | ||
| 21 | + * @param $url | ||
| 22 | + * @return mixed | ||
| 23 | + */ | ||
| 24 | + public static function createLog($project_id, $type, $url) | ||
| 25 | + { | ||
| 26 | + $log = self::where('project_id', $project_id)->where('api_type', $type)->first(); | ||
| 27 | + if (!$log) { | ||
| 28 | + $log = new self(); | ||
| 29 | + $log->project_id = $project_id; | ||
| 30 | + $log->api_type = $type; | ||
| 31 | + $log->api_url = $url; | ||
| 32 | + return $log->save(); | ||
| 33 | + } | ||
| 34 | + return true; | ||
| 35 | + } | ||
| 36 | +} |
-
请 注册 或 登录 后发表评论