作者 李宇航

合并分支 'lyh-server' 到 'master'

Lyh server



查看合并请求 !2396
... ... @@ -98,6 +98,10 @@ class GeoQuestionRes extends Command
$data = $geo_service->getDeepSeekResult($question);
$result = $this->dealDeepSeek($data);
break;
case 'gpt-4o-mini':
$data = $geo_service->getDeepSeekResult($question,'gpt-4o-mini');
$result = $this->dealDeepSeek($data,'gpt-4o-mini');
break;
default:
$result = $geo_service->getAiPlatformResult($question, $platform);
break;
... ... @@ -215,10 +219,10 @@ class GeoQuestionRes extends Command
* @method :post
* @time :2025/7/15 10:58
*/
public function dealDeepSeek($data){
public function dealDeepSeek($data,$model = 'DeepSeek'){
$result = [
'code' => 200,
'model' => 'DeepSeek',
'model' => $model,
'text' => '',
];
$texts = [];
... ...
... ... @@ -33,9 +33,11 @@ use App\Models\Project\ProcessRecords;
use App\Models\Project\Project;
use App\Models\Project\ProjectUpdateTdk;
use App\Models\Project\RenewLog;
use App\Models\ProjectAssociation\ProjectAssociation;
use App\Models\RankData\RankData;
use App\Models\Task\Task;
use App\Models\WebSetting\WebLanguage;
use App\Models\WorkOrder\TicketProject;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
... ... @@ -70,23 +72,13 @@ class ProjectController extends BaseController
if(!empty($lists) && !empty($lists['list'])){
foreach ($lists['list'] as $k => $v){
$v = $this->handleParam($v);
// 组装 工单UUID
$ticketProject = null;
$ticketProject = DB::table('gl_ticket_projects')
->where('table_id', $v['id'])
->where('project_cate', 2)
->first();
$v['uuid'] = $ticketProject ? $ticketProject->uuid : null;
// 组装 工单UUID END
$lists['list'][$k] = $v;
}
}
$this->response('success',Code::SUCCESS,$lists);
}
/**
* 需要查询的字段
* @return array
... ... @@ -458,6 +450,8 @@ class ProjectController extends BaseController
$item['task_finish_num'] = Task::getNumByProjectId($item['id'], Task::STATUS_DOWN);
$item['task_pending_num'] = Task::getNumByProjectId($item['id'], [Task::STATUS_DONGING, Task::STATUS_WAIT]);
$item['collect_time'] = $item['is_upgrade'] ? UpdateLog::getProjectUpdate($item['id']) : '';
$item['uuid'] = TicketProject::where('table_id', $item['id'])->where('project_cate', 2)->value('uuid') ?? null;
$item['friend_id'] = ProjectAssociation::where('project_id', $item['id'])->where('status', ProjectAssociation::STATUS_NORMAL)->where('binding_app', ProjectAssociation::ENTERPRISE_WECHAT)->value('friend_id') ?? null;
return $item;
}
... ...
... ... @@ -92,4 +92,17 @@ class GeoQuestionResController extends BaseController
$data = $this->logic->getResultInfo();
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :统计数量
* @name :countQuantity
* @author :lyh
* @method :post
* @time :2025/7/21 10:58
*/
public function countQuantity(){
$data = $this->logic->countQuantity();
$data['platform'] = $this->logic->platformHitCount();
$this->response('success',Code::SUCCESS,$data);
}
}
... ...
... ... @@ -10,6 +10,8 @@
namespace App\Http\Logic\Bside\Geo;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\Geo\GeoPlatform;
use App\Models\Geo\GeoQuestion;
use App\Models\Geo\GeoQuestionResult;
class GeoQuestionResLogic extends BaseLogic
... ... @@ -64,4 +66,60 @@ class GeoQuestionResLogic extends BaseLogic
$data = $this->model->read($this->param);
return $this->success($data);
}
/**
* @remark :统计数量
* @name :countQuantity
* @author :lyh
* @method :post
* @time :2025/7/21 11:12
*/
public function countQuantity(){
$questionModel = new GeoQuestion();
$list = $questionModel->list(['project_id',$this->user['project_id']],['question','keywords','url']);
$questionTotalCount = $urlTotalCount = $keywordsTotalCount = $keywordUrlCount = 0;
foreach ($list as $item){
$questionTotalCount += count($item['question'] ?? []);
$keywordsTotalCount += count($item['keywords'] ?? []);
$urlTotalCount += count($item['url'] ?? []);
}
$keywordArr = [];
$questionResModel = new GeoQuestionResult();
$resList = $questionResModel->list(['project_id',$this->user['project_id']],['keywords_num','url_num']);
foreach ($resList as $resItem){
$keywordsNumArr = json_decode($resItem['keywords_num'] ?? [], true); // 转为 PHP 关联数组
$keywordUrlCount += array_sum($keywordsNumArr); // 获取值的总和
$urlNumArr = json_decode($resItem['url'] ?? [],true);
$keywordUrlCount += array_sum($urlNumArr); // 获取值的总和
foreach ($resItem['keywords_num'] as $key => $value) {
$keywordArr[$key] = ($keywordArr[$key] ?? 0) + $value;
}
}
$data = [
'keywords_count'=>$keywordsTotalCount,
'url_count'=>$urlTotalCount,
'question_count'=>$questionTotalCount,
'keywords_url_count'=>$keywordUrlCount,
'keywords_arr' => $keywordArr,
];
return $this->success($data);
}
/**
* @remark :按平台统计问题数量
* @name :platformHitCount
* @author :lyh
* @method :post
* @time :2025/7/21 15:00
*/
public function platformHitCount(){
$data = [];
$platformModel = new GeoPlatform();
$list = $platformModel->list(['status'=>1],'id',['name','en_name']);
$questionResModel = new GeoQuestionResult();
foreach ($list as $item){
$data[$item['name']] = $questionResModel->counts(['project_id'=>$this->user['project_id'],'hit'=>['!=',0],'platform'=>$item['en_name']]);
}
return $this->success($data);
}
}
... ...
... ... @@ -69,4 +69,34 @@ class GeoQuestionResult extends Base
}
return $value;
}
/**
* @remark :命中的关键词数量
* @name :getKeywordsNumAttribute
* @author :lyh
* @method :post
* @time :2025/7/21 11:33
*/
public function getKeywordsNumAttribute($value)
{
if($value){
$value = Arr::s2a($value);
}
return $value;
}
/**
* @remark :命中的url数量
* @name :getUrlNumAttribute
* @author :lyh
* @method :post
* @time :2025/7/21 11:34
*/
public function getUrlNumAttribute($value)
{
if($value){
$value = Arr::s2a($value);
}
return $value;
}
}
... ...
... ... @@ -76,7 +76,7 @@ class GeoService
* @method :post
* @time :2025/7/15 10:59
*/
public function getDeepSeekResult($content){
public function getDeepSeekResult($content,$model = 'deepseek-r1'){
$url = $this->api_url . 'v1/chat';
$header = [
'accept: application/json',
... ... @@ -91,7 +91,7 @@ class GeoService
'role'=>'user'
],
],
'model' => 'deepseek-r1',
'model' => $model,
"supplier"=> "bailian",
'security_check' => true
];
... ...
... ... @@ -755,6 +755,7 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/getInfo', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class,'getInfo'])->name('geo_result_getInfo');
Route::any('/getType', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class, 'getType'])->name('geo_result_getType');//geo设置类型
Route::any('/getCount', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class, 'getCount'])->name('geo_result_getCount');//geo设置类型统计数量
Route::any('/countQuantity', [\App\Http\Controllers\Bside\Geo\GeoQuestionResController::class, 'countQuantity'])->name('geo_result_countQuantity');//geo统计
});
});
//无需登录验证的路由组
... ...