正在显示
4 个修改的文件
包含
104 行增加
和
11 行删除
| @@ -3,6 +3,7 @@ | @@ -3,6 +3,7 @@ | ||
| 3 | namespace App\Console\Commands; | 3 | namespace App\Console\Commands; |
| 4 | 4 | ||
| 5 | use App\Helper\Arr; | 5 | use App\Helper\Arr; |
| 6 | +use App\Helper\Common; | ||
| 6 | use App\Helper\OaGlobalsoApi; | 7 | use App\Helper\OaGlobalsoApi; |
| 7 | use App\Models\Channel\Channel; | 8 | use App\Models\Channel\Channel; |
| 8 | use App\Models\Com\NoticeLog; | 9 | use App\Models\Com\NoticeLog; |
| @@ -16,6 +17,7 @@ use App\Utils\LogUtils; | @@ -16,6 +17,7 @@ use App\Utils\LogUtils; | ||
| 16 | use Hashids\Hashids; | 17 | use Hashids\Hashids; |
| 17 | use Illuminate\Console\Command; | 18 | use Illuminate\Console\Command; |
| 18 | use Illuminate\Support\Facades\DB; | 19 | use Illuminate\Support\Facades\DB; |
| 20 | +use Illuminate\Support\Facades\Http; | ||
| 19 | 21 | ||
| 20 | /** | 22 | /** |
| 21 | * 同步项目信息 | 23 | * 同步项目信息 |
| @@ -66,6 +68,15 @@ class SyncProject extends Command | @@ -66,6 +68,15 @@ class SyncProject extends Command | ||
| 66 | } | 68 | } |
| 67 | if($data['data']['order_type'] == '首次'){ | 69 | if($data['data']['order_type'] == '首次'){ |
| 68 | $this->sync($data['data']); | 70 | $this->sync($data['data']); |
| 71 | + | ||
| 72 | + //同步aicc | ||
| 73 | + if($data['data']['exclusive_aicc']){ | ||
| 74 | + $this->toAicc($data['data']); | ||
| 75 | + } | ||
| 76 | + //同步hagro | ||
| 77 | + if($data['data']['exclusive_hagro']){ | ||
| 78 | + $this->toHagro($data['data']); | ||
| 79 | + } | ||
| 69 | } | 80 | } |
| 70 | if($data['data']['order_type'] == '续费'){ | 81 | if($data['data']['order_type'] == '续费'){ |
| 71 | $this->renewSync($data['data']); | 82 | $this->renewSync($data['data']); |
| @@ -163,7 +174,9 @@ class SyncProject extends Command | @@ -163,7 +174,9 @@ class SyncProject extends Command | ||
| 163 | 'cooperate_date' => date('Y-m-d', $param['create_time']), | 174 | 'cooperate_date' => date('Y-m-d', $param['create_time']), |
| 164 | 'from_order_id' => $param['from_order_id'], | 175 | 'from_order_id' => $param['from_order_id'], |
| 165 | 'aicc' => $param['exclusive_aicc'], | 176 | 'aicc' => $param['exclusive_aicc'], |
| 177 | + "exclusive_aicc_day" => $param['exclusive_aicc_day'], | ||
| 166 | 'hagro' => $param['exclusive_hagro'], | 178 | 'hagro' => $param['exclusive_hagro'], |
| 179 | + "exclusive_hagro_day" => $param['exclusive_hagro_day'], | ||
| 167 | 'notice_order_id' => $param['id'], | 180 | 'notice_order_id' => $param['id'], |
| 168 | ], | 181 | ], |
| 169 | 'deploy_build' => [ | 182 | 'deploy_build' => [ |
| @@ -315,4 +328,60 @@ class SyncProject extends Command | @@ -315,4 +328,60 @@ class SyncProject extends Command | ||
| 315 | $deployOptimizeModel = new DeployOptimize(); | 328 | $deployOptimizeModel = new DeployOptimize(); |
| 316 | return $deployOptimizeModel->add($param); | 329 | return $deployOptimizeModel->add($param); |
| 317 | } | 330 | } |
| 331 | + | ||
| 332 | + /** | ||
| 333 | + * 同步到AICC | ||
| 334 | + * @param $data | ||
| 335 | + * @author zbj | ||
| 336 | + * @date 2023/9/1 | ||
| 337 | + */ | ||
| 338 | + protected function toAicc($data){ | ||
| 339 | + $url = 'https://biz.ai.cc/api/sync_company_for_order'; | ||
| 340 | + $param = [ | ||
| 341 | + 'company_name' => $data['company_name'], | ||
| 342 | + 'company_address' => '', | ||
| 343 | + 'company_tel' => $data['principal_mobile'], | ||
| 344 | + 'company_email' => '', | ||
| 345 | + 'remark' => $data['remark'], | ||
| 346 | + 'level_id' => 6, | ||
| 347 | + 'level_day' => $data['exclusive_aicc_day'] ?: 1, | ||
| 348 | + 'from_order_id' => $data['from_order_id'], | ||
| 349 | + ]; | ||
| 350 | + | ||
| 351 | + //sign | ||
| 352 | + ksort($param); | ||
| 353 | + $tem = []; | ||
| 354 | + foreach ($param as $key => $val) { | ||
| 355 | + $tem[] = $key . '=' . urlencode($val); | ||
| 356 | + } | ||
| 357 | + $string = implode('&', $tem); | ||
| 358 | + $key = md5('quanqiusou.com'); | ||
| 359 | + $param['sign'] = md5($string . $key); | ||
| 360 | + $res = Http::withoutVerifying()->post($url, $param)->json(); | ||
| 361 | + if(empty($res['status']) || $res['status'] != 200){ | ||
| 362 | + LogUtils::error('ProjectToAicc error', $res); | ||
| 363 | + } | ||
| 364 | + } | ||
| 365 | + | ||
| 366 | + /** | ||
| 367 | + * 同步到Hagro | ||
| 368 | + * @param $data | ||
| 369 | + * @author zbj | ||
| 370 | + * @date 2023/9/1 | ||
| 371 | + */ | ||
| 372 | + protected function toHagro($data){ | ||
| 373 | + $url = 'https://beta.hagro.cn/globalso/create_project'; | ||
| 374 | + $param = [ | ||
| 375 | + 'company' => $data['company_name'], | ||
| 376 | + 'phone' => $data['principal_mobile'], | ||
| 377 | + 'planday' => $data['exclusive_aicc_day'] ?: 1, | ||
| 378 | + 'from_order_id' => $data['from_order_id'], | ||
| 379 | + ]; | ||
| 380 | + $common = new Common(); | ||
| 381 | + $token = $common->encrypt($param); | ||
| 382 | + $res = Http::withoutVerifying()->get($url, ['token' => $token])->json(); | ||
| 383 | + if(empty($res['code']) || $res['code'] != 200){ | ||
| 384 | + LogUtils::error('ProjectToHagro error', $res); | ||
| 385 | + } | ||
| 386 | + } | ||
| 318 | } | 387 | } |
| @@ -17,6 +17,7 @@ use App\Helper\Common; | @@ -17,6 +17,7 @@ use App\Helper\Common; | ||
| 17 | use App\Helper\Socket; | 17 | use App\Helper\Socket; |
| 18 | use App\Helper\Translate; | 18 | use App\Helper\Translate; |
| 19 | use App\Helper\Wechat; | 19 | use App\Helper\Wechat; |
| 20 | +use App\Http\Logic\Bside\User\UserLogic; | ||
| 20 | use App\Http\Logic\Bside\User\UserLoginLogic; | 21 | use App\Http\Logic\Bside\User\UserLoginLogic; |
| 21 | use App\Models\File\Image; | 22 | use App\Models\File\Image; |
| 22 | use App\Models\Project\Project; | 23 | use App\Models\Project\Project; |
| @@ -24,8 +25,10 @@ use App\Models\Service\Service; | @@ -24,8 +25,10 @@ use App\Models\Service\Service; | ||
| 24 | use App\Models\Sms\SmsLog; | 25 | use App\Models\Sms\SmsLog; |
| 25 | use App\Models\Template\Template; | 26 | use App\Models\Template\Template; |
| 26 | use App\Models\Template\TemplateModule; | 27 | use App\Models\Template\TemplateModule; |
| 28 | +use App\Models\User\User; | ||
| 27 | use App\Models\User\User as UserModel; | 29 | use App\Models\User\User as UserModel; |
| 28 | use App\Utils\EncryptUtils; | 30 | use App\Utils\EncryptUtils; |
| 31 | +use Illuminate\Database\Eloquent\Model; | ||
| 29 | use \Illuminate\Support\Facades\Cache; | 32 | use \Illuminate\Support\Facades\Cache; |
| 30 | use Mrgoon\AliSms\AliSms; | 33 | use Mrgoon\AliSms\AliSms; |
| 31 | 34 | ||
| @@ -231,15 +234,34 @@ class LoginController extends BaseController | @@ -231,15 +234,34 @@ class LoginController extends BaseController | ||
| 231 | if(empty($arr)){ | 234 | if(empty($arr)){ |
| 232 | $this->response('登录失败',Code::USER_ERROR); | 235 | $this->response('登录失败',Code::USER_ERROR); |
| 233 | } | 236 | } |
| 234 | - $userModel = new UserModel(); | ||
| 235 | - $info = $userModel->read(['mobile'=>$arr['phone']]); | ||
| 236 | - if($info === false){ | ||
| 237 | - $this->response('当前用户不存在请联系管理员',Code::USER_ERROR); | 237 | + //没有from_order_id的项目 进入演示版 运营中心 |
| 238 | + $arr['from_order_id'] = 0; | ||
| 239 | + if(!$arr['from_order_id']){ | ||
| 240 | + //有账号就直接登录, 没有账号创建账号登录 | ||
| 241 | + $user = (new User())->where('project_id', Project::DEMO_PROJECT_ID)->where('mobile', $arr['phone'])->first(); | ||
| 242 | + if(!$user){ | ||
| 243 | + $user = new User(); | ||
| 244 | + $user->project_id = Project::DEMO_PROJECT_ID; | ||
| 245 | + $user->mobile = $arr['phone']; | ||
| 246 | + $user->password = base64_encode(md5('v6.' . substr($arr['phone'], -6))); | ||
| 247 | + $user->name = $arr['phone']; | ||
| 248 | + $user->save(); | ||
| 249 | + } | ||
| 250 | + $data = [ | ||
| 251 | + 'user_id'=>$user['id'], | ||
| 252 | + 'manager_id'=>0, | ||
| 253 | + ]; | ||
| 254 | + }else{ | ||
| 255 | + //有from_order_id, 找到对应的项目并登录主账号 | ||
| 256 | + $project = (new Project())->read(['from_order_id'=>$arr['from_order_id']]); | ||
| 257 | + if(!$project){ | ||
| 258 | + $this->response('项目不存在,请联系管理员',Code::USER_ERROR); | ||
| 259 | + } | ||
| 260 | + $data = [ | ||
| 261 | + 'project_id'=>$project['id'], | ||
| 262 | + 'manager_id'=>0, | ||
| 263 | + ]; | ||
| 238 | } | 264 | } |
| 239 | - $data = [ | ||
| 240 | - 'user_id'=>$info['id'], | ||
| 241 | - 'manager_id'=>0, | ||
| 242 | - ]; | ||
| 243 | $info = $logic->autologin($data); | 265 | $info = $logic->autologin($data); |
| 244 | $this->response('success',Code::SUCCESS,['info'=>$info]); | 266 | $this->response('success',Code::SUCCESS,['info'=>$info]); |
| 245 | } | 267 | } |
| @@ -266,6 +288,6 @@ class LoginController extends BaseController | @@ -266,6 +288,6 @@ class LoginController extends BaseController | ||
| 266 | } | 288 | } |
| 267 | return $data; | 289 | return $data; |
| 268 | } | 290 | } |
| 269 | - | 291 | + |
| 270 | 292 | ||
| 271 | } | 293 | } |
| @@ -97,7 +97,7 @@ class UserLoginLogic | @@ -97,7 +97,7 @@ class UserLoginLogic | ||
| 97 | { | 97 | { |
| 98 | //项目自动登录 | 98 | //项目自动登录 |
| 99 | if(isset($data['project_id']) && !empty($data['project_id'])){ | 99 | if(isset($data['project_id']) && !empty($data['project_id'])){ |
| 100 | - $has_user = $this->model->read(['project_id'=>$data['project_id'],'role_id'=>0]); | 100 | + $has_user = $this->model->read(['project_id'=>$data['project_id'],'role_id'=>$this->model::ROLE_MANAGER]); |
| 101 | } | 101 | } |
| 102 | //根据特定用户自动登录 | 102 | //根据特定用户自动登录 |
| 103 | if(isset($data['user_id']) && !empty($data['user_id'])){ | 103 | if(isset($data['user_id']) && !empty($data['user_id'])){ |
| @@ -155,7 +155,7 @@ class UserLoginLogic | @@ -155,7 +155,7 @@ class UserLoginLogic | ||
| 155 | $info['from_order_id'] = $project['from_order_id'] ?? ''; | 155 | $info['from_order_id'] = $project['from_order_id'] ?? ''; |
| 156 | $info['aicc'] = $project['aicc'] ?? ''; | 156 | $info['aicc'] = $project['aicc'] ?? ''; |
| 157 | $info['hagro'] = $project['hagro'] ?? ''; | 157 | $info['hagro'] = $project['hagro'] ?? ''; |
| 158 | - $info['plan'] = Project::planMap()[$project['deploy_build']['plan']]; | 158 | + $info['plan'] = $project['deploy_build']['plan']; |
| 159 | $info['domain'] = (!empty($project['deploy_optimize']['domain']) ? | 159 | $info['domain'] = (!empty($project['deploy_optimize']['domain']) ? |
| 160 | $project['deploy_optimize']['domain'] : ($project['deploy_build']['test_domain'] ?? '')); | 160 | $project['deploy_optimize']['domain'] : ($project['deploy_build']['test_domain'] ?? '')); |
| 161 | //保存项目缓存 | 161 | //保存项目缓存 |
| @@ -16,6 +16,8 @@ class Project extends Base | @@ -16,6 +16,8 @@ class Project extends Base | ||
| 16 | 16 | ||
| 17 | const DATABASE_NAME_FIX = 'gl_data_'; | 17 | const DATABASE_NAME_FIX = 'gl_data_'; |
| 18 | 18 | ||
| 19 | + const DEMO_PROJECT_ID = 1; | ||
| 20 | + | ||
| 19 | const STATUS_ONE = 1;//审核通过 | 21 | const STATUS_ONE = 1;//审核通过 |
| 20 | const TYPE_ZERO = 0;//初始导入项目 | 22 | const TYPE_ZERO = 0;//初始导入项目 |
| 21 | const TYPE_ONE = 1;//建站中 | 23 | const TYPE_ONE = 1;//建站中 |
-
请 注册 或 登录 后发表评论