SettingsController.php 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  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. $query = $this->repository->pushCriteria(new MultiWhere($search));
  19. $request = $request->all();
  20. if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) {
  21. $query = $query->pushCriteria(new OrderBy($request['sort_field'],$request['sort_field_by']));
  22. }
  23. $list = $query->paginate();
  24. return view('admin.settings.banner.index',compact('list'));
  25. }
  26. public function bannerCreate(Request $reqeust)
  27. {
  28. if ($reqeust->method() == 'POST') {
  29. return $this->_createSave();
  30. }
  31. return view('admin.settings.banner.edit');
  32. }
  33. /**
  34. * 保存修改
  35. */
  36. private function _createSave(){
  37. $data = (array) request('data');
  38. $pic = (array) request('value');
  39. $data['category'] = 'banner';
  40. $data['key'] = '0';
  41. $data['pid'] = '0';
  42. $data['value'] = getenv('APP_URL').$pic[0];
  43. $id = $this->repository->create($data);
  44. if($id) {
  45. $url[] = array('url'=>U( 'setting/banner/index'),'title'=>'返回列表');
  46. $url[] = array('url'=>U( 'setting/banner/create'),'title'=>'继续添加');
  47. $this->showMessage('添加成功',$url);
  48. }else{
  49. $url[] = array('url'=>U( 'setting/banner/index'),'title'=>'返回列表');
  50. return $this->showWarning('添加失败',$url);
  51. }
  52. }
  53. /**
  54. *
  55. * 修改
  56. *
  57. *
  58. */
  59. public function bannerUpdate(Request $reqeust) {
  60. if($reqeust->method() == 'POST') {
  61. return $this->_updateSave();
  62. }
  63. $data = $this->repository->find($reqeust->get('id'));
  64. return view('admin.settings.banner.edit',compact('data'));
  65. }
  66. /**
  67. * 保存修改
  68. */
  69. private function _updateSave() {
  70. $data = (array) request('data');
  71. $data2 = $this->repository->find(request('id')) ;
  72. $old_pics = $data2->value;
  73. $pic = (array) request('value');
  74. if (!empty($pic)) {
  75. $data['value'] = getenv('APP_URL').$pic[0];
  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. // 参数设置
  104. public function paihangEdit(Request $reqeust) {
  105. if ($reqeust->method() == 'POST') {
  106. $data = (array) request('data');
  107. $result = BaseSettingsModel::where('category','paihang')->get();
  108. if (count($result) == 0) {
  109. $data['category'] = 'paihang';
  110. $data['sort'] = 0;
  111. $data['pid'] = 0;
  112. $ok = BaseSettingsModel::create($data);
  113. if ($ok) {
  114. return $this->showMessage('操作成功');
  115. }else{
  116. return $this->showWarning('操作失败');
  117. }
  118. }else {
  119. $ok = BaseSettingsModel::where('category', 'paihang')->update($data);
  120. if ($ok) {
  121. return $this->showMessage('操作成功');
  122. } else {
  123. return $this->showWarning('操作失败');
  124. }
  125. }
  126. }
  127. $data = BaseSettingsModel::where('category','paihang')->first();
  128. return view('admin.settings.paihang.edit',compact('data'));
  129. }
  130. public function payEdit(Request $reqeust) {
  131. if ($reqeust->method() == 'POST') {
  132. $data = (array) request('data');
  133. dd($data);
  134. $result = BaseSettingsModel::where('category','pay_article')->get();
  135. if (count($result) == 0) {
  136. $data['category'] = 'pay_article';
  137. $data['sort'] = 0;
  138. $data['pid'] = 0;
  139. $ok = BaseSettingsModel::create($data);
  140. if ($ok) {
  141. return $this->showMessage('操作成功');
  142. }else{
  143. return $this->showWarning('操作失败');
  144. }
  145. }else {
  146. $ok = BaseSettingsModel::where('category', 'pay_article')->update($data);
  147. if ($ok) {
  148. return $this->showMessage('操作成功');
  149. } else {
  150. return $this->showWarning('操作失败');
  151. }
  152. }
  153. }
  154. $data = BaseSettingsModel::where('category','pay_article')->first();
  155. return view('admin.settings.pay_article.edit',compact('data'));
  156. }
  157. public function scoreEdit(Request $reqeust) {
  158. if ($reqeust->method() == 'POST') {
  159. $data = (array) request('data');
  160. $result = BaseSettingsModel::where('category','score')->get();
  161. if (count($result) == 0) {
  162. $data['category'] = 'score';
  163. $data['sort'] = 0;
  164. $data['pid'] = 0;
  165. $ok = BaseSettingsModel::create($data);
  166. if ($ok) {
  167. return $this->showMessage('操作成功');
  168. }else{
  169. return $this->showWarning('操作失败');
  170. }
  171. }else {
  172. $ok = BaseSettingsModel::where('category', 'score')->update($data);
  173. if ($ok) {
  174. return $this->showMessage('操作成功');
  175. } else {
  176. return $this->showWarning('操作失败');
  177. }
  178. }
  179. }
  180. $data = BaseSettingsModel::where('category','score')->first();
  181. return view('admin.settings.score.edit',compact('data'));
  182. }
  183. public function sign(Request $request)
  184. {
  185. $search['keyword'] = $request->input('keyword');
  186. $query = $this->repository->pushCriteria(new MultiWhere($search));
  187. $request = $request->all();
  188. if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) {
  189. $query = $query->pushCriteria(new OrderBy($request['sort_field'],$request['sort_field_by']));
  190. }
  191. $list = $query->paginate();
  192. return view('admin.settings.sign.index',compact('list'));
  193. }
  194. public function signCreate(Request $reqeust)
  195. {
  196. if ($reqeust->method() == 'POST') {
  197. return $this->sign_createSave();
  198. }
  199. return view('admin.settings.sign.edit');
  200. }
  201. /**
  202. * 保存修改
  203. */
  204. private function sign_createSave(){
  205. $data = (array) request('data');
  206. $data['category'] = 'sign';
  207. $data['key'] = '0';
  208. $data['pid'] = '0';
  209. $data['sort'] = 0;
  210. $id = $this->repository->create($data);
  211. if($id) {
  212. $url[] = array('url'=>U( 'setting/sign/index'),'title'=>'返回列表');
  213. $url[] = array('url'=>U( 'setting/sign/create'),'title'=>'继续添加');
  214. $this->showMessage('添加成功',$url);
  215. }else{
  216. $url[] = array('url'=>U( 'setting/sign/index'),'title'=>'返回列表');
  217. return $this->showWarning('添加失败',$url);
  218. }
  219. }
  220. /**
  221. *
  222. * 修改
  223. *
  224. *
  225. */
  226. public function signUpdate(Request $reqeust) {
  227. if($reqeust->method() == 'POST') {
  228. return $this->sign_updateSave();
  229. }
  230. $data = $this->repository->find($reqeust->get('id'));
  231. return view('admin.settings.sign.edit',compact('data'));
  232. }
  233. /**
  234. * 保存修改
  235. */
  236. private function sign_updateSave() {
  237. $data = (array) request('data');
  238. $ok = $this->repository->update(request('id'),$data);
  239. if($ok) {
  240. $url[] = array('url'=>U( 'setting/sign/index'),'title'=>'返回列表');
  241. return $this->showMessage('操作成功',urldecode(request('_referer')));
  242. }else{
  243. $url[] = array('url'=>U( 'setting/sign/index'),'title'=>'返回列表');
  244. return $this->showWarning('操作失败',$url);
  245. }
  246. }
  247. public function signDestroy(Request $request)
  248. {
  249. $bool = $this->repository->destroy($request->id);
  250. if($bool) {
  251. return $this->showMessage('操作成功');
  252. }else {
  253. return $this->showWarning("操作失败");
  254. }
  255. }
  256. }