StorageController.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\admin\controllers;
  8. use app\models\common\CommonOverRun;
  9. use app\models\common\CommonUpload;
  10. use app\models\UploadConfig;
  11. use Yii;
  12. use yii\web\Response;
  13. use app\modules\admin\models\StorageForm;
  14. use app\models\Storage;
  15. class StorageController extends BaseController
  16. {
  17. /**
  18. * 上传图片
  19. * @return Response
  20. */
  21. public function actionUploadImages()
  22. {
  23. $form = new StorageForm();
  24. $form->upload_config = UploadConfig::getConf(get_store_id());
  25. $form->parent_id = input_params('parent_id', 0);
  26. $res = $form->uploadFile(Storage::TYPE_IMAGE);
  27. return $this->asJson([
  28. 'code' => 0,
  29. 'msg' => 'success',
  30. 'data' => $res,
  31. ]);
  32. }
  33. /**
  34. * 上传表格
  35. * @return Response
  36. */
  37. public function actionUploadXlsx()
  38. {
  39. $form = new StorageForm();
  40. $form->upload_config = UploadConfig::getConf(get_store_id());
  41. $form->parent_id = input_params('parent_id', 0);
  42. $res = $form->uploadFile(Storage::TYPE_XlSX);
  43. return $this->asJson([
  44. 'code' => 0,
  45. 'msg' => 'success',
  46. 'data' => $res,
  47. ]);
  48. }
  49. /**
  50. * 上传视频
  51. * @return Response
  52. */
  53. public function actionUploadVideos()
  54. {
  55. $form = new StorageForm();
  56. $form->parent_id = input_params('parent_id', 0);
  57. $form->upload_config = UploadConfig::getConf(get_store_id());
  58. $form->supplier_id = get_supplier_id();
  59. $res = $form->uploadFile(Storage::TYPE_VIDEO);
  60. return $this->asJson([
  61. 'code' => 0,
  62. 'msg' => 'success',
  63. 'data' => $res,
  64. ]);
  65. }
  66. public function actionUploadAudio()
  67. {
  68. $form = new StorageForm();
  69. $form->parent_id = input_params('parent_id', 0);
  70. $form->upload_config = UploadConfig::getConf(get_store_id());
  71. $res = $form->uploadFile(Storage::TYPE_AUDIO);
  72. return $this->asJson([
  73. 'code' => 0,
  74. 'msg' => 'success',
  75. 'data' => $res,
  76. ]);
  77. }
  78. /**
  79. * 上传证书文件
  80. * @return Response
  81. */
  82. public function actionUploadCrt()
  83. {
  84. $form = new StorageForm();
  85. $form->parent_id = input_params('parent_id', 0);
  86. $form->upload_config = UploadConfig::getConf(get_store_id());
  87. $res = $form->uploadFile(Storage::TYPE_CRT);
  88. return $this->asJson([
  89. 'code' => 0,
  90. 'msg' => 'success',
  91. 'status' => 'done',
  92. 'data' => $res,
  93. ]);
  94. }
  95. /**
  96. * 上传证书文件
  97. * @return Response
  98. */
  99. public function actionUploadPfx()
  100. {
  101. $form = new StorageForm();
  102. // $form->parent_id = input_params('parent_id', 0);
  103. $form->upload_config = UploadConfig::getConf(get_store_id());
  104. $res = $form->uploadFile(Storage::TYPE_PFX);
  105. return $this->asJson([
  106. 'code' => 0,
  107. 'msg' => 'success',
  108. 'status' => 'done',
  109. 'data' => $res,
  110. ]);
  111. }
  112. /**
  113. * 上传证书文件
  114. * @return Response
  115. */
  116. public function actionUploadPem()
  117. {
  118. $form = new StorageForm();
  119. // $form->parent_id = input_params('parent_id', 0);
  120. $form->upload_config = UploadConfig::getConf(get_store_id());
  121. $res = $form->uploadFile(Storage::TYPE_PEM);
  122. return $this->asJson([
  123. 'code' => 0,
  124. 'msg' => 'success',
  125. 'status' => 'done',
  126. 'data' => $res,
  127. ]);
  128. }
  129. /**
  130. * 上传证书文件
  131. * @return Response
  132. */
  133. public function actionUploadCer()
  134. {
  135. $form = new StorageForm();
  136. // $form->parent_id = input_params('parent_id', 0);
  137. $form->upload_config = UploadConfig::getConf(get_store_id());
  138. $res = $form->uploadFile(Storage::TYPE_CER);
  139. return $this->asJson([
  140. 'code' => 0,
  141. 'msg' => 'success',
  142. 'status' => 'done',
  143. 'data' => $res,
  144. ]);
  145. }
  146. /**
  147. * 上传apk文件
  148. * @return Response
  149. */
  150. public function actionUploadApp()
  151. {
  152. $form = new StorageForm();
  153. $form->parent_id = input_params('parent_id', 0);
  154. $form->upload_config = UploadConfig::getConf(get_store_id());
  155. $res = $form->uploadFile(Storage::TYPE_APK);
  156. return $this->asJson([
  157. 'code' => 0,
  158. 'msg' => 'success',
  159. 'status' => 'done',
  160. 'data' => $res,
  161. ]);
  162. }
  163. /**
  164. * 获取storage配置
  165. * @return Response
  166. */
  167. public function actionStorageOption()
  168. {
  169. $form = new StorageForm();
  170. $type = get_params('type');
  171. return $this->asJson([
  172. 'code' => 0,
  173. 'msg' => 'success',
  174. 'data' => $form->getStorageOption($type),
  175. ]);
  176. }
  177. /**
  178. * 获取文件列表
  179. * @return Response
  180. */
  181. public function actionGetList()
  182. {
  183. $form = new StorageForm();
  184. $form->parent_id = input_params('parent_id', 0);
  185. $form->type = input_params('type', Storage::TYPE_IMAGE);
  186. $form->search_name = input_params('search_name');
  187. $form->sort_type = input_params('sort_type', 'id');
  188. $form->sort_method = input_params('sort_method', 'ASC');
  189. return $this->asJson([
  190. 'code' => 0,
  191. 'msg' => 'success',
  192. 'data' => $form->getList(),
  193. ]);
  194. }
  195. /**
  196. * 创建目录
  197. * @return Response
  198. */
  199. public function actionAddDir()
  200. {
  201. $dirName = input_params('dir_name');
  202. if (! $dirName) {
  203. return $this->asJson([
  204. 'code' => 1,
  205. 'msg' => '目录名称不能为空'
  206. ]);
  207. }
  208. try {
  209. $form = new StorageForm();
  210. $form->parent_id = input_params('parent_id', 0);
  211. if ($form->addDir($dirName)) {
  212. return $this->asJson([
  213. 'code' => 0,
  214. 'msg' => '目录创建成功'
  215. ]);
  216. }
  217. return $this->asJson([
  218. 'code' => 1,
  219. 'msg' => '目录创建失败'
  220. ]);
  221. } catch (\Throwable $throwable) {
  222. return $this->asJson([
  223. 'code' => 1,
  224. 'msg' => $throwable->getMessage(),
  225. ]);
  226. }
  227. }
  228. /**
  229. * 重命名
  230. * @return Response
  231. */
  232. public function actionRename()
  233. {
  234. $name = input_params('name');
  235. $id = input_params('id');
  236. if (! $id) {
  237. return $this->asJson([
  238. 'code' => 1,
  239. 'msg' => '缺少必要参数ID'
  240. ]);
  241. }
  242. if (! $name) {
  243. return $this->asJson([
  244. 'code' => 1,
  245. 'msg' => '名称不能为空'
  246. ]);
  247. }
  248. try {
  249. $form = new StorageForm();
  250. $form->rename($id, $name);
  251. return $this->asJson([
  252. 'code' => 0,
  253. 'msg' => '操作成功'
  254. ]);
  255. } catch (\Throwable $throwable) {
  256. return $this->asJson([
  257. 'code' => 1,
  258. 'msg' => $throwable->getMessage(),
  259. ]);
  260. }
  261. }
  262. /**
  263. * 批量删除资源
  264. * @return Response
  265. */
  266. public function actionDelete()
  267. {
  268. try {
  269. $ids = input_params('ids');
  270. $form = new StorageForm();
  271. $form->deleteById($ids);
  272. return $this->asJson([
  273. 'code' => 0,
  274. 'msg' => '删除成功'
  275. ]);
  276. } catch (\Throwable $throwable) {
  277. return $this->asJson([
  278. 'code' => 1,
  279. 'msg' => $throwable->getMessage(),
  280. ]);
  281. }
  282. }
  283. /**
  284. * 删除目录
  285. * @return Response
  286. */
  287. public function actionDeleteDir()
  288. {
  289. try {
  290. $id = input_params('id');
  291. $form = new StorageForm();
  292. $form->deleteDirById($id);
  293. return $this->asJson([
  294. 'code' => 0,
  295. 'msg' => '删除成功'
  296. ]);
  297. } catch (\Throwable $throwable) {
  298. return $this->asJson([
  299. 'code' => 1,
  300. 'msg' => $throwable->getMessage(),
  301. ]);
  302. }
  303. }
  304. /**
  305. * 获取目录树
  306. * @return Response
  307. */
  308. public function actionGetDirTree()
  309. {
  310. // 该字段用来排除目录, 如果有数据就会过滤该目录及下级目录
  311. $exclude_id = input_params('exclude_id');
  312. $form = new StorageForm();
  313. $res = $form->getDirTree(0, $exclude_id);
  314. $data = [[
  315. 'key' => '0',
  316. 'title' => '根目录',
  317. 'children' => $res,
  318. ]];
  319. return $this->asJson([
  320. 'code' => 0,
  321. 'msg' => 'success',
  322. 'data' => $data,
  323. ]);
  324. }
  325. /**
  326. * 移动目录
  327. * @return Response
  328. */
  329. public function actionDragDir()
  330. {
  331. try {
  332. $parent_id = input_params('parent_id', 0);
  333. $ids = input_params('ids');
  334. $form = new StorageForm();
  335. $form->dragDir($parent_id, $ids);
  336. return $this->asJson([
  337. 'code' => 0,
  338. 'msg' => '移动成功'
  339. ]);
  340. } catch (\Throwable $throwable) {
  341. return $this->asJson([
  342. 'code' => 1,
  343. 'msg' => $throwable->getMessage(),
  344. ]);
  345. }
  346. }
  347. /**
  348. * 上传设置
  349. */
  350. public function actionConfig()
  351. {
  352. $model = UploadConfig::findOne([
  353. 'store_id' => get_store_id(),
  354. 'is_delete' => 0,
  355. ]);
  356. if (!$model) {
  357. $model = new UploadConfig();
  358. }
  359. if (\Yii::$app->request->isPost) {
  360. $form = new CommonUpload();
  361. $form->attributes = post_params();
  362. $form->model = $model;
  363. $form->store_id = get_store_id();
  364. return $this->asJson($form->save());
  365. } else {
  366. $model->aliyun = json_decode($model->aliyun, true);
  367. $model->qcloud = json_decode($model->qcloud, true);
  368. $model->qiniu = json_decode($model->qiniu, true);
  369. return $this->asJson([
  370. 'code' => 0,
  371. 'data' => $model
  372. ]);
  373. }
  374. }
  375. /**
  376. * 越限设置
  377. * @return string
  378. * @throws \Exception
  379. */
  380. public function actionRunOver()
  381. {
  382. if (\Yii::$app->request->isPost) {
  383. $form = new CommonOverRun();
  384. $form->attributes = post_params();
  385. return $this->asJson($form->save());
  386. } else {
  387. $form = new CommonOverRun();
  388. return $this->asJson($form->search());
  389. }
  390. }
  391. }