4
4
5
5
use App \Http \Controllers \Controller ;
6
6
use Illuminate \Http \Request ;
7
+ use Illuminate \Support \Facades \Storage ;
7
8
use App \User ;
8
9
use App \Models \Order ;
9
10
use App \Models \Post ;
@@ -44,6 +45,7 @@ public function index()
44
45
public function clearCache (Request $ request )
45
46
{
46
47
Helper::clearCache ();
48
+ return $ this ->success ('操作成功! ' );
47
49
}
48
50
49
51
// 获取用户统计数据
@@ -142,7 +144,7 @@ public function update(Request $request)
142
144
$ result ['app_version ' ] = config ('app.version ' );
143
145
$ result ['repository ' ] = $ repository ;
144
146
145
- $ result ['can_update ' ] = false ;
147
+ $ result ['can_update ' ] = true ;
146
148
147
149
if (isset ($ repository ['name ' ])) {
148
150
if ($ repository ['name ' ] != $ result ['app_version ' ]) {
@@ -152,4 +154,85 @@ public function update(Request $request)
152
154
153
155
return $ this ->success ('获取成功! ' ,'' ,$ result );
154
156
}
157
+
158
+ /**
159
+ * 下载最新版本文件
160
+ * @author tangtanglove <[email protected] >
161
+ */
162
+ public function download (Request $ request )
163
+ {
164
+ $ version = $ request ->get ('version ' );
165
+
166
+ $ url = "https://dev.tencent.com/u/tangtanglove/p/fullstack-backend/git/archive/ " .$ version .".zip " ;
167
+
168
+ $ file = Helper::curl ($ url ,false ,'get ' ,false ,1 );
169
+
170
+ // 默认本地上传
171
+ $ path = 'uploads/files/ ' .$ version .".zip " ;
172
+
173
+ $ result = Storage::disk ('public ' )->put ($ path ,$ file );
174
+
175
+ if ($ result ) {
176
+ return $ this ->success ('文件下载成功! ' ,'' ,$ path );
177
+ } else {
178
+ return $ this ->error ('文件下载失败! ' );
179
+ }
180
+ }
181
+
182
+ /**
183
+ * 解压程序包
184
+ * @author tangtanglove <[email protected] >
185
+ */
186
+ public function extract (Request $ request )
187
+ {
188
+ $ version = $ request ->get ('version ' );
189
+
190
+ $ path = storage_path ('app/ ' ).'public/uploads/files/ ' .$ version .".zip " ;
191
+ $ outPath = storage_path ('app/ ' ).'public/uploads/files/ ' ;
192
+
193
+ $ zip = new \ZipArchive ();
194
+
195
+ $ result = $ zip ->open ($ path );
196
+
197
+ if ($ result === true ) {
198
+ $ zip ->extractTo ($ outPath );
199
+ $ zip ->close ();
200
+ }
201
+
202
+ if ($ result ) {
203
+ return $ this ->success ('文件解压成功! ' );
204
+ } else {
205
+ return $ this ->error ('文件解压失败! ' );
206
+ }
207
+ }
208
+
209
+ /**
210
+ * 更新文件
211
+ * @author tangtanglove <[email protected] >
212
+ */
213
+ public function updateFile (Request $ request )
214
+ {
215
+ $ version = $ request ->get ('version ' );
216
+
217
+ $ path = storage_path ('app/ ' ).'public/uploads/files/fullstack-backend- ' .$ version ;
218
+
219
+ Helper::copyFileToDir ($ path ,base_path ());
220
+
221
+ return $ this ->success ('程序更新成功! ' );
222
+ }
223
+
224
+ /**
225
+ * 更新数据库
226
+ * @author tangtanglove <[email protected] >
227
+ */
228
+ public function updateDatabase (Request $ request )
229
+ {
230
+ $ result = Artisan::call ('migrate ' );
231
+
232
+ if ($ result ) {
233
+ return $ this ->success ('数据库更新成功! ' );
234
+ } else {
235
+ return $ this ->error ('数据库更新失败! ' );
236
+ }
237
+ }
155
238
}
0 commit comments