AdvertiseController.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <?php
  2. /**
  3. * 页面管理
  4. * @copyright 2021-浙江引擎力营销策划有限公司
  5. * @author Lc<sunshinecc1@163.com>
  6. * @since 2021-08-01
  7. */
  8. namespace App\Http\Controllers\Admin\Stencil;
  9. use App\Http\Controllers\Controller;
  10. use App\Http\Services\TemplateLibraryApiService;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Support\Facades\DB;
  13. use Illuminate\Contracts\View\Factory;
  14. use Illuminate\View\View;
  15. use Illuminate\Http\JsonResponse;
  16. class AdvertiseController extends Controller
  17. {
  18. private $templateLibraryApiService;
  19. /**
  20. * 模版站服务类
  21. * TplController constructor.
  22. * @param TemplateLibraryApiService $templateLibraryApiService
  23. */
  24. public function __construct(TemplateLibraryApiService $templateLibraryApiService)
  25. {
  26. $this->templateLibraryApiService = $templateLibraryApiService;
  27. }
  28. /**
  29. * 广告设置
  30. * @param Request $request
  31. * @param $siteId
  32. * @return Factory|View
  33. */
  34. public function index(Request $request, $siteId)
  35. {
  36. $connection = DB::connection($this->templateLibraryApiService->connection($siteId));
  37. if (!$request->ajax()) {
  38. return view('admin.stencil.advertise', [
  39. 'siteId' => $siteId,
  40. ]);
  41. }
  42. $advertList = $connection->table('advert')->paginate(10);
  43. foreach ($advertList as $value) {
  44. $value->size = $value->width . '*' . $value->height;
  45. $value->date = date('Y-m-d H:i:s', $value->create_time);
  46. }
  47. return response()->json([
  48. 'rows' => $advertList->items(),
  49. 'total' => $advertList->total(),
  50. ]);
  51. }
  52. /**
  53. * 编辑
  54. * @param Request $request
  55. * @param $id
  56. * @param $siteId
  57. * @return Factory|JsonResponse|View
  58. */
  59. public function advertiseEdit(Request $request, $id, $siteId)
  60. {
  61. $connection = DB::connection($this->templateLibraryApiService->connection($siteId));
  62. if (!$request->ajax()) {
  63. $info = $connection->table('advert')->where('id', $id)->first() ?? [];
  64. if (!empty($info)) {
  65. $info->advertise_name = $info->name ?? '';
  66. $info->advertise_code = $info->code ?? '';
  67. }
  68. return view('admin.stencil.advertise_edit', [
  69. 'siteId' => $siteId,
  70. 'info' => $info,
  71. ]);
  72. }
  73. $request = $request->all();
  74. $update = [
  75. 'code' => $request['advertise_code'] ?? '',
  76. 'name' => $request['advertise_name'] ?? '',
  77. 'width' => $request['width'] ?? 0,
  78. 'height' => $request['height'] ?? 0,
  79. 'limit' => $request['limit'] ?? 0,
  80. 'site_id' => 0,
  81. 'create_time' => time(),
  82. ];
  83. if (empty($id)) {
  84. $connection->table('advert')->insert($update);
  85. } else {
  86. $connection->table('advert')->where('id', $id)->update($update);
  87. }
  88. return response()->json(['message' => '操作成功']);
  89. }
  90. /**
  91. * 广告设置
  92. * @param Request $request
  93. * @param $id
  94. * @param $siteId
  95. * @return Factory|JsonResponse|View
  96. */
  97. public function setting(Request $request, $id, $siteId)
  98. {
  99. $connection = DB::connection($this->templateLibraryApiService->connection($siteId));
  100. if (!$request->ajax()) {
  101. return view('admin.stencil.advertise_setting', [
  102. 'siteId' => $siteId,
  103. 'advertId' => $id,
  104. ]);
  105. }
  106. $advertList = $connection->table('advert')->pluck('name', 'id');
  107. $advertElementList = $connection->table('advert_element')->where('advert_id', $id)->paginate(10);
  108. foreach ($advertElementList as $value) {
  109. $value->status = '启用';
  110. if ($value->is_enabled == 1) {
  111. $value->status = '禁用';
  112. }
  113. $value->startDate = '';
  114. if (!empty($value->start_time)) {
  115. $value->startDate = date('Y-m-d H:i:s', $value->start_time);
  116. }
  117. $value->endDate = '';
  118. if (!empty($value->end_time)) {
  119. $value->endDate = date('Y-m-d H:i:s', $value->end_time);
  120. }
  121. $value->pushDate = $value->startDate . ' - ' . $value->endDate;
  122. $value->advert = $advertList[$value->advert_id] ?? '';
  123. }
  124. return response()->json([
  125. 'rows' => $advertElementList->items(),
  126. 'total' => $advertElementList->total(),
  127. ]);
  128. }
  129. /**
  130. * 广告设置编辑
  131. * @param Request $request
  132. * @param $id
  133. * @param $siteId
  134. * @param $advertId
  135. * @return Factory|View
  136. */
  137. public function settingEdit(Request $request, $id, $siteId, $advertId)
  138. {
  139. $connection = DB::connection($this->templateLibraryApiService->connection($siteId));
  140. if (!$request->ajax()) {
  141. $advertList = $connection->table('advert')->get();
  142. $info = $connection->table('advert_element')->where('id', $id)->first() ?? [];
  143. if (!empty($info)) {
  144. $info->start_time = date('Y-m-d H:i:s', $info->start_time);
  145. $info->end_time = date('Y-m-d H:i:s', $info->end_time);
  146. }
  147. return view('admin.stencil.setting_edit', [
  148. 'advertList' => $advertList,
  149. 'advertId' => $advertId,
  150. 'siteId' => $siteId,
  151. 'info' => $info,
  152. 'id' => $id,
  153. ]);
  154. }
  155. $request = $request->all();
  156. $data = [
  157. 'theme' => $request['theme'] ?? 0,
  158. 'advert_id' => $request['advert_id'] ?? 0,
  159. 'type' => $request['type'] ?? 'none',
  160. 'description' => $request['description'] ?? '',
  161. 'start_time' => strtotime($request['start_time'] ?? date('Y-m-d H:i:s')),
  162. 'end_time' => strtotime($request['end_time'] ?? date('Y-m-d H:i:s')),
  163. 'is_enabled' => $request['is_enabled'] ?? 0,
  164. 'html' => '',
  165. ];
  166. if ($request['type'] == 'text') {
  167. $data['description'] = $request['text_description'] ?? '';
  168. $data['link'] = $request['text_link'] ?? '';
  169. }
  170. if ($request['type'] == 'image') {
  171. $data['source'] = $request['source'] ?? '';
  172. $data['description'] = $request['description'] ?? '';
  173. $data['description_two'] = $request['description_two'] ?? '';
  174. $data['description_three'] = $request['description_three'] ?? '';
  175. $data['link'] = $request['link'] ?? '';
  176. $data['button'] = $request['button'] ?? '';
  177. $data['button_link'] = $request['button_link'] ?? '';
  178. $data['button_two'] = $request['button_two'] ?? '';
  179. $data['button_two_link'] = $request['button_two_link'] ?? '';
  180. }
  181. if ($request['type'] == 'html') {
  182. $data['html'] = $request['html'] ?? '';
  183. }
  184. if (empty($id)) {
  185. $connection->table('advert_element')->insert($data);
  186. } else {
  187. $connection->table('advert_element')->where('id', $id)->update($data);
  188. }
  189. return response()->json(['message' => '操作成功']);
  190. }
  191. }