|
...
|
...
|
@@ -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);
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|