SettingController.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Setting;
  5. use Illuminate\Support\Facades\Hash;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Log;
  8. use Illuminate\Support\Facades\Storage;
  9. use Illuminate\Support\Facades\Validator;
  10. use zgldh\QiniuStorage\QiniuStorage;
  11. use Qiniu\Auth;
  12. class SettingController extends Controller
  13. {
  14. //获取首页操作视频
  15. public function getHomeVideo()
  16. {
  17. $data = Setting::where('key', 'home.operation.video')->first();
  18. return $this->success($data);
  19. }
  20. //上传首页操作视频
  21. public function uploadHomeVideo(Request $request)
  22. {
  23. $rules = [
  24. 'video' => 'required|file|video_length:5000',
  25. ];
  26. // Custom validation rule
  27. Validator::extend('video_length', function($attribute, $value, $parameters) {
  28. $length = 0; // check length using library
  29. return $length <= $parameters[0];
  30. });
  31. if (!$request->hasFile('video')) {
  32. return $this->error('450001', '上传视频不存在');
  33. }
  34. $video = $request->file('video');
  35. $path = $video->store('public/video');
  36. if ($path) {
  37. $url = env('APP_URL') . Storage::url($path);
  38. $res = Setting::where('key', 'home.operation.video')
  39. ->update([
  40. 'value' => $url
  41. ]);
  42. if ($res) {
  43. return $this->success($url);
  44. }
  45. }
  46. return $this->error();
  47. }
  48. //上传操作视频
  49. public function uploadVideo(Request $request)
  50. {
  51. if (!$request->hasFile('video')) {
  52. return $this->error('450001', '上传视频不存在');
  53. }
  54. $video = $request->file('video');
  55. $path = $video->store('public/video');
  56. if ($path) {
  57. $url = env('APP_URL') . Storage::url($path);
  58. return $this->success($url);
  59. }
  60. return $this->error();
  61. }
  62. //获取全部视频信息
  63. public function getVideoAll(){
  64. $setting=Setting::all();
  65. if($setting){
  66. return $this->success($setting);
  67. }else{
  68. return $this->error();
  69. }
  70. }
  71. //获取单个视频信息
  72. public function getVideo2Id(Request $request){
  73. $id=$request->input('id');
  74. $setting=Setting::where('id',$id)->first();
  75. if($setting){
  76. return $this->success($setting);
  77. }else{
  78. return $this->error();
  79. }
  80. }
  81. //添加操作视频信息
  82. public function addVideo(Request $request)
  83. {
  84. $rules=[
  85. 'name'=>'required|max:32',
  86. 'url'=>'required'
  87. ];
  88. $messages=[
  89. 'name.required'=>'标题不能为空.',
  90. 'name.max'=>'标题长度最长32个字符.',
  91. 'url.required'=>'视频链接不能为空.'
  92. ];
  93. $validator = Validator::make($request->input(), $rules, $messages);
  94. if($validator->fails()){
  95. return $this->error('400013',$validator->errors()->first());
  96. }
  97. $name = $request->input('name');
  98. $value = $request->input('url');
  99. $res = Setting::create([
  100. 'name' => $name,
  101. 'value' => $value
  102. ]);
  103. if ($res) {
  104. return $this->success([]);
  105. } else {
  106. return $this->error();
  107. }
  108. }
  109. //修改操作视频信息
  110. public function editVideo(Request $request)
  111. {
  112. $rules=[
  113. 'name'=>'required|max:32',
  114. 'url'=>'required'
  115. ];
  116. $messages=[
  117. 'name.required'=>'标题不能为空.',
  118. 'name.max'=>'标题长度最长32个字符.',
  119. 'url.required'=>'视频链接不能为空.'
  120. ];
  121. $validator = Validator::make($request->input(), $rules, $messages);
  122. if($validator->fails()){
  123. return $this->error('400013',$validator->errors()->first());
  124. }
  125. $id=$request->input('id');
  126. $name = $request->input('name');
  127. $value = $request->input('url');
  128. $res = Setting::where('id',$id)->update([
  129. 'name' => $name,
  130. 'value' => $value
  131. ]);
  132. if ($res) {
  133. return $this->success([]);
  134. } else {
  135. return $this->error();
  136. }
  137. }
  138. //删除操作视频信息
  139. public function deleteVideo(Request $request)
  140. {
  141. $id=$request->input('id');
  142. $res = Setting::where('id',$id)->delete();
  143. if ($res) {
  144. return $this->success([]);
  145. } else {
  146. return $this->error();
  147. }
  148. }
  149. public function getUploadQiniu(){
  150. // 第一步,引入七牛Auth类
  151. // 第二步,实例话七牛Auth类
  152. // config是Laravel框架自带获取配置参数的函数。其他框架或者语言请自行填写
  153. // config('filesystems.qiniu.access_key')是取配置文件中的access_key参数
  154. // config('filesystems.qiniu.secret_key')是取配置文件中的secret_key参数
  155. // config('filesystems.qiniu.bucket')是取配置文件中的bucket参数
  156. $auth = new Auth(config('filesystems.disks.qiniu.access_key'),config('filesystems.disks.qiniu.secret_key'));
  157. // return response()->json([
  158. // 'token' => $auth->uploadToken(config('filesystems.qiniu.bucket'))
  159. // ]);
  160. //return config('filesystems.disks.qiniu.access_key');
  161. // 这里建议如果使用cdn加速,以及其他一些参数可以在这个接口返回必须的字段。如返回
  162. $data= [
  163. 'action' => config('filesystems.disks.qiniu.domains.default'),//'http://upload-z2.qiniup.com', // 七牛云存储客户端直传域名
  164. 'cdn' => config('filesystems.disks.qiniu.domains.https'),//'https://cdn.xxxx.com', // cdn域名
  165. 'token' => $auth->uploadToken(config('filesystems.disks.qiniu.bucket'))
  166. ];
  167. return $this->success($data);
  168. }
  169. }