Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
14de92e0e1
@ -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';
|
||||
|
@ -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);
|
||||
|
@ -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' => '成功']);
|
||||
}
|
||||
|
@ -113,7 +113,6 @@ class InformationController extends BaseApiController
|
||||
}
|
||||
|
||||
UserInformationg::where('id', $param['id'])->update(['update_time' => time(), 'is_update' => 1]);
|
||||
|
||||
return $this->success('成功');
|
||||
}
|
||||
|
||||
|
@ -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');
|
||||
|
@ -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');
|
||||
|
41
app/api/controller/ZhiboController.php
Normal file
41
app/api/controller/ZhiboController.php
Normal 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([]);
|
||||
}
|
||||
|
||||
}
|
@ -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
93
app/job/AiAianalyse.php
Normal 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();
|
||||
}
|
||||
}
|
@ -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
60
composer.lock
generated
@ -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",
|
||||
|
6
vendor/composer/autoload_files.php
vendored
6
vendor/composer/autoload_files.php
vendored
@ -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',
|
||||
|
3
vendor/composer/autoload_psr4.php
vendored
3
vendor/composer/autoload_psr4.php
vendored
@ -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'),
|
||||
|
21
vendor/composer/autoload_static.php
vendored
21
vendor/composer/autoload_static.php
vendored
@ -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',
|
||||
|
61
vendor/composer/installed.json
vendored
61
vendor/composer/installed.json
vendored
@ -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",
|
||||
|
13
vendor/composer/installed.php
vendored
13
vendor/composer/installed.php
vendored
@ -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
2
vendor/services.php
vendored
@ -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',
|
||||
|
Loading…
x
Reference in New Issue
Block a user