Sfoglia il codice sorgente

三星picsee短網址 相關修改調整

EricYH Huang 3 anni fa
parent
commit
cdac90c4bc

+ 37
- 2
app/Http/Controllers/Api/GeneralInnerServiceController.php Vedi File

122
                 'id'      => $result["serno"],
122
                 'id'      => $result["serno"],
123
                 'url'     => $result["code"],
123
                 'url'     => $result["code"],
124
                 'origUrl' => $result["url"],
124
                 'origUrl' => $result["url"],
125
-                'title'   => $result["title"],
125
+                'title'   => $result["title"]
126
             ];
126
             ];
127
         }
127
         }
128
-
129
         // 返回
128
         // 返回
130
         return json_decode(json_encode(['code' => GeneralConst::API_OK, 'msg' => GeneralConst::$apiMap[ GeneralConst::API_OK ], 'data' => $data], JSON_NUMERIC_CHECK), true);
129
         return json_decode(json_encode(['code' => GeneralConst::API_OK, 'msg' => GeneralConst::$apiMap[ GeneralConst::API_OK ], 'data' => $data], JSON_NUMERIC_CHECK), true);
131
     }
130
     }
170
         echo (new QRCode($options))->render(env('ORL_URL') . $code);
169
         echo (new QRCode($options))->render(env('ORL_URL') . $code);
171
     }
170
     }
172
     
171
     
172
+    public function takeOrlPV(Request $request){ 
173
+        // 鑒權
174
+        if ($this->oid == 0) return json_decode(json_encode(['code' => $this->apicode, 'msg' => GeneralConst::$apiMap[ $this->apicode ], 'data' => []], JSON_NUMERIC_CHECK), true);
175
+        // 服務層
176
+        $orlId = $request->input('orlId');
177
+        $result = $this->urlManagementSv->takeOrlPV($orlId, $this->oid);
178
+        // 整理返回資料
179
+        $data = [];
180
+        if (!empty($result)) {
181
+            $data = [
182
+                'id'      => $result["serno"],
183
+                'pv'    => $result["pv"],
184
+            ];
185
+        }
186
+        // 返回
187
+        return json_decode(json_encode(['code' => GeneralConst::API_OK, 'msg' => GeneralConst::$apiMap[ GeneralConst::API_OK ], 'data' => $data], JSON_NUMERIC_CHECK), true);       
188
+    }
189
+    
190
+    public function datesegById(Request $request){ 
191
+        // 鑒權
192
+        if ($this->oid == 0) return json_decode(json_encode(['code' => $this->apicode, 'msg' => GeneralConst::$apiMap[ $this->apicode ], 'data' => []], JSON_NUMERIC_CHECK), true);
193
+        // 服務層
194
+        $orlId = $request->input('orlId');
195
+        $result = $this->urlManagementSv->getDatesegById($orlId, $this->oid);
196
+        // 整理返回資料
197
+        $data = array();
198
+        $tmp = '';
199
+        for ($i = 0; $i < count($result); $i++) {            
200
+            $data[] = [
201
+                'date' => $result[ $i ]["date"],
202
+                'cnt'  => $result[ $i ]["cnt"],
203
+            ];
204
+        }
205
+        // 返回
206
+        return json_decode(json_encode(['code' => GeneralConst::API_OK, 'msg' => GeneralConst::$apiMap[ GeneralConst::API_OK ], 'data' => $data], JSON_NUMERIC_CHECK), true);       
207
+    }
173
 }
208
 }

+ 58
- 4
app/Http/Services/Backend/DataManagement/UrlManagementService.php Vedi File

