|
@@ -10,6 +10,8 @@ |
|
@@ -10,6 +10,8 @@ |
|
10
|
namespace App\Http\Logic\Bside\Geo;
|
10
|
namespace App\Http\Logic\Bside\Geo;
|
|
11
|
|
11
|
|
|
12
|
use App\Http\Logic\Bside\BaseLogic;
|
12
|
use App\Http\Logic\Bside\BaseLogic;
|
|
|
|
13
|
+use App\Models\Geo\GeoPlatform;
|
|
|
|
14
|
+use App\Models\Geo\GeoQuestion;
|
|
13
|
use App\Models\Geo\GeoQuestionResult;
|
15
|
use App\Models\Geo\GeoQuestionResult;
|
|
14
|
|
16
|
|
|
15
|
class GeoQuestionResLogic extends BaseLogic
|
17
|
class GeoQuestionResLogic extends BaseLogic
|
|
@@ -64,4 +66,60 @@ class GeoQuestionResLogic extends BaseLogic |
|
@@ -64,4 +66,60 @@ class GeoQuestionResLogic extends BaseLogic |
|
64
|
$data = $this->model->read($this->param);
|
66
|
$data = $this->model->read($this->param);
|
|
65
|
return $this->success($data);
|
67
|
return $this->success($data);
|
|
66
|
}
|
68
|
}
|
|
|
|
69
|
+
|
|
|
|
70
|
+ /**
|
|
|
|
71
|
+ * @remark :统计数量
|
|
|
|
72
|
+ * @name :countQuantity
|
|
|
|
73
|
+ * @author :lyh
|
|
|
|
74
|
+ * @method :post
|
|
|
|
75
|
+ * @time :2025/7/21 11:12
|
|
|
|
76
|
+ */
|
|
|
|
77
|
+ public function countQuantity(){
|
|
|
|
78
|
+ $questionModel = new GeoQuestion();
|
|
|
|
79
|
+ $list = $questionModel->list(['project_id',$this->user['project_id']],['question','keywords','url']);
|
|
|
|
80
|
+ $questionTotalCount = $urlTotalCount = $keywordsTotalCount = $keywordUrlCount = 0;
|
|
|
|
81
|
+ foreach ($list as $item){
|
|
|
|
82
|
+ $questionTotalCount += count($item['question'] ?? []);
|
|
|
|
83
|
+ $keywordsTotalCount += count($item['keywords'] ?? []);
|
|
|
|
84
|
+ $urlTotalCount += count($item['url'] ?? []);
|
|
|
|
85
|
+ }
|
|
|
|
86
|
+ $keywordArr = [];
|
|
|
|
87
|
+ $questionResModel = new GeoQuestionResult();
|
|
|
|
88
|
+ $resList = $questionResModel->list(['project_id',$this->user['project_id']],['keywords_num','url_num']);
|
|
|
|
89
|
+ foreach ($resList as $resItem){
|
|
|
|
90
|
+ $keywordsNumArr = json_decode($resItem['keywords_num'] ?? [], true); // 转为 PHP 关联数组
|
|
|
|
91
|
+ $keywordUrlCount += array_sum($keywordsNumArr); // 获取值的总和
|
|
|
|
92
|
+ $urlNumArr = json_decode($resItem['url'] ?? [],true);
|
|
|
|
93
|
+ $keywordUrlCount += array_sum($urlNumArr); // 获取值的总和
|
|
|
|
94
|
+ foreach ($resItem['keywords_num'] as $key => $value) {
|
|
|
|
95
|
+ $keywordArr[$key] = ($keywordArr[$key] ?? 0) + $value;
|
|
|
|
96
|
+ }
|
|
|
|
97
|
+ }
|
|
|
|
98
|
+ $data = [
|
|
|
|
99
|
+ 'keywords_count'=>$keywordsTotalCount,
|
|
|
|
100
|
+ 'url_count'=>$urlTotalCount,
|
|
|
|
101
|
+ 'question_count'=>$questionTotalCount,
|
|
|
|
102
|
+ 'keywords_url_count'=>$keywordUrlCount,
|
|
|
|
103
|
+ 'keywords_arr' => $keywordArr,
|
|
|
|
104
|
+ ];
|
|
|
|
105
|
+ return $this->success($data);
|
|
|
|
106
|
+ }
|
|
|
|
107
|
+
|
|
|
|
108
|
+ /**
|
|
|
|
109
|
+ * @remark :按平台统计问题数量
|
|
|
|
110
|
+ * @name :platformHitCount
|
|
|
|
111
|
+ * @author :lyh
|
|
|
|
112
|
+ * @method :post
|
|
|
|
113
|
+ * @time :2025/7/21 15:00
|
|
|
|
114
|
+ */
|
|
|
|
115
|
+ public function platformHitCount(){
|
|
|
|
116
|
+ $data = [];
|
|
|
|
117
|
+ $platformModel = new GeoPlatform();
|
|
|
|
118
|
+ $list = $platformModel->list(['status'=>1],'id',['name','en_name']);
|
|
|
|
119
|
+ $questionResModel = new GeoQuestionResult();
|
|
|
|
120
|
+ foreach ($list as $item){
|
|
|
|
121
|
+ $data[$item['name']] = $questionResModel->counts(['project_id'=>$this->user['project_id'],'hit'=>['!=',0],'platform'=>$item['en_name']]);
|
|
|
|
122
|
+ }
|
|
|
|
123
|
+ return $this->success($data);
|
|
|
|
124
|
+ }
|
|
67
|
} |
125
|
} |