|
@@ -177,34 +177,40 @@ class UrlManagementService
|
177
|
177
|
return $url;
|
178
|
178
|
}
|
179
|
179
|
|
180
|
|
- public function takeOrlPV($ids, $oid)
|
|
180
|
+ public function takeOrlPV($ids, $oid,$datesegs="N")
|
181
|
181
|
{
|
182
|
182
|
// 取得參數
|
183
|
183
|
// 調用資料庫(或者其他業務邏輯)
|
|
184
|
+ $groupByStr = "dataManagement_urlManagement_visit.code";
|
|
185
|
+ $takePVSelector = array('dataManagement_urlManagement_visit.code',\DB::raw("count(*) as uv_count "));
|
|
186
|
+ $urlSelector = array('serno',\DB::raw("ifnull(uv_count, 0) as pv"));
|
|
187
|
+ if($datesegs == "Y"){
|
|
188
|
+ $groupByStr .= ", left(dataManagement_urlManagement_visit.cdate, 10) asc";
|
|
189
|
+ $urlSelector = array('serno',\DB::raw("ifnull(uv_count, 0) as pv"),"uv.cdate");
|
|
190
|
+ $takePVSelector = array('dataManagement_urlManagement_visit.code',\DB::raw("count(*) as uv_count "),\DB::raw('left(cdate, 10) as cdate'));
|
|
191
|
+ }
|
|
192
|
+ $takePV = $this->urlManagementVisitDb
|
|
193
|
+ ->select($takePVSelector)
|
|
194
|
+ ->whereIn('dataManagement_urlManagement_visit.code', function ($query) use ($ids,$oid) {
|
|
195
|
+ $query->select('code')
|
|
196
|
+ ->from('dataManagement_urlManagement')
|
|
197
|
+ ->whereIn('serno', $ids);
|
|
198
|
+ if ($oid != GeneralConst::ID_ADMIN) {
|
|
199
|
+ $query = $query->where('oid', $oid);
|
|
200
|
+ }
|
|
201
|
+ });
|
|
202
|
+ $takePV = $takePV->groupBy(\DB::raw($groupByStr));
|
184
|
203
|
$url = $this->urlManagementDb
|
185
|
|
- ->select([
|
186
|
|
- 'serno',
|
187
|
|
- 'title',
|
188
|
|
- 'url',
|
189
|
|
- \DB::raw("concat('" . env('ORL_URL') . "', code, '') as code"),
|
190
|
|
- 'memo',
|
191
|
|
- 'valid',
|
192
|
|
- ]);
|
193
|
|
-
|
194
|
|
- $url = $this->urlManagementDb
|
195
|
|
- ->select([
|
196
|
|
- 'dataManagement_urlManagement.serno',
|
197
|
|
- \DB::raw("ifnull(uv_count, 0) as pv"),
|
198
|
|
- ])
|
199
|
|
- ->leftjoin(\DB::raw("(select v.code, count(*) as uv_count from dataManagement_urlManagement_visit as v where (cdate >= '1900-01-01 00:00:00' and cdate <= '2050-12-31 23:59:59') group by v.code) as uv"), 'dataManagement_urlManagement.code', '=', 'uv.code');
|
|
204
|
+ ->select($urlSelector)
|
|
205
|
+ ->leftjoin(\DB::raw("({$takePV->toSql()}) as uv"), 'dataManagement_urlManagement.code', '=', 'uv.code')
|
|
206
|
+ ->mergeBindings($takePV->getQuery());
|
|
207
|
+
|
200
|
208
|
// 權限判斷
|
201
|
209
|
if ($oid != GeneralConst::ID_ADMIN) {
|
202
|
|
- $url = $url
|
203
|
|
- ->where('oid', '=', $oid);
|
|
210
|
+ $url = $url->where('oid',$oid);
|
204
|
211
|
}
|
205
|
|
- $url = $url
|
206
|
|
- ->whereIn('serno', $ids)
|
207
|
|
- ->get();
|
|
212
|
+ $url = $url->whereIn('serno', $ids);
|
|
213
|
+ $url = $url->get();
|
208
|
214
|
if (is_null($url)) {
|
209
|
215
|
return [];
|
210
|
216
|
}
|