AdController.php 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060
  1. <?php
  2. namespace App\Admin\Controllers\Content;
  3. use App\Admin\Extensions\Field\Template;
  4. use App\Admin\Extensions\Form\ValueForm;
  5. use App\Http\Controllers\Controller;
  6. use App\Models\Ad;
  7. use App\Models\AdCategory;
  8. use App\Models\Subsite;
  9. use App\Models\SubsiteAd;
  10. use Encore\Admin\Controllers\HasResourceActions;
  11. use Encore\Admin\Facades\Admin;
  12. use Encore\Admin\Form;
  13. use Encore\Admin\Grid;
  14. use Encore\Admin\Grid\Filter;
  15. use Encore\Admin\Layout\Content;
  16. use Encore\Admin\Show;
  17. use Illuminate\Http\Request;
  18. use Illuminate\Support\Facades\Cache;
  19. //use Encore\Admin\Grid;
  20. class AdController extends Controller
  21. {
  22. use HasResourceActions;
  23. /**
  24. * Index interface.
  25. *
  26. * @param Content $content
  27. * @return Content
  28. */
  29. public function index(Content $content)
  30. {
  31. return $content
  32. ->header('广告列表')
  33. ->description(' ')
  34. ->body(view('admin.content.ad_list')->with(['grid'=>$this->grid()]));
  35. }
  36. /**
  37. * Show interface.
  38. *
  39. * @param mixed $id
  40. * @param Content $content
  41. * @return Content
  42. */
  43. public function show($id, Content $content)
  44. {
  45. return $content
  46. ->header('广告列表')
  47. ->description(' ')
  48. ->body($this->detail($id));
  49. }
  50. /**
  51. * Edit interface.
  52. *
  53. * @param mixed $id
  54. * @param Content $content
  55. * @return Content
  56. */
  57. public function edit($id, Content $content)
  58. {
  59. $info = Ad::find($id);
  60. $form= new ValueForm();
  61. $ad_info = Ad::findOrFail($id);
  62. //$form->action('/admin/content/ads/update');
  63. $form->action(route('admin.ad.update'));
  64. $form->attribute('enctype', 'multipart/form-data');
  65. $form->disablePjax();
  66. $form->text('title', '广告标题')->default($ad_info->title)->help('(区分不同广告条目,并不在广告中显示)')->setWidth(4)->setMustMark();
  67. $display_option = [
  68. 'on' => ['value' => 1, 'text' => '是', 'color' => 'success'],
  69. 'off' => ['value' => 0, 'text' => '否', 'color' => 'danger'],
  70. ];
  71. $form->switch('is_display', '显示状态')->states($display_option)->default($ad_info->is_display)->setMustMark();
  72. if ($info->subsite_id==0) {
  73. $subsites = Subsite::where(array('effective'=>1))->orderBy('order', 'asc')->get()->pluck('sitename', 'id');
  74. } else {
  75. $subsites = Subsite::where(array(array('effective','=',1),array('id','<>', $info->subsite_id)))->orderBy('order', 'asc')->get()->pluck('sitename', 'id')->toArray();
  76. $subsites['0']= '总站';
  77. $subsites = collect($subsites);
  78. }
  79. if ($subsites->isNotEmpty() && $info->subsite_id==0) {
  80. $relations = SubsiteAd::where(array('ad_id'=>$id))->get()->pluck('subsite_id')->toArray();
  81. $form->multipleSelect('relate_subsites', '同步分站')->options($subsites)->default($relations);
  82. } else {
  83. $form->hidden('relate_subsites');
  84. }
  85. $form->ignore(['relate_subsites']);
  86. $cate_option = AdCategory::all()->pluck('category_name', 'id');
  87. $form->select('category_id', '广告位')->options($cate_option)->default($ad_info->category_id)->setWidth(4)->attribute(['id' => 'sub_category'])->setMustMark();
  88. $form->number('list_order', '显示顺序')->default($ad_info->list_order)->min(0)->help('(数字越大越靠前)')->setMustMark();
  89. $form->date('started_at', '开始日期')
  90. ->format('YYYY-MM-DD')
  91. ->default($ad_info->started_at)
  92. ->rules('required|date', array('required'=>'开始日期不能为空。', 'date'=>'开始日期格式不正确。'))
  93. ->help('(设置广告起始日期,格式yyyy-mm-dd,留空为不限制起始日期)');
  94. $form->date('ended_at', '结束日期')
  95. ->format('YYYY-MM-DD')
  96. ->default($ad_info->ended_at)
  97. ->rules('required|date', array('required'=>'结束日期不能为空。', 'date'=>'结束日期格式不正确。'))
  98. ->help('(设置广告结束日期,格式yyyy-mm-dd,留空为不限制结束日期)');
  99. $form->textarea('note', '备注')->default($ad_info->note);
  100. $form->html("<div id='change_field'></div>")->plain();
  101. $form->hidden('alias')->value($ad_info->alias)->attribute('id', 'alias');
  102. $form->hidden('theme')->value($ad_info->theme);
  103. $form->hidden('type_id')->value($ad_info->type_id)->attribute('id', 'type_id');
  104. $form->hidden('id')->value($ad_info->id);
  105. $template=new Template();
  106. $template->setTemplatesId("text_div");
  107. if ($ad_info->type_id == '1') {
  108. $template->text('content', '文字内容')->default($ad_info->content)->help('(文字广告的显示内容)')->setMustMark();
  109. $template->url('url', '文字链接')->default($ad_info->url)->help('(请输入包含http://或https://的完整链接,如:http://www.baidu.com)');
  110. $template->color('text_color', '文字颜色')->default($ad_info->text_color)->setMustMark();
  111. } else {
  112. $template->text('content', '文字内容')->help('(文字广告的显示内容)')->setMustMark();
  113. $template->url('url', '文字链接')->help('(请输入包含http://或https://的完整链接,如:http://www.baidu.com)');
  114. $template->color('text_color', '文字颜色')->setMustMark();
  115. }
  116. $template->setTemplatesId("image_div");
  117. if ($ad_info->type_id == '2') {
  118. $img_file = null;
  119. $img_url = null;
  120. if (preg_match('/^http/', $ad_info->content)) {
  121. $img_url = $ad_info->content;
  122. } else {
  123. $img_file = $ad_info->content;
  124. }
  125. $template->image('img_file', '本地上传')->uniqueName()->help('(允许格式为gif/jpg/bmp/png,文件大小1000KB)')->value($img_file)->setMustMark()->options(['layoutTemplates' => ['actionDelete' => '']]);
  126. $template->text('img_url', '或图片地址')->default($img_url)->help('(请输入包含http://或https://的完整链接,如:http://www.baidu.com/img/baidu_logo.gif)');
  127. $template->url('url', '图片链接')->default($ad_info->url)->help('(请输入包含http://或https://的完整链接,如:http://www.baidu.com)');
  128. $template->text('explain', '图片说明文字')->default($ad_info->explain);
  129. $template->number('uid', '会员UID')->default($ad_info->uid)->min(0)->help('(设置会员UID后,当鼠标移动到图片上将会显示相关的职位和企业信息)');
  130. } else {
  131. $template->image('img_file', '本地上传')->uniqueName()->setWidth(3)->help('(允许格式为gif/jpg/bmp/png,文件大小1000KB)')->setMustMark()->options(['layoutTemplates' => ['actionDelete' => '']]);
  132. $template->text('img_url', '或图片地址')->help('(请输入包含http://或https://的完整链接,如http://www.baidu.com/img/baidu_logo.gif)');
  133. $template->url('url', '图片链接')->help('(请输入包含http://或https://的完整链接,如:http://www.baidu.com)');
  134. $template->text('explain', '图片说明文字');
  135. $template->number('uid', '会员UID')->min(0)->help('(设置会员UID后,当鼠标移动到图片上将会显示相关的职位和企业信息)');
  136. }
  137. $template->setTemplatesId("code_div");
  138. if ($ad_info->type_id == '3') {
  139. $template->textarea('content', '代码')->default($ad_info->content)->rows(1)->help('(请直接输入需要展现的广告代码)')->setMustMark();
  140. } else {
  141. $template->textarea('content', '代码')->rows(1)->help('(请直接输入需要展现的广告代码)')->setMustMark();
  142. }
  143. $template->setTemplatesId("flash_div");
  144. if ($ad_info->type_id == '4') {
  145. $flash_file = null;
  146. $flash_url = null;
  147. if (preg_match('/^images\//', $ad_info->content)) {
  148. $flash_file = $ad_info->content;
  149. } else {
  150. $flash_url = $ad_info->content;
  151. }
  152. $template->image('content', '本地上传')->default($flash_file)->uniqueName()->setWidth(3)->help('(允许格式为:swf,文件大小:1000KB)')->setMustMark()->options(['layoutTemplates' => ['actionDelete' => '']]);
  153. $template->url('url', '或者Flash地址')->default($flash_url)->help('(请输入包含http://或https://的完整链接,如: http://www.baidu.com/123.swf)');
  154. } else {
  155. $template->file('content', '本地上传')->uniqueName()->setWidth(3)->help('(允许格式为:swf,文件大小:1000KB)')->setMustMark()->options(['layoutTemplates' => ['actionDelete' => '']]);
  156. $template->url('url', '或者Flash地址')->help('(请输入包含http://或https://的完整链接,如:http://www.baidu.com/123.swf)');
  157. }
  158. $template->setTemplatesId("vedio_div");
  159. if ($ad_info->type_id == '5') {
  160. $vedio_file = null;
  161. $vedio_url = null;
  162. if (preg_match('/^images\//', $ad_info->content)) {
  163. $vedio_file = $ad_info->content;
  164. } else {
  165. $vedio_url = $ad_info->content;
  166. }
  167. $template->file('content', '本地上传')->default($vedio_file)->uniqueName()->setWidth(3)->help('(允许格式为swf/flv/f4v,文件大小5000KB,大文件FTP上传)')->setMustMark()->options(['layoutTemplates' => ['actionDelete' => '']]);
  168. $template->url('url', '或者视频地址')->default($vedio_url)->help('(请输入包含http://或https://的完整链接,如:http://www.baidu.com/123.swf)');
  169. } else {
  170. $template->file('content', '本地上传')->uniqueName()->setWidth(3)->help('(允许格式为swf/flv/f4v,文件大小5000KB,大文件FTP上传)')->setMustMark()->options(['layoutTemplates' => ['actionDelete' => '']]);
  171. $template->url('url', '或者视频地址')->help('(请输入包含http://或https://的完整链接,如:http://www.baidu.com/123.swf)');
  172. }
  173. $form->disableReset();
  174. $data['custom_form']=$form->render();
  175. $data['temp']=$template->render();
  176. $data['ad_info'] = $ad_info;
  177. return $content
  178. ->header('广告')
  179. ->description(' ')
  180. ->body(view('admin.content.ad_edit')->with($data));
  181. }
  182. public function update(Request $request)
  183. {
  184. $ad=Ad::findOrFail($request->input('id'));
  185. $rules = array(
  186. 'title' => 'required|max:50',
  187. 'is_display' => 'required',
  188. 'category_id' => 'required',
  189. 'list_order' => 'required|max:10',
  190. 'note' => 'max:80'
  191. );
  192. $message = array(
  193. 'title.required' => '广告标题不能为空。',
  194. 'title.max' => '广告标题长度不能超过50。',
  195. 'is_display.required' => '请选择显示状态。',
  196. 'category_id.required' => '请选择广告位。',
  197. 'list_order.required' => '显示顺序不能为空。',
  198. 'list_order.max' => '显示顺序长度不能大于10。',
  199. 'note.max' => '备注长度不能超过80。'
  200. );
  201. if ($request->input('started_at')) {
  202. $rules['started_at'] = 'date';
  203. $message['started_at.date'] = '开始日期格式不正确。';
  204. }
  205. if ($request->input('ended_at')) {
  206. $rules['ended_at'] = 'date|after_or_equal:started_at';
  207. $message['ended_at.date'] = '结束日期格式不正确。';
  208. $message['ended_at.after_or_equal'] = '结束日期不能早于开始日期。';
  209. }
  210. $type_id = $request->input('type_id');
  211. if ($type_id=='1') {
  212. $rules['content'] = 'required';
  213. $rules['text_color'] = 'required';
  214. $message['content.required'] = '文字内容不能为空。';
  215. $message['text_color.required'] = '文字颜色不能为空。';
  216. } else if ($type_id=='2') {
  217. $rules['img_file'] = 'mimes:gif,jpeg,bmp,png|max:1024';
  218. $rules['explain'] = 'max:80';
  219. $rules['uid'] = 'nullable|numeric';
  220. $message['img_file.mimes'] = '本地上传格式不正确。';
  221. $message['img_file.max'] = '本地上传文件大小不能超过1M。';
  222. $message['explain.max'] = '图片说明文字长度不能大于80。';
  223. /*$message['uid.required'] = 'UID不能为空。';*/
  224. $message['uid.numeric'] = 'UID只能填写数字。';
  225. } else if ($type_id=='3') {
  226. $rules['content'] = 'required';
  227. $message['content.required'] = '代码不能为空。';
  228. } else if ($type_id=='4') {
  229. $rules['content'] = 'mimes:swf';
  230. $message['content.mimes'] = '本地上传格式不正确。';
  231. } else if ($type_id=='5') {
  232. $rules['content'] = 'mimes:swf,flv,f4v';
  233. $message['content.mimes'] = '本地上传格式不正确。';
  234. }
  235. $request->validate($rules, $message);
  236. $time = date('Y-m-d H:i:s', time());
  237. $is_display =$request->input('is_display')=='on'?1:0;
  238. $started_at = $request->input('started_at')?strtotime($request->input('started_at')):0;
  239. $ended_at = $request->input('ended_at')?strtotime($request->input('ended_at')):0;
  240. $type_id = $request->input('type_id');
  241. $theme = $request->input('theme')?$request->input('theme'):'default';
  242. $note = $request->input('note')?$request->input('note'):'';
  243. $ad->theme = $theme;
  244. $ad->alias = $request->input('alias');
  245. $ad->is_display = $request->input('is_display')=='on'?1:0;
  246. $ad->category_id = $request->input('category_id');
  247. $ad->type_id = $type_id;
  248. $ad->title = $request->input('title');
  249. $ad->note = $request->input('note')?$request->input('note'):'';
  250. $ad->list_order = $request->input('list_order');
  251. $ad->started_at = $request->input('started_at')?strtotime($request->input('started_at')):0;
  252. $ad->ended_at = $request->input('ended_at')?strtotime($request->input('ended_at')):0;
  253. $ad->updated_at = $time;
  254. if ($type_id=='1') { //文字广告
  255. $ad->content = $request->input('content');
  256. $ad->url = $request->input('url')?$request->input('url'):'';
  257. $ad->text_color = $request->input('text_color')?$request->input('text_color'): '#000000';
  258. $ad->uid = 0;
  259. } else if ($type_id=='2') { //图片广告
  260. $img_file = $request->input('img_file');
  261. $img_url = $request->input('img_url');
  262. $url = $request->input('url')?$request->input('url'):'';
  263. $explain = $request->input('explain');
  264. $uid = $request->input('uid');
  265. $up_file = null;
  266. if ($request->hasFile('img_file')) {
  267. $file = 'img_file';
  268. $up_file=$request->$file->store(config('admin.upload.directory.image'), config('admin.upload.disk'));
  269. }
  270. $content = $up_file?$up_file:$img_url;
  271. if ($content) {
  272. $ad->content = $content;
  273. }
  274. $ad->url = $url;
  275. $ad->text_color = '#000000';
  276. $ad->uid = $uid?$uid:0;
  277. $ad->explain = $explain;
  278. } else if ($type_id=='3') { //代码广告
  279. $content = $request->input('content')?$request->input('content'):0;
  280. if ($content) {
  281. $ad->content = $content;
  282. }
  283. $ad->uid = 0;
  284. $ad->text_color = '#000000';
  285. $ad->url = '';
  286. } else if ($type_id=='4' || $type_id=='5') { //flash广告 、视频广告
  287. $url = $request->input('url')?$request->input('url'):'';
  288. $up_file = null;
  289. if ($request->hasFile('content')) {
  290. $file = 'content';
  291. $up_file=$request->$file->store(config('admin.upload.directory.file'), config('admin.upload.disk'));
  292. }
  293. $content = $up_file?$up_file:$url;
  294. if ($content) {
  295. $ad->content = $content;
  296. }
  297. $ad->url = '';
  298. $ad->uid = 0;
  299. $ad->text_color = '#000000';
  300. }
  301. $set_data = array();
  302. $subsites = $request->input('relate_subsites');
  303. if (empty($subsites)) {
  304. $subsites = [];
  305. }
  306. $subsites = array_merge(array($ad->subsite_id), $subsites);
  307. foreach ($subsites as $k => $v) {
  308. if ($v !== null) {
  309. $set_data[] = array(
  310. 'ad_id' => $ad->id,
  311. 'subsite_id'=> $v
  312. );
  313. }
  314. }
  315. if ($ad->save()) {
  316. if ($set_data) {
  317. SubsiteAd::where('ad_id', $ad->id)->delete();
  318. SubsiteAd::insert($set_data);
  319. }
  320. admin_toastr(trans('admin.save_succeeded'), 'success');
  321. return redirect(admin_base_path().'/content/ad/index');
  322. } else {
  323. throw new \Exception(trans('admin.save_failed'));
  324. }
  325. }
  326. public function updates(Request $request)
  327. {
  328. $rules = array(
  329. 'title' => 'required|max:50',
  330. 'is_display' => 'required',
  331. 'category_id' => 'required',
  332. 'list_order' => 'required|max:10',
  333. 'note' => 'max:80'
  334. );
  335. $message = array(
  336. 'title.required' => '广告标题不能为空。',
  337. 'title.max' => '广告标题长度不能超过50。',
  338. 'is_display.required' => '请选择显示状态。',
  339. 'category_id.required' => '请选择广告位。',
  340. 'list_order.required' => '显示顺序不能为空。',
  341. 'list_order.max' => '显示顺序长度不能大于10。',
  342. 'note.max' => '备注长度不能超过80。'
  343. );
  344. if ($request->input('started_at')) {
  345. $rules['started_at'] = 'date';
  346. $message['started_at.date'] = '开始日期格式不正确。';
  347. }
  348. if ($request->input('ended_at')) {
  349. $rules['ended_at'] = 'date|after_or_equal:started_at';
  350. $message['ended_at.date'] = '结束日期格式不正确。';
  351. $message['ended_at.after_or_equal'] = '结束日期不能早于开始日期。';
  352. }
  353. $type_id = $request->input('type_id');
  354. if ($type_id=='1') {
  355. $rules['content'] = 'required';
  356. $rules['text_color'] = 'required';
  357. $message['content.required'] = '文字内容不能为空。';
  358. $message['text_color.required'] = '文字颜色不能为空。';
  359. } else if ($type_id=='2') {
  360. $rules['img_file'] = 'required_without:img_url|mimes:gif,jpeg,bmp,png';
  361. $rules['img_url'] = 'required_without:img_file';
  362. $rules['explain'] = 'max:80';
  363. $rules['uid'] = 'required|numeric';
  364. $message['img_file.required_without'] = '本地上传或者图片地址填写一项。';
  365. $message['img_file.mimes'] = '本地上传格式不正确。';
  366. $message['img_url.required_without'] = '本地上传或者图片地址填写一项。';
  367. $message['explain.max'] = '图片说明文字长度不能大于80。';
  368. $message['uid.required'] = 'UID不能为空。';
  369. $message['uid.numeric'] = 'UID只能填写数字。';
  370. } else if ($type_id=='3') {
  371. $rules['content'] = 'required';
  372. $message['content.required'] = '代码不能为空。';
  373. } else if ($type_id=='4') {
  374. $rules['content'] = 'required_without:url|mimes:swf';
  375. $rules['url'] = 'required_without:content';
  376. $message['content.required_without'] = '本地上传或者Flash地址填写一项。';
  377. $message['content.mimes'] = '本地上传格式不正确。';
  378. $message['url.required_without'] = '本地上传或者Flash地址填写一项。';
  379. } else if ($type_id=='5') {
  380. $rules['content'] = 'required_without:url|mimes:swf,flv,f4v';
  381. $rules['url'] = 'required_without:content';
  382. $message['content.required_without'] = '本地上传或者填写视频地址填写一项。';
  383. $message['content.mimes'] = '本地上传格式不正确。';
  384. $message['url.required_without'] = '本地上传或者填写视频地址填写一项。';
  385. }
  386. $request->validate($rules, $message);
  387. $is_display =$request->input('is_display')=='on'?1:0;
  388. $time = date('Y-m-d H:i:s', time());
  389. $started_at = $request->input('started_at')?strtotime($request->input('started_at')):0;
  390. $ended_at = $request->input('ended_at')?strtotime($request->input('ended_at')):0;
  391. $type_id = $request->input('type_id');
  392. $theme = $request->input('theme')?$request->input('theme'):'default';
  393. $note = $request->input('note')?$request->input('note'):'';
  394. $form_data = array(
  395. 'theme' => $theme,
  396. 'alias' => $request->input('alias'),
  397. 'is_display' => $is_display,
  398. 'category_id' => $request->input('category_id'),
  399. 'type_id' => $type_id,
  400. 'title' => $request->input('title'),
  401. 'note' => $note,
  402. 'list_order' => $request->input('list_order'),
  403. 'started_at' => $started_at,
  404. 'ended_at' => $ended_at,
  405. 'updated_at' => $time
  406. );
  407. if ($type_id=='1') {
  408. //文字广告
  409. $form_data['content'] = $request->input('content');
  410. $form_data['url'] = $request->input('url');
  411. $form_data['text_color'] = $request->input('text_color')?$request->input('text_color'): '#000000';
  412. $form_data['uid'] = 0;
  413. } else if ($type_id=='2') {
  414. //图片广告
  415. $img_file = $request->input('img_file');
  416. $img_url = $request->input('img_url');
  417. $url = $request->input('url');
  418. $explain = $request->input('explain');
  419. $uid = $request->input('uid');
  420. $up_file = null;
  421. if ($request->hasFile('img_file')) {
  422. $file = 'img_file';
  423. $up_file=$request->$file->store(config('admin.upload.directory.image'), config('admin.upload.disk'));
  424. }
  425. $content = $up_file?$up_file:$img_url;
  426. $form_data['content'] = $content;
  427. $form_data['url'] = $url;
  428. $form_data['text_color'] = '#000000';
  429. $form_data['uid'] = $uid;
  430. $form_data['explain'] = $explain;
  431. } else if ($type_id=='3') {
  432. //代码广告
  433. $content = $request->input('content')?$request->input('content'):0;
  434. $form_data['content'] = $content;
  435. $form_data['uid'] = 0;
  436. $form_data['text_color'] = '#000000';
  437. $form_data['url'] = '';
  438. } else if ($type_id=='4' || $type_id=='5') {
  439. //flash广告 、视频广告
  440. $url = $request->input('url')?$request->input('url'):'';
  441. $up_file = null;
  442. if ($request->hasFile('content')) {
  443. $file = 'content';
  444. $up_file=$request->$file->store(config('admin.upload.directory.file'), config('admin.upload.disk'));
  445. }
  446. $content = $up_file?$up_file:$url;
  447. $form_data['content'] = $content;
  448. $form_data['url'] = '';
  449. $form_data['uid'] = 0;
  450. $form_data['text_color'] = '#000000';
  451. }
  452. if (Ad::where(array('id'=>$request->input('id')))->update($form_data)) {
  453. admin_toastr(trans('admin.save_succeeded'), 'success');
  454. return redirect(admin_base_path().'/content/ad/index');
  455. } else {
  456. throw new \Exception(trans('admin.save_failed'));
  457. }
  458. }
  459. /**
  460. * Create interface.
  461. *
  462. * @param Content $content
  463. * @return Content
  464. */
  465. public function create(Content $content)
  466. {
  467. $form= new ValueForm();
  468. $form->action(route('ad.index'));
  469. $form->text('title', '广告标题')->help('(区分不同广告条目,并不在广告中显示)')->setWidth(4)->setMustMark();
  470. $display_option = [
  471. 'on' => ['value' => 1, 'text' => '是', 'color' => 'success'],
  472. 'off' => ['value' => 0, 'text' => '否', 'color' => 'danger'],
  473. ];
  474. $form->switch('is_display', '显示状态')->states($display_option)->default('1')->setMustMark();
  475. if (get_subsite_id()==0) {
  476. $subsites = Subsite::where(array('effective'=>1))->orderBy('order', 'asc')->get()->pluck('sitename', 'id');
  477. } else {
  478. $subsites = Subsite::where(array(array('effective','=',1),array('id','<>', get_subsite_id())))->orderBy('order', 'asc')->get()->pluck('sitename', 'id')->toArray();
  479. $subsites['0']= '总站';
  480. $subsites = collect($subsites);
  481. }
  482. if ($subsites->isNotEmpty() && get_subsite_id()==0) {
  483. $form->multipleSelect('relate_subsites', '同步分站')->options($subsites);
  484. } else {
  485. $form->hidden('relate_subsites');
  486. }
  487. $form->ignore(['relate_subsites']);
  488. $form->hidden('subsite_id')->value(get_subsite_id());
  489. $cate_option = AdCategory::all()->pluck('category_name', 'id');
  490. $form->select('category_id', '广告位')->options($cate_option)
  491. ->rules('required', array('required'=>'请选择广告位。'))
  492. ->setWidth(4)->attribute(['id' => 'sub_category'])->setMustMark();
  493. $form->number('list_order', '显示顺序')->min(0)->default(0)->help('(数字越大越靠前)')->setMustMark();
  494. $form->date('started_at', '开始日期')
  495. ->format('YYYY-MM-DD')
  496. ->rules('required|date', array('required'=>'开始日期不能为空。', 'date'=>'开始日期格式不正确。'))
  497. ->help('(设置广告起始日期,格式yyyy-mm-dd,留空为不限制起始日期)');
  498. $form->date('ended_at', '结束日期')
  499. ->format('YYYY-MM-DD')
  500. ->rules('required|date', array('required'=>'结束日期不能为空。', 'date'=>'结束日期格式不正确。'))
  501. ->help('(设置广告结束日期,格式yyyy-mm-dd,留空为不限制结束日期)');
  502. $form->textarea('note', '备注');
  503. $form->html("<div id='change_field'></div>")->plain();
  504. $form->hidden('alias')->attribute('id', 'alias');
  505. $form->hidden('theme')->value('default');
  506. $form->hidden('type_id')->attribute('id', 'type_id');
  507. $template=new Template();
  508. $template->setTemplatesId("text_div");
  509. $template->text('content', '文字内容')->help('(文字广告的显示内容)')->setMustMark();
  510. $template->url('url', '文字链接')->help('(请输入包含http://或https://的完整链接,如:http://www.baidu.com)');
  511. $template->color('text_color', '文字颜色')->default('#000000')->setMustMark();
  512. $template->setTemplatesId("image_div");
  513. $template->image('img_file', '本地上传')->uniqueName()->setWidth(3)->help('(允许格式为gif/jpg/bmp/png,文件大小1000KB)')->setMustMark();
  514. $template->text('img_url', '或图片地址')->help('(如/images/logo.gif 或 http://www.baidu.com/img/baidu_logo.gif)');
  515. $template->url('url', '图片链接')->help('(请输入包含http://或https://的完整链接,如:http://www.baidu.com)');
  516. $template->text('explain', '图片说明文字');
  517. $template->number('uid', '会员UID')->min(0)->default(0)
  518. ->help('(设置会员UID后,当鼠标移动到图片上将会显示相关的职位和企业信息)')
  519. ->attribute(array('maxlength'=>'10','onkeyup'=>'if(event.keyCode !=37 && event.keyCode != 39) value=value.replace(/\D/g,\'\');','onbeforepaste'=>"clipboardData.setData('text',clipboardData.getData('text').replace(/\D/g,''))"));
  520. $template->setTemplatesId("code_div");
  521. $template->textarea('content', '代码')->rows(1)->help('(请直接输入需要展现的广告代码)')->setMustMark();
  522. $template->setTemplatesId("flash_div");
  523. $template->image('content', '本地上传')->uniqueName()->setWidth(3)->help('(允许格式为:swf,文件大小:1000KB)')->setMustMark();
  524. $template->url('url', '或者Flash地址')->help('(请输入包含http://或https://的完整链接,如:http://www.baidu.com/123.swf)');
  525. $template->setTemplatesId("vedio_div");
  526. $template->image('content', '本地上传')->uniqueName()->setWidth(3)->help('(允许格式为swf/flv/f4v,文件大小5000KB,大文件FTP上传)')->setMustMark();
  527. $template->url('url', '或者视频地址')->help('(请输入包含http://或https://的完整链接,如:http://www.baidu.com/123.swf)');
  528. $form->disableReset();
  529. $data['custom_form']=$form->render();
  530. $data['temp']=$template->render();
  531. return $content
  532. ->header('广告')
  533. ->description(' ')
  534. ->body(view('admin.content.ad')->with($data));
  535. }
  536. public function changeCategory(Request $request)
  537. {
  538. $cate_option = AdCategory::all()->toArray();
  539. return response()->json(array('data'=>$cate_option,'status'=>'1'));
  540. }
  541. public function store(Request $request)
  542. {
  543. $rules = array(
  544. 'title' => 'required|max:50',
  545. 'is_display' => 'required',
  546. 'category_id' => 'required',
  547. 'list_order' => 'required|max:10',
  548. 'note' => 'max:80'
  549. );
  550. $message = array(
  551. 'title.required' => '广告标题不能为空。',
  552. 'title.max' => '广告标题长度不能超过50。',
  553. 'is_display.required' => '请选择显示状态。',
  554. 'category_id.required' => '请选择广告位。',
  555. 'list_order.required' => '显示顺序不能为空。',
  556. 'list_order.max' => '显示顺序长度不能大于10。',
  557. 'note.max' => '备注长度不能超过80。'
  558. );
  559. if ($request->input('started_at')) {
  560. $rules['started_at'] = 'date';
  561. $message['started_at.date'] = '开始日期格式不正确。';
  562. }
  563. if ($request->input('ended_at')) {
  564. $rules['ended_at'] = 'date|after_or_equal:started_at';
  565. $message['ended_at.date'] = '结束日期格式不正确。';
  566. $message['ended_at.after_or_equal'] = '结束日期不能早于开始日期。';
  567. }
  568. $type_id = $request->input('type_id');
  569. if ($type_id=='1') {
  570. $rules['content'] = 'required';
  571. $rules['text_color'] = 'required';
  572. $message['content.required'] = '文字内容不能为空。';
  573. $message['text_color.required'] = '文字颜色不能为空。';
  574. } else if ($type_id=='2') {
  575. $rules['img_file'] = 'required_without:img_url|mimes:gif,jpeg,bmp,png|max:1024';
  576. $rules['img_url'] = 'required_without:img_file';
  577. $rules['explain'] = 'max:80';
  578. $rules['uid'] = 'nullable|numeric';
  579. $message['img_file.required_without'] = '本地上传或者图片地址填写一项。';
  580. $message['img_file.mimes'] = '本地上传格式不正确。';
  581. $message['img_file.max'] = '本地上传文件大小不能超过1M。';
  582. $message['img_url.required_without'] = '本地上传或者图片地址填写一项。';
  583. $message['explain.max'] = '图片说明文字长度不能大于80。';
  584. //$message['uid.required'] = 'UID不能为空。';
  585. $message['uid.numeric'] = 'UID只能填写数字。';
  586. } else if ($type_id=='3') {
  587. $rules['content'] = 'required';
  588. $message['content.required'] = '代码不能为空。';
  589. } else if ($type_id=='4') {
  590. $rules['content'] = 'required_without:url|mimes:swf';
  591. $rules['url'] = 'required_without:content';
  592. $message['content.required_without'] = '本地上传或者Flash地址填写一项。';
  593. $message['content.mimes'] = '本地上传格式不正确。';
  594. $message['url.required_without'] = '本地上传或者Flash地址填写一项。';
  595. } else if ($type_id=='5') {
  596. $rules['content'] = 'required_without:url|mimes:swf,flv,f4v';
  597. $rules['url'] = 'required_without:content';
  598. $message['content.required_without'] = '本地上传或者填写视频地址填写一项。';
  599. $message['content.mimes'] = '本地上传格式不正确。';
  600. $message['url.required_without'] = '本地上传或者填写视频地址填写一项。';
  601. }
  602. $request->validate($rules, $message);
  603. $is_display = $request->input('is_display')=='on'?1:0;
  604. $time = date('Y-m-d H:i:s', time());
  605. $started_at = $request->input('started_at')?strtotime($request->input('started_at')):0;
  606. $ended_at = $request->input('ended_at')?strtotime($request->input('ended_at')):0;
  607. $subsite_id = $request->input('subsite_id');
  608. $theme = $request->input('theme')?$request->input('theme'):'default';
  609. $note = $request->input('note')?$request->input('note'):'';
  610. $form_data = array(
  611. 'theme' => $theme,
  612. 'alias' => $request->input('alias'),
  613. 'is_display' => $is_display,
  614. 'category_id' => $request->input('category_id'),
  615. 'type_id' => $type_id,
  616. 'title' => $request->input('title'),
  617. 'note' => $note,
  618. 'list_order' => $request->input('list_order'),
  619. 'started_at' => $started_at,
  620. 'ended_at' => $ended_at,
  621. 'subsite_id' => $subsite_id,
  622. 'created_at' => $time,
  623. 'updated_at' => $time
  624. );
  625. if ($type_id=='1') {
  626. //文字广告
  627. $form_data['content'] = $request->input('content');
  628. $form_data['url'] = $request->input('url')?$request->input('url'):'';
  629. $form_data['text_color'] = $request->input('text_color')?$request->input('text_color'): '#000000';
  630. $form_data['uid'] = 0;
  631. } else if ($type_id=='2') {
  632. //图片广告
  633. $img_file = $request->input('img_file');
  634. $img_url = $request->input('img_url');
  635. $url = $request->input('url')?$request->input('url'):'';
  636. $explain = $request->input('explain');
  637. $uid = $request->input('uid', 0);
  638. $up_file = null;
  639. if ($request->hasFile('img_file')) {
  640. $file = 'img_file';
  641. $up_file=$request->$file->store(config('admin.upload.directory.image'), config('admin.upload.disk'));
  642. }
  643. $content = $up_file?$up_file:$img_url;
  644. $form_data['content'] = $content;
  645. $form_data['url'] = $url;
  646. $form_data['text_color'] = '#000000';
  647. $form_data['uid'] = $uid?$uid:0;
  648. $form_data['explain'] = $explain;
  649. } else if ($type_id=='3') {
  650. //代码广告
  651. $content = $request->input('content')?$request->input('content'):0;
  652. $form_data['content'] = $content;
  653. $form_data['uid'] = 0;
  654. $form_data['text_color'] = '#000000';
  655. $form_data['url'] = '';
  656. } else if ($type_id=='4' || $type_id=='5') {
  657. //flash广告 、视频广告
  658. $url = $request->input('url')?$request->input('url'):'';
  659. $up_file = null;
  660. if ($request->hasFile('content')) {
  661. $file = 'content';
  662. $up_file=$request->$file->store(config('admin.upload.directory.file'), config('admin.upload.disk'));
  663. }
  664. $content = $up_file?$up_file:$url;
  665. $form_data['content'] = $content;
  666. $form_data['url'] = '';
  667. $form_data['uid'] = 0;
  668. $form_data['text_color'] = '#000000';
  669. }
  670. $subsites = $request->input('relate_subsites');
  671. if(empty($subsites)){
  672. $subsites = [];
  673. }
  674. if ($ad = Ad::create($form_data)) {
  675. $set_data = array();
  676. $set_data[] = array(
  677. 'ad_id' => $ad->id,
  678. 'subsite_id' => get_subsite_id()
  679. );
  680. if ($subsites) {
  681. foreach ($subsites as $k => $v) {
  682. if ($v) {
  683. $set_data[] = array(
  684. 'ad_id' => $ad->id,
  685. 'subsite_id' => $v
  686. );
  687. }
  688. }
  689. }
  690. if ($set_data) {
  691. SubsiteAd::insert($set_data);
  692. }
  693. admin_toastr(trans('admin.save_succeeded'), 'success');
  694. return redirect(admin_base_path().'/content/ad/index');
  695. } else {
  696. throw new \Exception(trans('admin.save_failed'));
  697. }
  698. }
  699. /**
  700. * Make a grid builder.
  701. *
  702. * @return Grid
  703. */
  704. protected function grid()
  705. {
  706. $grid = new Grid(new Ad);
  707. $grid->model()->when(get_subsite_id()>0, function ($query) {
  708. $query->where('subsite_id', get_subsite_id());
  709. })->orderBy('list_order', 'DESC')->orderBy('created_at', 'DESC');
  710. $grid->title('广告标题')->display(function () {
  711. $logo_html = '';
  712. if ($this->type_id == '2') {
  713. //判断图片中是否包含http
  714. if (preg_match('/^http/', $this->content)) {
  715. $logo_html = '<span class="vtip" title="<img src=\''.$this->content.'\' height=120>">
  716. <img class="avatar small" src="'.$this->content.'" align="absmiddle" style="width: 22px;height: 22px;">
  717. </span>';
  718. } else {
  719. $logo_html = '<span class="vtip" title="<img src=\''.upload_asset($this->content).'\' height=120>">
  720. <img class="avatar small" src="'.upload_asset($this->content).'" align="absmiddle" style="width: 22px;height: 22px;">
  721. </span>';
  722. }
  723. }
  724. return $logo_html.$this->title;
  725. })->width(250);
  726. $grid->show_category()->category_name('所属广告位')->width(200);
  727. $grid->type_id('广告类型')->display(function () {
  728. if ($this->type_id == '1') {
  729. return '文字';
  730. } else if ($this->type_id == '2') {
  731. return '图片';
  732. } else if ($this->type_id == '3') {
  733. return '代码';
  734. } else if ($this->type_id == '4') {
  735. return 'Flash';
  736. } else if ($this->type_id == '5') {
  737. return '视频';
  738. }
  739. });
  740. if(get_subsite_open()){
  741. $grid->subsite_id('所属分站')->display(function () {
  742. $subsites = Cache::get('subsites_list');
  743. if (array_has($subsites, $this->subsite_id)) {
  744. return $subsites[$this->subsite_id]['sitename'];
  745. }
  746. return '';
  747. });
  748. }
  749. $grid->started_at('开始日期')->display(function () {
  750. if (!$this->started_at) {
  751. return date('Y-m-d', strtotime($this->created_at));
  752. } else {
  753. return $this->started_at;
  754. }
  755. });
  756. $grid->ended_at('到期日期')->display(function () {
  757. if ($this->ended_at>0 && strtotime($this->ended_at) <= strtotime(date('Y-m-d'))) {
  758. return '<span style="color:#FF6600">已经到期</span>';
  759. } else {
  760. return $this->ended_at?$this->ended_at:'无限制';
  761. }
  762. });
  763. $grid->is_display('状态')->display(function () {
  764. return $this->is_display?'正常':'暂停';
  765. });
  766. $grid->list_order('排序');
  767. //新增按钮
  768. if (Admin::user()->can('content_ad_list_create')) {
  769. $grid->disableCreateButton(false);
  770. }
  771. //批量删除
  772. if (Admin::user()->can('content_ad_list_delete')) {
  773. $grid->tools(function ($tools) {
  774. $tools->batch(function ($batch) {
  775. $batch->disableDelete(false);
  776. });
  777. });
  778. } else {
  779. $grid->disableRowSelector();
  780. }
  781. $grid->actions(function ($actions) {
  782. if (Admin::user()->can('content_ad_list_edit')) {
  783. if ($actions->row['subsite_id']== get_subsite_id() || get_subsite_id()==0) {
  784. $actions->disableEdit(false);
  785. }
  786. }
  787. if (Admin::user()->can('content_ad_list_delete')) {
  788. if ($actions->row['subsite_id']== get_subsite_id() || get_subsite_id()==0) {
  789. $actions->disableDelete(false);
  790. }
  791. }
  792. });
  793. $grid->filter(function (Filter $filter) {
  794. $filter->disableIdFilter();
  795. $filter->column(2/3, function ($filter) {
  796. $display_option = array(''=>'不限','1'=>'正常','0'=>'暂停');
  797. $filter->equal('is_display', '显示状态')->radio($display_option);
  798. $date1 = strtotime(date('Y-m-d', strtotime("+1 day")-1))-1;
  799. $date3 = strtotime(date('Y-m-d', strtotime("+4 day")-1))-1;
  800. $date7 = strtotime(date('Y-m-d', strtotime("+8 day")-1))-1;
  801. $date_option = array(
  802. '' => '不限',
  803. $date1 => '已经到期',
  804. $date3 => '三天内',
  805. $date7 => '一周内'
  806. );
  807. $filter->where(function ($query) {
  808. $ended_at = "{$this->input}";
  809. $start = strtotime(date('Y-m-d', strtotime("+1 day")-1))-1;
  810. $start_time = 0;
  811. if ($ended_at > $start) {
  812. $start_time = strtotime(date('Y-m-d', time()))-1;
  813. }
  814. $query->whereRaw('ended_at > '.$start_time.' and ended_at < '."{$this->input}");
  815. }, '到期时间', 'ended_at')->radio($date_option);
  816. $subsites = Subsite::where(array('effective'=>1))->orderBy('order', 'asc')->get()->pluck('sitename', 'id')->toArray();
  817. if ($subsites) {
  818. $subsites = array('' => '不限', '0' => '总站') + $subsites;
  819. $filter->equal('subsite_id', '所属分站')->select($subsites);
  820. }
  821. $cates = AdCategory::get(['id', 'category_name'])->toArray();
  822. $pre_arr = array('id'=>'','category_name'=>'不限');
  823. array_unshift($cates, $pre_arr);
  824. $cates = collect($cates)->pluck('category_name', 'id');
  825. $filter->equal('category_id', '广告位')->select($cates);
  826. $filter->like('title', '广告标题');
  827. });
  828. });
  829. return $grid;
  830. }
  831. public function getCategory(Request $request)
  832. {
  833. $subsite_id = $request->input('q');
  834. $where = array();
  835. if ($subsite_id === null) {
  836. $where = array();
  837. } else {
  838. $where = array('subsite_id'=>$subsite_id);
  839. }
  840. $cates = AdCategory::where($where)->get(['id', 'category_name'])->toArray();
  841. $pre_arr = array('id'=>'','category_name'=>'不限');
  842. array_unshift($cates, $pre_arr);
  843. return collect($cates);
  844. }
  845. /**
  846. * Make a show builder.
  847. *
  848. * @param mixed $id
  849. * @return Show
  850. */
  851. protected function detail($id)
  852. {
  853. $show = new Show(Ad::findOrFail($id));
  854. $ad_info = Ad::findOrFail($id);
  855. $show->id('ID');
  856. $show->title('广告标题');
  857. $show->is_display('显示状态')->as(function ($is_display) {
  858. return $is_display?'正常':'暂停';
  859. });
  860. if(get_subsite_open()){
  861. $show->subsite_id('所属分站')->as(function ($subsite_id) {
  862. if ($subsite_id) {
  863. $Subsite = Subsite::findOrFail($subsite_id);
  864. return $Subsite->sitename;
  865. }
  866. return '总站';
  867. });
  868. }
  869. $show->category_id('广告位')->as(function ($category_id) {
  870. $cate_info = AdCategory::where(array('id'=>$category_id))->first();
  871. if ($cate_info) {
  872. return $cate_info->category_name;
  873. } else {
  874. return '&nbsp';
  875. }
  876. });
  877. $show->list_order('显示顺序');
  878. $show->started_at('开始日期')->as(function ($started_at) {
  879. return $started_at?$started_at:'无限制';
  880. });
  881. $show->ended_at('结束日期')->as(function ($ended_at) {
  882. return $ended_at?$ended_at:'无限制';
  883. });
  884. $show->note('备注')->as(function ($note) {
  885. return $note?$note:'&nbsp';
  886. })->setEscape(false);
  887. if ($ad_info->type_id=='1') {
  888. $show->content('文字内容');
  889. $show->url('文字链接')->as(function ($url) {
  890. return $url?$url:'&nbsp';
  891. })->setEscape(false);
  892. $show->text_color('文字颜色')->as(function ($text_color) {
  893. $html = '<i style="background-color: '.$text_color.';padding: 5px 15px;"></i>';
  894. return $html;
  895. })->setEscape(false);
  896. } else if ($ad_info->type_id=='2') {
  897. $show->content('图片')->image();
  898. $show->url('图片链接')->as(function ($url) {
  899. return $url?$url:'&nbsp';
  900. })->setEscape(false);
  901. $show->explain('图片说明文字')->as(function ($explain) {
  902. return $explain?$explain:'&nbsp';
  903. })->setEscape(false);
  904. $show->uid('会员UID');
  905. } else if ($ad_info->type_id=='3') {
  906. $show->content('代码');
  907. } else if ($ad_info->type_id=='4') {
  908. $show->content('Flash地址')->image();
  909. } else if ($ad_info->type_id=='5') {
  910. $show->content('视频地址')->image();
  911. }
  912. $show->created_at('添加时间');
  913. $show->updated_at('更新时间');
  914. return $show;
  915. }
  916. /**
  917. * Make a form builder.
  918. *
  919. * @return Form
  920. */
  921. protected function form()
  922. {
  923. $form = new Form(new Ad);
  924. $form->text('title', '广告标题')->help('(区分不同广告条目,并不在广告中显示)');
  925. $display_option = [
  926. 'on' => ['value' => 1, 'text' => '是', 'color' => 'success'],
  927. 'off' => ['value' => 0, 'text' => '否', 'color' => 'danger'],
  928. ];
  929. $form->switch('is_display', '显示状态')->states($display_option)->default('1');
  930. $subsites = array_merge(array('0'=>'总站'), array( '1' => '定海', '2' => '普陀'));
  931. $form->checkbox('subsite_id', '所属分站')->options($subsites)->default('0');
  932. $cate_option = AdCategory::all()->pluck('category_name', 'id');
  933. $form->select('category_id', '广告位')->options($cate_option)->setWidth(3);
  934. $form->number('list_order', '显示顺序')->help('(数字越大越靠前)');
  935. $form->date('started_at', '开始日期')
  936. ->format('YYYY-MM-DD')
  937. ->rules('required|date', array('required'=>'开始日期不能为空。', 'date'=>'开始日期格式不正确。'))
  938. ->help('(设置广告起始日期,格式yyyy-mm-dd,留空为不限制起始日期)');
  939. $form->date('ended_at', '结束日期')
  940. ->format('YYYY-MM-DD')
  941. ->rules('required|date', array('required'=>'结束日期不能为空。', 'date'=>'结束日期格式不正确。'))
  942. ->help('(设置广告结束日期,格式yyyy-mm-dd,留空为不限制结束日期)');
  943. $form->textarea('note', '备注');
  944. return $form;
  945. }
  946. public function destroy($id)
  947. {
  948. $ids = array();
  949. if ($id) {
  950. $ids = explode(',', $id);
  951. }
  952. if (get_subsite_id() == 0) {
  953. $filter_id = $id;
  954. } else {
  955. $seletctors = Ad::where(array('subsite_id'=>get_subsite_id()))->whereIn('id', $ids)->get()->pluck('id')->toarray();
  956. if ($seletctors) {
  957. $filter_id = implode(',', $seletctors);
  958. } else {
  959. $filter_id = '';
  960. }
  961. }
  962. if ($filter_id) {
  963. if ($this->form()->destroy($filter_id)) {
  964. $data = [
  965. 'status' => true,
  966. 'message' => trans('admin.delete_succeeded'),
  967. ];
  968. } else {
  969. $data = [
  970. 'status' => false,
  971. 'message' => trans('admin.delete_failed'),
  972. ];
  973. }
  974. } else {
  975. $data = [
  976. 'status' => false,
  977. 'message' => '不能删除其它分站数据!',
  978. ];
  979. }
  980. return response()->json($data);
  981. }
  982. }