123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- <?php
- /**
- * 页面管理
- * @copyright 2021-浙江引擎力营销策划有限公司
- * @author Lc<sunshinecc1@163.com>
- * @since 2021-08-01
- */
- namespace App\Http\Controllers\Admin\Stencil;
- use App\Http\Controllers\Controller;
- use App\Http\Services\TemplateLibraryApiService;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Contracts\View\Factory;
- use Illuminate\View\View;
- use Illuminate\Http\JsonResponse;
- class AdvertiseController extends Controller
- {
- private $templateLibraryApiService;
- /**
- * 模版站服务类
- * TplController constructor.
- * @param TemplateLibraryApiService $templateLibraryApiService
- */
- public function __construct(TemplateLibraryApiService $templateLibraryApiService)
- {
- $this->templateLibraryApiService = $templateLibraryApiService;
- }
- /**
- * 广告设置
- * @param Request $request
- * @param $siteId
- * @return Factory|View
- */
- public function index(Request $request, $siteId)
- {
- $connection = DB::connection($this->templateLibraryApiService->connection($siteId));
- if (!$request->ajax()) {
- return view('admin.stencil.advertise', [
- 'siteId' => $siteId,
- ]);
- }
- $advertList = $connection->table('advert')->paginate(10);
- foreach ($advertList as $value) {
- $value->size = $value->width . '*' . $value->height;
- $value->date = date('Y-m-d H:i:s', $value->create_time);
- }
- return response()->json([
- 'rows' => $advertList->items(),
- 'total' => $advertList->total(),
- ]);
- }
- /**
- * 编辑
- * @param Request $request
- * @param $id
- * @param $siteId
- * @return Factory|JsonResponse|View
- */
- public function advertiseEdit(Request $request, $id, $siteId)
- {
- $connection = DB::connection($this->templateLibraryApiService->connection($siteId));
- if (!$request->ajax()) {
- $info = $connection->table('advert')->where('id', $id)->first() ?? [];
- if (!empty($info)) {
- $info->advertise_name = $info->name ?? '';
- $info->advertise_code = $info->code ?? '';
- }
- return view('admin.stencil.advertise_edit', [
- 'siteId' => $siteId,
- 'info' => $info,
- ]);
- }
- $request = $request->all();
- $update = [
- 'code' => $request['advertise_code'] ?? '',
- 'name' => $request['advertise_name'] ?? '',
- 'width' => $request['width'] ?? 0,
- 'height' => $request['height'] ?? 0,
- 'limit' => $request['limit'] ?? 0,
- 'site_id' => 0,
- 'create_time' => time(),
- ];
- if (empty($id)) {
- $connection->table('advert')->insert($update);
- } else {
- $connection->table('advert')->where('id', $id)->update($update);
- }
- return response()->json(['message' => '操作成功']);
- }
- /**
- * 广告设置
- * @param Request $request
- * @param $id
- * @param $siteId
- * @return Factory|JsonResponse|View
- */
- public function setting(Request $request, $id, $siteId)
- {
- $connection = DB::connection($this->templateLibraryApiService->connection($siteId));
- if (!$request->ajax()) {
- return view('admin.stencil.advertise_setting', [
- 'siteId' => $siteId,
- 'advertId' => $id,
- ]);
- }
- $advertList = $connection->table('advert')->pluck('name', 'id');
- $advertElementList = $connection->table('advert_element')->where('advert_id', $id)->paginate(10);
- foreach ($advertElementList as $value) {
- $value->status = '启用';
- if ($value->is_enabled == 1) {
- $value->status = '禁用';
- }
- $value->startDate = '';
- if (!empty($value->start_time)) {
- $value->startDate = date('Y-m-d H:i:s', $value->start_time);
- }
- $value->endDate = '';
- if (!empty($value->end_time)) {
- $value->endDate = date('Y-m-d H:i:s', $value->end_time);
- }
- $value->pushDate = $value->startDate . ' - ' . $value->endDate;
- $value->advert = $advertList[$value->advert_id] ?? '';
- }
- return response()->json([
- 'rows' => $advertElementList->items(),
- 'total' => $advertElementList->total(),
- ]);
- }
- /**
- * 广告设置编辑
- * @param Request $request
- * @param $id
- * @param $siteId
- * @param $advertId
- * @return Factory|View
- */
- public function settingEdit(Request $request, $id, $siteId, $advertId)
- {
- $connection = DB::connection($this->templateLibraryApiService->connection($siteId));
- if (!$request->ajax()) {
- $advertList = $connection->table('advert')->get();
- $info = $connection->table('advert_element')->where('id', $id)->first() ?? [];
- if (!empty($info)) {
- $info->start_time = date('Y-m-d H:i:s', $info->start_time);
- $info->end_time = date('Y-m-d H:i:s', $info->end_time);
- }
- return view('admin.stencil.setting_edit', [
- 'advertList' => $advertList,
- 'advertId' => $advertId,
- 'siteId' => $siteId,
- 'info' => $info,
- 'id' => $id,
- ]);
- }
- $request = $request->all();
- $data = [
- 'theme' => $request['theme'] ?? 0,
- 'advert_id' => $request['advert_id'] ?? 0,
- 'type' => $request['type'] ?? 'none',
- 'description' => $request['description'] ?? '',
- 'start_time' => strtotime($request['start_time'] ?? date('Y-m-d H:i:s')),
- 'end_time' => strtotime($request['end_time'] ?? date('Y-m-d H:i:s')),
- 'is_enabled' => $request['is_enabled'] ?? 0,
- 'html' => '',
- ];
- if ($request['type'] == 'text') {
- $data['description'] = $request['text_description'] ?? '';
- $data['link'] = $request['text_link'] ?? '';
- }
- if ($request['type'] == 'image') {
- $data['source'] = $request['source'] ?? '';
- $data['description'] = $request['description'] ?? '';
- $data['description_two'] = $request['description_two'] ?? '';
- $data['description_three'] = $request['description_three'] ?? '';
- $data['link'] = $request['link'] ?? '';
- $data['button'] = $request['button'] ?? '';
- $data['button_link'] = $request['button_link'] ?? '';
- $data['button_two'] = $request['button_two'] ?? '';
- $data['button_two_link'] = $request['button_two_link'] ?? '';
- }
- if ($request['type'] == 'html') {
- $data['html'] = $request['html'] ?? '';
- }
- if (empty($id)) {
- $connection->table('advert_element')->insert($data);
- } else {
- $connection->table('advert_element')->where('id', $id)->update($data);
- }
- return response()->json(['message' => '操作成功']);
- }
- }
|