80
             ->select([
80
             ->select([
81
                 'dataManagement_urlManagement.serno',
81
                 'dataManagement_urlManagement.serno',
82
                 'title',
82
                 'title',
83
-                \DB::raw("concat('<button class=\"btn btn-xs\" id=\"url_copy_', dataManagement_urlManagement.serno, '\" url=\"', url, '\">複製網址</button>') as url"),
84
-                \DB::raw("concat('<button class=\"btn btn-xs\" id=\"url_copy_', dataManagement_urlManagement.serno, '\" url=\"" . env('ORL_URL') . "', dataManagement_urlManagement.code, '\">', dataManagement_urlManagement.code, '</button>') as code"),
83
+                // \DB::raw("concat('<button class=\"btn btn-xs\" id=\"url_copy_', dataManagement_urlManagement.serno, '\" url=\"', url, '\">複製網址</button>') as url"),
84
+                // \DB::raw("concat('<button class=\"btn btn-xs\" id=\"url_copy_', dataManagement_urlManagement.serno, '\" url=\"" . env('ORL_URL') . "', dataManagement_urlManagement.code, '\">', dataManagement_urlManagement.code, '</button>') as code"),
85
                 'memo',
85
                 'memo',
86
                 \DB::raw("ifnull(uv_count, 0) as pv"),
86
                 \DB::raw("ifnull(uv_count, 0) as pv"),
87
                 \DB::raw("(case valid $validStr end) as valid"),
87
                 \DB::raw("(case valid $validStr end) as valid"),
88
                 \DB::raw('concat(\'<a class="btn btn-success btn-xs" href="urlManagement/edit/\', dataManagement_urlManagement.serno, \'"><span class="glyphicon glyphicon-pencil"></span></a>\') as edit'),
88
                 \DB::raw('concat(\'<a class="btn btn-success btn-xs" href="urlManagement/edit/\', dataManagement_urlManagement.serno, \'"><span class="glyphicon glyphicon-pencil"></span></a>\') as edit'),
89
-                \DB::raw("concat('<img src=\"urlManagement/qrcode/', dataManagement_urlManagement.code, '\" width=\"70\"/>') as qrcode"),
89
+                // \DB::raw("concat('<img src=\"urlManagement/qrcode/', dataManagement_urlManagement.code, '\" width=\"70\"/>') as qrcode"),
90
                 \DB::raw("dataManagement_urlManagement.code as api_code"),
90
                 \DB::raw("dataManagement_urlManagement.code as api_code"),
91
                 \DB::raw("concat('" . env('APP_URL') . "/api/inner/qrcode/', dataManagement_urlManagement.code) as api_qrcode"),
91
                 \DB::raw("concat('" . env('APP_URL') . "/api/inner/qrcode/', dataManagement_urlManagement.code) as api_qrcode"),
92
             ])
92
             ])
173
             return [];
173
             return [];
174
         }
174
         }
175
         $url = $url->toArray();
175
         $url = $url->toArray();
176
-        
177
         // 整理返回值並返回
176
         // 整理返回值並返回
178
         return $url;
177
         return $url;
179
     }
178
     }
180
     
179
     
180
+    public function takeOrlPV($id, $oid)
181
+    {
182
+        // 取得參數
183
+        // 調用資料庫(或者其他業務邏輯)
184
+        $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');
200
+        // 權限判斷
201
+        if ($oid != GeneralConst::ID_ADMIN) {
202
+            $url = $url
203
+                ->where('oid', '=', $oid);
204
+        }
205
+        $url = $url
206
+            ->where('serno', $id)
207
+            ->first();
208
+        if (is_null($url)) {
209
+            return [];
210
+        }
211
+        $url = $url->toArray();
212
+        // 整理返回值並返回
213
+        return $url;
214
+    }
215
+    
216
+    public function getDatesegById($id, $oid){
217
+        // 取得依照時間切分的資料
218
+        $datesegs = $this->urlManagementVisitDb->select([
219
+            'code',
220
+            \DB::raw("left(cdate, 10) as date"),
221
+            \DB::raw("count(*) as cnt"),
222
+        ]);
223
+        if ($oid != GeneralConst::ID_ADMIN) {
224
+            $datesegs = $datesegs->where('code', $id);
225
+        }
226
+        $datesegs = $datesegs
227
+            ->groupby(\DB::raw("left(cdate, 10)"))
228
+            ->orderByRaw(\DB::raw("left(cdate, 10) asc"))
229
+            ->get()->toArray();
230
+        
231
+        // 整理返回值並返回
232
+        return $datesegs;
233
+    }
234
+    
181
     public function insertUrl($title, $url, $code, $memo, $valid, $oid)
235
     public function insertUrl($title, $url, $code, $memo, $valid, $oid)
182
     {
236
     {
183
         // 取得參數
237
         // 取得參數

+ 2
- 0
routes/web.php Vedi File

11
     Route::get('/inner/fetchById', 'GeneralInnerServiceController@fetchById');
11
     Route::get('/inner/fetchById', 'GeneralInnerServiceController@fetchById');
12
     Route::get('/inner/qrcode/{code}', 'GeneralInnerServiceController@qrcode');
12
     Route::get('/inner/qrcode/{code}', 'GeneralInnerServiceController@qrcode');
13
     Route::get('/inner/dateseg', 'GeneralInnerServiceController@dateseg');
13
     Route::get('/inner/dateseg', 'GeneralInnerServiceController@dateseg');
14
+    Route::get('/inner/takeOrlPV', 'GeneralInnerServiceController@takeOrlPV');
15
+    Route::get('/inner/datesegById', 'GeneralInnerServiceController@datesegById');
14
 });
16
 });
15
 
17
 
16
 // 後台路由
18
 // 後台路由