| 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' => '操作成功']);    }}
 |