Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
chenbo 2023-10-16 18:28:24 +08:00
commit 14de92e0e1
17 changed files with 551 additions and 95 deletions

View File

@ -158,6 +158,9 @@ class VehicleContractController extends BaseAdminController
if($contract['type'] == 0){
$smsTitle = '《租赁合同》';
$notify_url = env('project.website_domain').'/api/index/townCarRent';
}elseif($contract['type'] == 1){
$smsTitle = '《自有车辆上传合同》';
$notify_url = env('project.website_domain').'/api/index/selfCarRent';
}elseif($contract['type'] == 2){
$smsTitle = '《解约合同》';
$notify_url = env('project.website_domain').'/api/index/cancelRent';

View File

@ -151,7 +151,10 @@ class UserInformationgLogic extends BaseLogic
'category_child' => $v['category_child'],
'create_time' => $v['create_time'],
'update_time' => $v['update_time'],
'datas' => $a
'datas' => $a,
'data_field' => json_decode($v['data_field']),
'ai_question' => $v['ai_question'],
'ai_aianalyse' => $v['ai_aianalyse'],
];
if ($a) {
array_push($datas, $arr);

View File

@ -360,6 +360,7 @@ class IndexController extends BaseApiController
'car_license' => $vehicle['license'],
'status' => 2,
'rent_time' => time(),
'rent_contract_id' => $contract['id'],
'rent_company_id' => $contract['company_b_id'],
'create_time' => time(),
'type' => 1
@ -443,7 +444,7 @@ class IndexController extends BaseApiController
//小组公司与镇街公司解约
if($vehicleBuyRecord['status'] == 1){
//获取租赁车辆信息
$rentCarsInfo = VehicleRent::field('id,type,contract_id')->where('car_id',$cars_ids[0])->findOrEmpty();
$rentCarsInfo = VehicleRent::where('car_id',$cars_ids[0])->findOrEmpty();
if($rentCarsInfo['type'] == 0){
//修改租赁车俩状态
VehicleRent::where('id',$rentCarsInfo['id'])->update(['status'=>0,'rent_company_id'=>0,'rent_contract_id'=>0,'rent_time'=>0]);
@ -482,7 +483,51 @@ class IndexController extends BaseApiController
return json(['success' => true, 'msg' => '成功']);
}
//小组公司与镇街公司解约,然后镇街公司与平台公司解约
if($vehicleBuyRecord['status'] == 2){}
if($vehicleBuyRecord['status'] == 2){
//获取租赁车辆信息
$rentCarsInfo = VehicleRent::where('car_id',$cars_ids[0])->findOrEmpty();
//获取镇街公司信息
$zjCompany = Company::where('id',$rentCarsInfo['company_id'])->findOrEmpty();
//判断购买车辆中是否包含镇街公司租赁的车辆
$car_ids = array_column(json_decode($vehicleBuyRecord['cars_info'],true),'id');
$zjRentCars = VehicleRent::field('car_id as id,car_license as license')->where('company_id',$zjCompany['id'])->where('car_id','in',$car_ids)->where('status',0)->where('type',0)->select();
if($rentCarsInfo['type'] == 0){
//修改租赁车俩状态
VehicleRent::where('id',$rentCarsInfo['id'])->update(['status'=>0,'rent_company_id'=>0,'rent_contract_id'=>0,'rent_time'=>0]);
}
if($rentCarsInfo['type'] == 1){
//修改租赁车俩状态
VehicleRent::where('id',$rentCarsInfo['id'])->delete();
}
//删除原合同
VehicleContract::where('id',$rentCarsInfo['rent_contract_id'])->delete();
//修改物流系统车辆租赁信息
curl_post(env('project.logistic_domain').'/api/Vehicle/delRentUseInfo', [], [
'car_id' => $cars_ids[0]
]);
//发送镇公司与平台公司的解约合同
$curl_result = curl_post(env('project.logistic_domain').'/api/signContract',[],[
'num' => count($zjRentCars),
'company_id' => $zjCompany['id'],
'company_name' => $zjCompany['company_name'],
'company_code' => $zjCompany['organization_code'],
'company_user' => $zjCompany['master_name'],
'company_phone' => $zjCompany['master_phone'],
'company_email' => $zjCompany['master_email'],
'cars_info' => json_encode($zjRentCars),
'type' => 2
]);
if(empty($curl_result)){
return $this->fail('null return from logistic');
}
if($curl_result['code'] == 0){
return $this->fail($curl_result['msg'].' from logistic');
}
//生成本地合同
VehicleContract::create($curl_result['data']);
VehicleBuyRecord::where('id',$vehicleBuyRecord['id'])->update(['status'=>3]);
return json(['success' => true, 'msg' => '成功']);
}
//镇街公司与平台公司解约
if($vehicleBuyRecord['status'] == 3){
//删除本地租赁信息
@ -518,16 +563,13 @@ class IndexController extends BaseApiController
//更改租赁列表车辆状态
$vehicle = json_decode($contract['cars_info'], true);
//获取租赁车辆信息
$vehicleRentInfo = VehicleRent::where('car_id', $vehicle['id'])->find();
$vehicleRentInfo = VehicleRent::where('car_id', $vehicle[0]['id'])->find();
//更新原始合同类型
VehicleContract::where('id', $vehicleRentInfo['contract_id'])->update(['status' => 6]);
VehicleRent::where('car_id', $vehicle['id'])->update([
'status' => 3,
]);
VehicleContract::where('id', $vehicleRentInfo['rent_contract_id'])->delete();
VehicleRent::where('car_id', $vehicle[0]['id'])->delete();
//通知物流系统跟新
curl_post(env('project.logistic_domain').'/api/cancelRent', [], [
'car_id' => $vehicle['id'],
'status' => 1
curl_post(env('project.logistic_domain').'/api/Vehicle/delRentUseInfo', [], [
'car_id' => $vehicle[0]['id']
]);
return json(['success' => true, 'msg' => '成功']);
}

View File

@ -113,7 +113,6 @@ class InformationController extends BaseApiController
}
UserInformationg::where('id', $param['id'])->update(['update_time' => time(), 'is_update' => 1]);
return $this->success('成功');
}

View File

@ -30,7 +30,7 @@ class VehicleController extends BaseApiController
//自有车辆数量
$selfCar = VehicleRent::field('id')->where('company_id',$this->userInfo['company_id'])->where('status','<>',3)->where('type',1)->count();
//可在租车辆
$doubleRentCar = $villageCompany - $rentCar - $applyCar - $selfCar;
$doubleRentCar = max($villageCompany - $rentCar - $applyCar - $selfCar,0);
if($params['num'] > $doubleRentCar ){
return $this->fail('数量超过可再租车辆数');
}
@ -243,7 +243,7 @@ class VehicleController extends BaseApiController
return $this->fail('请勿重复申请');
}
if($params['type'] == 1){
$cars_info = json_encode(['license'=>$params['license'],'pic'=>$params['pic']]);
$cars_info = json_encode([['license'=>$params['license'],'pic'=>$params['pic']]]);
$car_type = 1;
}else{
$cars_info = null;
@ -395,7 +395,7 @@ class VehicleController extends BaseApiController
//自有车辆数量
$selfCar = VehicleRent::field('id')->where('company_id',$company['id'])->where('status','<>',3)->where('type',1)->count();
//可在租车辆
$doubleRentCar = $villageCompany - $rentCar - $applyCar - $selfCar;
$doubleRentCar = max($villageCompany - $rentCar - $applyCar - $selfCar,0);
//设置数据
$data = [
'apply' => $vehicleContract,
@ -419,9 +419,17 @@ class VehicleController extends BaseApiController
if($company['company_type'] != 18 ){
return $this->fail('非小组公司不能访问');
}
//获取购买车辆记录
$buyCarRent = VehicleBuyRecord::where('company_id',$company['id'])->where('status','<>',4)->findOrEmpty();
if($buyCarRent->isEmpty()){
$data = VehicleContract::where('company_b_id',$company['id'])->where('type','<>',2)->order('id desc')->findOrEmpty();
}else{
$data = $buyCarRent;
$data['status'] = 0;
$data['type'] = 0;
}
//获取签约合同
$vehicleContract = VehicleContract::where('company_b_id',$company['id'])->where('type','<>',2)->order('id desc')->findOrEmpty();
return $this->success('请求成功',$vehicleContract->toArray());
return $this->success('请求成功',$data->toArray());
}
//车辆详情
@ -632,6 +640,9 @@ class VehicleController extends BaseApiController
$xzRentCars = array_column($xzRentCars,'car_id');
//5、获取平台未出租的车辆
$result = curl_post(env('project.logistic_domain').'/api/Vehicle/getFreeCars',[],['ids'=>implode(',',array_merge($zjRentCars,$xzRentCars))]);
foreach($result['data'] as $k => $v){
$result['data'][$k]['checked'] = [];
}
//6、返回
return $this->success('success',$result['data']);
}
@ -768,6 +779,48 @@ class VehicleController extends BaseApiController
'create_time' => time()
]);
}
//如果有租赁车俩和上传自有车辆,也有购买镇街公司租赁的车辆 则先向镇街公司发起解约合同,再由镇街公司向平台公司发起解约合同
if(!$xzRentCars->isEmpty() && !$zjRentCars->isEmpty()){
//获取镇街公司信息
$zjCompanyInfo = Company::field('id,company_name,master_name,master_phone,master_email,organization_code')->where('id',$zjCompany['party_a'])->findOrEmpty();
//生成本地解约合同
$res = VehicleContract::create([
'contract_no' => time(),
'contract_logistic_id' => 0,
'company_a_id' => $zjCompanyInfo['id'],
'company_a_name' => $zjCompanyInfo['company_name'],
'company_a_code' => $zjCompanyInfo['organization_code'],
'company_a_user' => $zjCompanyInfo['master_name'],
'company_a_phone' => $zjCompanyInfo['master_phone'],
'company_a_email' => $zjCompanyInfo['master_email'],
'company_b_id' => $xzCompany['id'],
'company_b_name' => $xzCompany['company_name'],
'company_b_code' => $xzCompany['organization_code'],
'company_b_user' => $xzCompany['master_name'],
'company_b_phone' => $xzCompany['master_phone'],
'company_b_email' => $xzCompany['master_email'],
'num' =>1,
'cars_info' => json_encode([['id'=>$xzRentCars['car_id'],'license'=>$xzRentCars['car_license']]]),
'type' => 2,
'status' => 0,
'create_time' => time(),
'update_time' => time(),
]);
//生成关联记录
VehicleBuyRecord::create([
'company_id' => $xzCompany['id'],
'company_name' => $xzCompany['company_name'],
'company_code' => $xzCompany['organization_code'],
'company_user' => $xzCompany['master_name'],
'company_phone' => $xzCompany['master_phone'],
'company_email' => $xzCompany['master_email'],
'cars_info' => json_encode($cars),
'num' => count($cars),
'status' => 2,
'contract_id' => $res->id,
'create_time' => time()
]);
}
//更新物流系统
curl_post(env('project.logistic_domain').'/api/Vehicle/updateVehicleStatusToBuy',[],['car_ids'=>implode(',',$car_ids)]);
return $this->success('合同发起成功,等待审核 from task');

