作者 lyh

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

... ... @@ -3,6 +3,7 @@
namespace App\Console\Commands;
use App\Helper\Arr;
use App\Helper\Common;
use App\Helper\OaGlobalsoApi;
use App\Models\Channel\Channel;
use App\Models\Com\NoticeLog;
... ... @@ -16,6 +17,7 @@ use App\Utils\LogUtils;
use Hashids\Hashids;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
/**
* 同步项目信息
... ... @@ -66,6 +68,15 @@ class SyncProject extends Command
}
if($data['data']['order_type'] == '首次'){
$this->sync($data['data']);
//同步aicc
if($data['data']['exclusive_aicc']){
$this->toAicc($data['data']);
}
//同步hagro
if($data['data']['exclusive_hagro']){
$this->toHagro($data['data']);
}
}
if($data['data']['order_type'] == '续费'){
$this->renewSync($data['data']);
... ... @@ -163,7 +174,9 @@ class SyncProject extends Command
'cooperate_date' => date('Y-m-d', $param['create_time']),
'from_order_id' => $param['from_order_id'],
'aicc' => $param['exclusive_aicc'],
"exclusive_aicc_day" => $param['exclusive_aicc_day'],
'hagro' => $param['exclusive_hagro'],
"exclusive_hagro_day" => $param['exclusive_hagro_day'],
'notice_order_id' => $param['id'],
],
'deploy_build' => [
... ... @@ -315,4 +328,60 @@ class SyncProject extends Command
$deployOptimizeModel = new DeployOptimize();
return $deployOptimizeModel->add($param);
}
/**
* 同步到AICC
* @param $data
* @author zbj
* @date 2023/9/1
*/
protected function toAicc($data){
$url = 'https://biz.ai.cc/api/sync_company_for_order';
$param = [
'company_name' => $data['company_name'],
'company_address' => '',
'company_tel' => $data['principal_mobile'],
'company_email' => '',
'remark' => $data['remark'],
'level_id' => 6,
'level_day' => $data['exclusive_aicc_day'] ?: 1,
'from_order_id' => $data['from_order_id'],
];
//sign
ksort($param);
$tem = [];
foreach ($param as $key => $val) {
$tem[] = $key . '=' . urlencode($val);
}
$string = implode('&', $tem);
$key = md5('quanqiusou.com');
$param['sign'] = md5($string . $key);
$res = Http::withoutVerifying()->post($url, $param)->json();
if(empty($res['status']) || $res['status'] != 200){
LogUtils::error('ProjectToAicc error', $res);
}
}
/**
* 同步到Hagro
* @param $data
* @author zbj
* @date 2023/9/1
*/
protected function toHagro($data){
$url = 'https://beta.hagro.cn/globalso/create_project';
$param = [
'company' => $data['company_name'],
'phone' => $data['principal_mobile'],
'planday' => $data['exclusive_aicc_day'] ?: 1,
'from_order_id' => $data['from_order_id'],
];
$common = new Common();
$token = $common->encrypt($param);
$res = Http::withoutVerifying()->get($url, ['token' => $token])->json();
if(empty($res['code']) || $res['code'] != 200){
LogUtils::error('ProjectToHagro error', $res);
}
}
}
... ...
... ... @@ -15,14 +15,17 @@ use App\Events\WebSocketMessageSent;
use App\Helper\Common;
use App\Helper\Translate;
use App\Helper\Wechat;
use App\Http\Logic\Bside\User\UserLogic;
use App\Http\Logic\Bside\User\UserLoginLogic;
use App\Models\File\Image as ImageModel;
use App\Models\Service\Service;
use App\Models\Sms\SmsLog;
use App\Models\Template\Template;
use App\Models\Template\TemplateModule;
use App\Models\User\User;
use App\Models\User\User as UserModel;
use App\Utils\EncryptUtils;
use Illuminate\Database\Eloquent\Model;
use \Illuminate\Support\Facades\Cache;
use Mrgoon\AliSms\AliSms;
... ... @@ -228,15 +231,34 @@ class LoginController extends BaseController
if(empty($arr)){
$this->response('登录失败',Code::USER_ERROR);
}
$userModel = new UserModel();
$info = $userModel->read(['mobile'=>$arr['phone']]);
if($info === false){
$this->response('当前用户不存在请联系管理员',Code::USER_ERROR);
//没有from_order_id的项目 进入演示版 运营中心
$arr['from_order_id'] = 0;
if(!$arr['from_order_id']){
//有账号就直接登录, 没有账号创建账号登录
$user = (new User())->where('project_id', Project::DEMO_PROJECT_ID)->where('mobile', $arr['phone'])->first();
if(!$user){
$user = new User();
$user->project_id = Project::DEMO_PROJECT_ID;
$user->mobile = $arr['phone'];
$user->password = base64_encode(md5('v6.' . substr($arr['phone'], -6)));
$user->name = $arr['phone'];
$user->save();
}
$data = [
'user_id'=>$user['id'],
'manager_id'=>0,
];
}else{
//有from_order_id, 找到对应的项目并登录主账号
$project = (new Project())->read(['from_order_id'=>$arr['from_order_id']]);
if(!$project){
$this->response('项目不存在,请联系管理员',Code::USER_ERROR);
}
$data = [
'project_id'=>$project['id'],
'manager_id'=>0,
];
}
$data = [
'user_id'=>$info['id'],
'manager_id'=>0,
];
$info = $logic->autologin($data);
$this->response('success',Code::SUCCESS,['info'=>$info]);
}
... ...
... ... @@ -97,7 +97,7 @@ class UserLoginLogic
{
//项目自动登录
if(isset($data['project_id']) && !empty($data['project_id'])){
$has_user = $this->model->read(['project_id'=>$data['project_id'],'role_id'=>0]);
$has_user = $this->model->read(['project_id'=>$data['project_id'],'role_id'=>$this->model::ROLE_MANAGER]);
}
//根据特定用户自动登录
if(isset($data['user_id']) && !empty($data['user_id'])){
... ... @@ -155,7 +155,7 @@ class UserLoginLogic
$info['from_order_id'] = $project['from_order_id'] ?? '';
$info['aicc'] = $project['aicc'] ?? '';
$info['hagro'] = $project['hagro'] ?? '';
$info['plan'] = Project::planMap()[$project['deploy_build']['plan']];
$info['plan'] = $project['deploy_build']['plan'];
$info['domain'] = (!empty($project['deploy_optimize']['domain']) ?
$project['deploy_optimize']['domain'] : ($project['deploy_build']['test_domain'] ?? ''));
//保存项目缓存
... ...
... ... @@ -16,6 +16,8 @@ class Project extends Base
const DATABASE_NAME_FIX = 'gl_data_';
const DEMO_PROJECT_ID = 1;
const STATUS_ONE = 1;//审核通过
const TYPE_ZERO = 0;//初始导入项目
const TYPE_ONE = 1;//建站中
... ...