SettingsController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. namespace App\Http\Controllers\Admin\Settings;
  3. use App\Http\Controllers\Admin\Controller;
  4. use App\Models\BaseSettingsModel;
  5. use Illuminate\Http\Request;
  6. use App\Repositories\Settings\Banner\Criteria\MultiWhere;
  7. use App\Repositories\Settings\SettingsRepository;
  8. use App\Repositories\Base\Criteria\OrderBy;
  9. class SettingsController extends Controller
  10. {
  11. private $repository;
  12. public function __construct(SettingsRepository $repository) {
  13. if(!$this->repository) $this->repository = $repository;
  14. }
  15. public function banner(Request $request)
  16. {
  17. $search['keyword'] = $request->input('keyword');
  18. $appid = $this->getAppId();
  19. $search['appid'] = $appid;
  20. $query = $this->repository->pushCriteria(new MultiWhere($search));
  21. $request = $request->all();
  22. if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) {
  23. $query = $query->pushCriteria(new OrderBy($request['sort_field'],$request['sort_field_by']));
  24. }
  25. $list = $query->paginate();
  26. return view('admin.settings.banner.index',compact('list'));
  27. }
  28. public function bannerCreate(Request $reqeust)
  29. {
  30. if ($reqeust->method() == 'POST') {
  31. return $this->_createSave();
  32. }
  33. return view('admin.settings.banner.edit');
  34. }
  35. /**
  36. * 保存修改
  37. */
  38. private function _createSave(){
  39. $data = (array) request('data');
  40. $data['appid'] = $this->getAppId();
  41. // dd($data);
  42. $data['category'] = 'banner';
  43. $data['key'] = '0';
  44. $data['pid'] = '0';
  45. $id = $this->repository->create($data);
  46. if($id) {
  47. $url[] = array('url'=>U( 'setting/banner/index'),'title'=>'返回列表');
  48. $url[] = array('url'=>U( 'setting/banner/create'),'title'=>'继续添加');
  49. $this->showMessage('添加成功',$url);
  50. }else{
  51. $url[] = array('url'=>U( 'setting/banner/index'),'title'=>'返回列表');
  52. return $this->showWarning('添加失败',$url);
  53. }
  54. }
  55. /**
  56. *
  57. * 修改
  58. *
  59. *
  60. */
  61. public function bannerUpdate(Request $reqeust) {
  62. if($reqeust->method() == 'POST') {
  63. return $this->_updateSave();
  64. }
  65. $data = $this->repository->find($reqeust->get('id'));
  66. return view('admin.settings.banner.edit',compact('data'));
  67. }
  68. /**
  69. * 保存修改
  70. */
  71. private function _updateSave() {
  72. $data = (array) request('data');
  73. $data2 = $this->repository->find(request('id')) ;
  74. $old_pics = $data2->value;
  75. if ($old_pics != $data['value']) {
  76. if (is_file('.'.str_replace(getenv('APP_URL'),'',$old_pics))) {
  77. unlink('.'.str_replace(getenv('APP_URL'),'',$old_pics));
  78. }
  79. }
  80. $ok = $this->repository->update(request('id'),$data);
  81. if($ok) {
  82. $url[] = array('url'=>U( 'setting/banner/index'),'title'=>'返回列表');
  83. return $this->showMessage('操作成功',urldecode(request('_referer')));
  84. }else{
  85. $url[] = array('url'=>U( 'setting/banner/index'),'title'=>'返回列表');
  86. return $this->showWarning('操作失败',$url);
  87. }
  88. }
  89. public function bannerDestroy(Request $request)
  90. {
  91. $data2 = $this->repository->find(request('id')) ;
  92. $old_pics = $data2->value;
  93. $bool = $this->repository->destroy($request->id);
  94. if($bool) {
  95. if (is_file('.'.str_replace(getenv('APP_URL'),'',$old_pics))) {
  96. unlink('.'.str_replace(getenv('APP_URL'),'',$old_pics));
  97. }
  98. return $this->showMessage('操作成功');
  99. }else {
  100. return $this->showWarning("操作失败");
  101. }
  102. }
  103. }