View File

@ -18,6 +18,7 @@ use IFlytek\Xfyun\Speech\ChatClient;
use IFlytek\Xfyun\Speech\IatClient;
use IFlytek\Xfyun\Speech\TtsClient;
use IFlytek\Xfyun\Speech\OcrClient;
use think\facade\Db;
use WebSocket\Client;
use GuzzleHttp\Client as GzClient;
use GuzzleHttp\Psr7\Request;
@ -30,99 +31,148 @@ use Guzzle\Http\Exception\RequestException;
*/
class XunFeiController extends BaseApiController
{
public array $notNeedLogin = ['chat', 'iat', 'tts', 'ocr', 'iatWss'];
public array $notNeedLogin = ['chat', 'iat', 'tts', 'ocr', 'iatWss', 'analyse'];
private $app_id='2eda6c2e';
private $api_key='12ec1f9d113932575fc4b114a2f60ffd';
private $api_secret='MDEyMzE5YTc5YmQ5NjMwOTU1MWY4N2Y2';
//星火认知chat
public function chat()
{
header('X-Accel-Buffering: no');
$parmas=$this->request->param('content');
if(empty($parmas)){
return $this->success('success');
$content = $this->request->param('content');
if(empty($content)){
return $this->data(['answer' => '']);
}
$chat=new ChatClient($this->app_id,$this->api_key,$this->api_secret);
$client = new Client($chat->assembleAuthUrl('wss://spark-api.xf-yun.com/v2.1/chat'));
// 连接到 WebSocket 服务器
if ($client) {
// 发送数据到 WebSocket 服务器
$data = $this->getBody($this->app_id,$parmas);
$header = [
"app_id" => $this->app_id,
"uid" => "1"
];
$parameter = [
"chat" => [
"domain" => "generalv2",
"temperature" => 0.5,
"max_tokens" => 1024
]
];
$payload = [
"message" => [
"text" => [
["role" => "user", "content" => $content]
]
]
];
$data = json_encode([
"header" => $header,
"parameter" => $parameter,
"payload" => $payload
]);
$client->send($data);
// 从 WebSocket 服务器接收数据
$answer = "";
while(true){
$response = $client->receive();
$resp = json_decode($response,true);
$code = $resp["header"]["code"];
// echo "从服务器接收到的数据: " . $response;
$resp = json_decode($response, true);
$code = $resp["header"]["code"] ?? 0;
if(0 == $code){
$status = $resp["header"]["status"];
if($status != 2){
$content = $resp['payload']['choices']['text'][0]['content'];
$answer .= $content;
print($answer);
ob_flush(); // 刷新输出缓冲区
flush(); // 刷新系统输出缓冲区
}else{
$content = $resp['payload']['choices']['text'][0]['content'];
$answer .= $content;
$total_tokens = $resp['payload']['usage']['text']['total_tokens'];
print("\n本次消耗token用量\n");
print($total_tokens);
ob_flush(); // 刷新输出缓冲区
flush(); // 刷新系统输出缓冲区
break;
}
}else{
return $this->fail( "服务返回报错".$response);
return $this->fail( "服务返回报错 " . $response);
break;
}
}
ob_flush(); // 刷新输出缓冲区
flush(); // 刷新系统输出缓冲区
return $this->success('success');
return $this->data(['answer' => $answer]);
} else {
return $this->fail('无法连接到 WebSocket 服务器');
}
}
//构造参数体
function getBody($appid,$question){
$header = array(
"app_id" => $appid,
"uid" => "1"
);
$parameter = array(
"chat" => array(
"domain" => "generalv2",
"temperature" => 0.5,
"max_tokens" => 1024
)
);
$payload = array(
"message" => array(
"text" => array(
array("role" => "user", "content" => $question)
)
)
);
$json_string = json_encode(array(
"header" => $header,
"parameter" => $parameter,
"payload" => $payload
));
return $json_string;
//AI分析信息
public function analyse()
{
$informationg_demand_id = $this->request->param('informationg_demand_id');
if(empty($informationg_demand_id)){
return $this->fail('信息参数错误');
}
$informationg = Db::name('user_informationg_demand')->where('id', $informationg_demand_id)->where('status', 1)->find();
$type_name = Db::name('category_business')->where('id', $informationg['category_child'])->value('name');
$data_field = json_decode($informationg['data_field'], true);
$demand = '';
foreach($data_field as $k=>$v) {
$demand .= $k . '' . $v . '';
}
$question = "分析以下{$type_name}信息【{$demand}】请问有那些商机?";
$chat=new ChatClient($this->app_id,$this->api_key,$this->api_secret);
$client = new Client($chat->assembleAuthUrl('wss://spark-api.xf-yun.com/v2.1/chat'));
// 连接到 WebSocket 服务器
if ($client) {
$header = [
"app_id" => $this->app_id,
"uid" => "1"
];
$parameter = [
"chat" => [
"domain" => "generalv2",
"temperature" => 0.5,
"max_tokens" => 1024
]
];
$payload = [
"message" => [
"text" => [
["role" => "user", "content" => $question]
]
]
];
$data = json_encode([
"header" => $header,
"parameter" => $parameter,
"payload" => $payload
]);
$client->send($data);
$answer = '';
while(true){
$response = $client->receive();
$resp = json_decode($response, true);
$code = $resp["header"]["code"] ?? 0;
if($code == 0){
$status = $resp["header"]["status"];
$content = $resp['payload']['choices']['text'][0]['content'] ?? '';
$answer .= $content;
if($status == 2){
break;
}
}else{
return $this->fail( "服务返回报错 " . $response);
break;
}
}
$data = [
'ai_aianalyse' => $answer,
'update_time' => time(),
];
$res = Db::name('user_informationg_demand')->where('id', $informationg_demand_id)->update($data);
if (!$res) {
return $this->fail('AI分析信息失败');
}
} else {
return $this->fail('无法连接到 WebSocket 服务器');
}
return $this->data(['question'=>$question, 'answer' => $answer]);
}
//语音听写(流式版)
@ -147,7 +197,7 @@ class XunFeiController extends BaseApiController
$last_file = substr($savename, -36);
$copyFile = app()->getRootPath() . '/public/uploads/iat/' . $last_file;
// 临时方案
// ********** 临时方案 ********** //
copy($file, $copyFile);
// $last_file = 'a1fcdd96c7967b48add17b52ab456368.mp3';
$curl_url = "https://dev.app.tword.cn/ffmpeg.php?file={$last_file}";
@ -277,7 +327,7 @@ class XunFeiController extends BaseApiController
return $this->data(['words' => $words]);
}
//获取websocket
//获取语音听写(流式版)websocket地址
public function iatWss()
{
header('X-Accel-Buffering: no');

View File

@ -0,0 +1,41 @@
<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台PHP版
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用可去除界面版权logo
// | gitee下载https://gitee.com/likeshop_gitee/likeadmin
// | github下载https://github.com/likeshop-github/likeadmin
// | 访问官网https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\api\controller;
use think\facade\Db;
use WebSocket\Client;
use GuzzleHttp\Client as GzClient;
use GuzzleHttp\Psr7\Request;
use GuzzleHttp\Exception\GuzzleException;
use Guzzle\Http\Exception\RequestException;
/**
* 七牛直播
* Class ZhiboController
*/
class ZhiboController extends BaseApiController
{
public array $notNeedLogin = ['chat'];
private $app_id='2eda6c2e';
private $api_key='12ec1f9d113932575fc4b114a2f60ffd';
private $api_secret='MDEyMzE5YTc5YmQ5NjMwOTU1MWY4N2Y2';
public function chat()
{
return $this->data([]);
}
}

View File

@ -8,6 +8,7 @@ use think\facade\Log;
use app\common\logic\BaseLogic;
use app\common\model\Company;
use app\common\model\user\User;
use app\job\AiAianalyse;
class UserInformationg extends BaseModel
{
@ -87,24 +88,44 @@ class UserInformationg extends BaseModel
public static function informationg_demand($param, $id, $admin_id)
{
$data_field = [];
if (isset($param['card_id']) && $param['card_id'] > 0) {
$category_id = Db::name('category_business')->where('id', $param['card_id'])->value('pid');
$category_info = Db::name('category_business')->where('id', $param['card_id'])->field(['pid', 'data_field'])->find();
$category_child = $param['card_id'];
$field_array = json_decode($category_info['data_field'], true);
if (!empty($field_array) && is_array($field_array)) {
// 拼装词语
foreach($param['datas'] as $k => $v) {
if (!empty($field_array[$k]['text'])) {
$key = $field_array[$k]['text'];
if (!empty($field_array[$k]['enum'])) {
$data_field[$key] = $field_array[$k]['enum'][$v] ?? '';
} else {
$data_field[$key] = $v;
}
}
}
}
} else {
$category_id = 0;
$category_child = 0;
}
$data = [
'create_user_id' => $admin_id,
'category_id' => $category_id,
'category_id' => $category_info['pid'] ?? 0,
'category_child' => $category_child,
'data' => json_encode($param['datas']),
'data_field' => json_encode($data_field),
'create_time' => time(),
'update_time' => time(),
'status' => 1,
'information_id' => $id,
];
return UserInformationgDemand::create($data);
$res = UserInformationgDemand::create($data);
if ($res) {
queue(AiAianalyse::class, $data);
}
return $res;
}
public static function details($id)
@ -120,7 +141,10 @@ class UserInformationg extends BaseModel
$arr = [
'id' => $v['category_child'],
'update_time' => $v['update_time'],
'datas' => $v['data']
'datas' => $v['data'],
'data_field' => json_decode($v['data_field']),
'ai_question' => $v['ai_question'],
'ai_aianalyse' => $v['ai_aianalyse'],
];
if ($v['data']) {
array_push($datas, $arr);
@ -131,6 +155,19 @@ class UserInformationg extends BaseModel
return $item;
}
public static function business_opportunity($informationg_id_array)
{
$demand_id_array = UserInformationgDemand::whereIn('information_id', $informationg_id_array)->where('status', 1)->field(['max(id) as demand_id'])->group('information_id')->select()->column('demand_id');
$data = UserInformationgDemand::whereIn('id', $demand_id_array)->column('*', 'information_id');
foreach($data as &$item) {
$item['data'] = json_decode($item['data'], true);
$item['data_field'] = json_decode($item['data_field'], true);
$item['relation_goods'] = [];
}
unset($item);
return $data;
}
public function company()
{
return $this->hasOne(Company::class, 'id', 'company_id')->field(['id', 'company_name', 'admin_id']);

93
app/job/AiAianalyse.php Normal file
View File

@ -0,0 +1,93 @@
<?php
namespace app\job;
use app\common\model\informationg\UserInformationg;
use think\facade\Db;
use think\queue\Job;
use IFlytek\Xfyun\Speech\ChatClient;
use WebSocket\Client;
use GuzzleHttp\Client as GzClient;
use GuzzleHttp\Psr7\Request;
use GuzzleHttp\Exception\GuzzleException;
use Guzzle\Http\Exception\RequestException;
/**
* 任务执行AI分析
*/
class AiAianalyse
{
private $app_id='2eda6c2e';
private $api_key='12ec1f9d113932575fc4b114a2f60ffd';
private $api_secret='MDEyMzE5YTc5YmQ5NjMwOTU1MWY4N2Y2';
public function fire(Job $job, $data)
{
if ($job->attempts() > 3) {
//通过这个方法可以检查这个任务已经重试了几次了
$job->delete();
}
$type_name = Db::name('category_business')->where('id', $data['category_child'])->value('name');
$data_field = json_decode($data['data_field'], true);
$demand = '';
foreach($data_field as $k=>$v) {
$demand .= $k . '' . $v . '';
}
$question = "分析以下{$type_name}信息【{$demand}】请问有那些商机?需要购买哪些商品?";
try {
$chat=new ChatClient($this->app_id,$this->api_key,$this->api_secret);
$client = new Client($chat->assembleAuthUrl('wss://spark-api.xf-yun.com/v2.1/chat'));
if ($client) {
$header = [
"app_id" => $this->app_id,
"uid" => "1"
];
$parameter = [
"chat" => [
"domain" => "generalv2",
"temperature" => 0.5,
"max_tokens" => 1024
]
];
$payload = [
"message" => [
"text" => [
["role" => "user", "content" => $question]
]
]
];
$chat_data = json_encode([
"header" => $header,
"parameter" => $parameter,
"payload" => $payload
]);
$client->send($chat_data);
$answer = '';
while(true){
$response = $client->receive();
$resp = json_decode($response, true);
$code = $resp["header"]["code"] ?? 0;
if($code > 0){
break;
}
$status = $resp["header"]["status"];
$content = $resp['payload']['choices']['text'][0]['content'] ?? '';
$answer .= $content;
if($status == 2){
break;
}
}
$update_data = [
'ai_question' => $question,
'ai_aianalyse' => $answer,
'update_time' => time(),
];
unset($data['data'], $data['data_field']);
Db::name('user_informationg_demand')->where($data)->update($update_data);
}
} catch (\Exception $e) {}
$job->delete();
}
}

View File

@ -42,7 +42,8 @@
"workerman/gateway-worker": "^3.1",
"workerman/gatewayclient": "^3.0",
"jpush/jpush": "^3.6",
"topthink/think-filesystem": "^2.0"
"topthink/think-filesystem": "^2.0",
"alibabacloud/live": "^1.8"
},
"require-dev": {
"symfony/var-dumper": "^4.2",

60
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "d25d7e585d92ff404a5aaad86a120d75",
"content-hash": "0ba9392aaf4e23b4c1f1d571084d8951",
"packages": [
{
"name": "adbario/php-dot-notation",
@ -155,6 +155,64 @@
},
"time": "2022-12-09T04:05:55+00:00"
},
{
"name": "alibabacloud/live",
"version": "1.8.958",
"source": {
"type": "git",
"url": "https://github.com/alibabacloud-sdk-php/live.git",
"reference": "2dc756e9e156cb33bc1287d28fc3fade87e4ae60"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/alibabacloud-sdk-php/live/zipball/2dc756e9e156cb33bc1287d28fc3fade87e4ae60",
"reference": "2dc756e9e156cb33bc1287d28fc3fade87e4ae60",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"alibabacloud/client": "^1.5",
"php": ">=5.5"
},
"type": "library",
"autoload": {
"psr-4": {
"AlibabaCloud\\Live\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "Alibaba Cloud SDK",
"email": "sdk-team@alibabacloud.com",
"homepage": "http://www.alibabacloud.com"
}
],
"description": "Alibaba Cloud Live SDK for PHP",
"homepage": "https://www.alibabacloud.com/",
"keywords": [
"alibaba",
"alibabacloud",
"aliyun",
"cloud",
"library",
"live",
"sdk"
],
"support": {
"issues": "https://github.com/alibabacloud-sdk-php/live/issues",
"source": "https://github.com/alibabacloud-sdk-php/live"
},
"time": "2021-04-29T09:14:45+00:00"
},
{
"name": "aliyuncs/oss-sdk-php",
"version": "v2.6.0",

View File

@ -16,16 +16,16 @@ return array(
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
'a1105708a18b76903365ca1c4aa61b02' => $vendorDir . '/symfony/translation/Resources/functions.php',
'd767e4fc2dc52fe66584ab8c6684783e' => $vendorDir . '/adbario/php-dot-notation/src/helpers.php',
'b067bc7112e384b61c701452d53a14a8' => $vendorDir . '/mtdowling/jmespath.php/src/JmesPath.php',
'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',
'0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php',
'd767e4fc2dc52fe66584ab8c6684783e' => $vendorDir . '/adbario/php-dot-notation/src/helpers.php',
'66453932bc1be9fb2f910a27947d11b6' => $vendorDir . '/alibabacloud/client/src/Functions.php',
'2cffec82183ee1cea088009cef9a6fc3' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
'b067bc7112e384b61c701452d53a14a8' => $vendorDir . '/mtdowling/jmespath.php/src/JmesPath.php',
'c5521cebe610a9bf42c44b3a5163adfd' => $vendorDir . '/overtrue/socialite/src/Contracts/FactoryInterface.php',
'ccd11c8e7dd9b33638b248681bdfba27' => $vendorDir . '/overtrue/socialite/src/Contracts/UserInterface.php',
'5649552725dea6ec47381627600e3ac1' => $vendorDir . '/overtrue/socialite/src/Contracts/ProviderInterface.php',
'23c18046f52bef3eea034657bafda50f' => $vendorDir . '/symfony/polyfill-php81/bootstrap.php',
'66453932bc1be9fb2f910a27947d11b6' => $vendorDir . '/alibabacloud/client/src/Functions.php',
'cd5441689b14144e5573bf989ee47b34' => $vendorDir . '/qcloud/cos-sdk-v5/src/Common.php',
'841780ea2e1d6545ea3a253239d59c05' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/functions.php',
'941748b3c8cae4466c827dfb5ca9602a' => $vendorDir . '/rmccue/requests/library/Deprecated.php',

View File

@ -10,7 +10,7 @@ return array(
'think\\view\\driver\\' => array($vendorDir . '/topthink/think-view/src'),
'think\\trace\\' => array($vendorDir . '/topthink/think-trace/src'),
'think\\app\\' => array($vendorDir . '/topthink/think-multi-app/src'),
'think\\' => array($vendorDir . '/topthink/framework/src/think', $vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-orm/src', $vendorDir . '/topthink/think-queue/src', $vendorDir . '/topthink/think-template/src', $vendorDir . '/topthink/think-filesystem/src'),
'think\\' => array($vendorDir . '/topthink/framework/src/think', $vendorDir . '/topthink/think-filesystem/src', $vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-orm/src', $vendorDir . '/topthink/think-queue/src', $vendorDir . '/topthink/think-template/src'),
'clagiordano\\weblibs\\configmanager\\' => array($vendorDir . '/clagiordano/weblibs-configmanager/src'),
'app\\' => array($baseDir . '/app'),
'ZipStream\\' => array($vendorDir . '/maennchen/zipstream-php/src'),
@ -74,6 +74,7 @@ return array(
'Cron\\' => array($vendorDir . '/dragonmantank/cron-expression/src/Cron'),
'Complex\\' => array($vendorDir . '/markbaker/complex/classes/src'),
'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'),
'AlibabaCloud\\Live\\' => array($vendorDir . '/alibabacloud/live'),
'AlibabaCloud\\Client\\' => array($vendorDir . '/alibabacloud/client/src'),
'Adbar\\' => array($vendorDir . '/adbario/php-dot-notation/src'),
'' => array($vendorDir . '/phrity/util-errorhandler/src'),

View File

@ -17,16 +17,16 @@ class ComposerStaticInit7f3b0f886ea5f6310a43341d4e2b8ffb
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
'a1105708a18b76903365ca1c4aa61b02' => __DIR__ . '/..' . '/symfony/translation/Resources/functions.php',
'd767e4fc2dc52fe66584ab8c6684783e' => __DIR__ . '/..' . '/adbario/php-dot-notation/src/helpers.php',
'b067bc7112e384b61c701452d53a14a8' => __DIR__ . '/..' . '/mtdowling/jmespath.php/src/JmesPath.php',
'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',
'0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php',
'd767e4fc2dc52fe66584ab8c6684783e' => __DIR__ . '/..' . '/adbario/php-dot-notation/src/helpers.php',
'66453932bc1be9fb2f910a27947d11b6' => __DIR__ . '/..' . '/alibabacloud/client/src/Functions.php',
'2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
'b067bc7112e384b61c701452d53a14a8' => __DIR__ . '/..' . '/mtdowling/jmespath.php/src/JmesPath.php',
'c5521cebe610a9bf42c44b3a5163adfd' => __DIR__ . '/..' . '/overtrue/socialite/src/Contracts/FactoryInterface.php',
'ccd11c8e7dd9b33638b248681bdfba27' => __DIR__ . '/..' . '/overtrue/socialite/src/Contracts/UserInterface.php',
'5649552725dea6ec47381627600e3ac1' => __DIR__ . '/..' . '/overtrue/socialite/src/Contracts/ProviderInterface.php',
'23c18046f52bef3eea034657bafda50f' => __DIR__ . '/..' . '/symfony/polyfill-php81/bootstrap.php',
'66453932bc1be9fb2f910a27947d11b6' => __DIR__ . '/..' . '/alibabacloud/client/src/Functions.php',
'cd5441689b14144e5573bf989ee47b34' => __DIR__ . '/..' . '/qcloud/cos-sdk-v5/src/Common.php',
'841780ea2e1d6545ea3a253239d59c05' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/functions.php',
'941748b3c8cae4466c827dfb5ca9602a' => __DIR__ . '/..' . '/rmccue/requests/library/Deprecated.php',
@ -162,6 +162,7 @@ class ComposerStaticInit7f3b0f886ea5f6310a43341d4e2b8ffb
),
'A' =>
array (
'AlibabaCloud\\Live\\' => 18,
'AlibabaCloud\\Client\\' => 20,
'Adbar\\' => 6,
),
@ -187,11 +188,11 @@ class ComposerStaticInit7f3b0f886ea5f6310a43341d4e2b8ffb
'think\\' =>
array (
0 => __DIR__ . '/..' . '/topthink/framework/src/think',
1 => __DIR__ . '/..' . '/topthink/think-helper/src',
2 => __DIR__ . '/..' . '/topthink/think-orm/src',
3 => __DIR__ . '/..' . '/topthink/think-queue/src',
4 => __DIR__ . '/..' . '/topthink/think-template/src',
5 => __DIR__ . '/..' . '/topthink/think-filesystem/src',
1 => __DIR__ . '/..' . '/topthink/think-filesystem/src',
2 => __DIR__ . '/..' . '/topthink/think-helper/src',
3 => __DIR__ . '/..' . '/topthink/think-orm/src',
4 => __DIR__ . '/..' . '/topthink/think-queue/src',
5 => __DIR__ . '/..' . '/topthink/think-template/src',
),
'clagiordano\\weblibs\\configmanager\\' =>
array (
@ -446,6 +447,10 @@ class ComposerStaticInit7f3b0f886ea5f6310a43341d4e2b8ffb
array (
0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon',
),
'AlibabaCloud\\Live\\' =>
array (
0 => __DIR__ . '/..' . '/alibabacloud/live',
),
'AlibabaCloud\\Client\\' =>
array (
0 => __DIR__ . '/..' . '/alibabacloud/client/src',

View File

@ -155,6 +155,67 @@
},
"install-path": "../alibabacloud/client"
},
{
"name": "alibabacloud/live",
"version": "1.8.958",
"version_normalized": "1.8.958.0",
"source": {
"type": "git",
"url": "https://github.com/alibabacloud-sdk-php/live.git",
"reference": "2dc756e9e156cb33bc1287d28fc3fade87e4ae60"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/alibabacloud-sdk-php/live/zipball/2dc756e9e156cb33bc1287d28fc3fade87e4ae60",
"reference": "2dc756e9e156cb33bc1287d28fc3fade87e4ae60",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"alibabacloud/client": "^1.5",
"php": ">=5.5"
},
"time": "2021-04-29T09:14:45+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-4": {
"AlibabaCloud\\Live\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "Alibaba Cloud SDK",
"email": "sdk-team@alibabacloud.com",
"homepage": "http://www.alibabacloud.com"
}
],
"description": "Alibaba Cloud Live SDK for PHP",
"homepage": "https://www.alibabacloud.com/",
"keywords": [
"alibaba",
"alibabacloud",
"aliyun",
"cloud",
"library",
"live",
"sdk"
],
"support": {
"issues": "https://github.com/alibabacloud-sdk-php/live/issues",
"source": "https://github.com/alibabacloud-sdk-php/live"
},
"install-path": "../alibabacloud/live"
},
{
"name": "aliyuncs/oss-sdk-php",
"version": "v2.6.0",

View File

@ -3,7 +3,7 @@
'name' => 'topthink/think',
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'reference' => '79fc9780490166b204ecd49aaeda85e93e94cf2d',
'reference' => '93ef4ca7130cd285dd44ca7dec8be67c86d7be20',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@ -28,6 +28,15 @@
'aliases' => array(),
'dev_requirement' => false,
),
'alibabacloud/live' => array(
'pretty_version' => '1.8.958',
'version' => '1.8.958.0',
'reference' => '2dc756e9e156cb33bc1287d28fc3fade87e4ae60',
'type' => 'library',
'install_path' => __DIR__ . '/../alibabacloud/live',
'aliases' => array(),
'dev_requirement' => false,
),
'aliyuncs/oss-sdk-php' => array(
'pretty_version' => 'v2.6.0',
'version' => '2.6.0.0',
@ -676,7 +685,7 @@
'topthink/think' => array(
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'reference' => '79fc9780490166b204ecd49aaeda85e93e94cf2d',
'reference' => '93ef4ca7130cd285dd44ca7dec8be67c86d7be20',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),

2
vendor/services.php vendored
View File

@ -1,5 +1,5 @@
<?php
// This file is automatically generated at:2023-10-10 10:15:01
// This file is automatically generated at:2023-10-16 14:54:17
declare (strict_types = 1);
return array (
0 => 'think\\app\\Service',