|
@@ -0,0 +1,143 @@
|
|
|
+<?php
|
|
|
+namespace App\Repositories;
|
|
|
+use App\Models\Banner;
|
|
|
+use Dingo\Api\Http\Response;
|
|
|
+use Symfony\Component\HttpKernel\Exception\HttpException;
|
|
|
+use Tymon\JWTAuth\Facades\JWTAuth;
|
|
|
+/**
|
|
|
+ * Created by PhpStorm.
|
|
|
+ * User: durong
|
|
|
+ * Date: 2019/6/4
|
|
|
+ * Time: 上午9:39
|
|
|
+ */
|
|
|
+
|
|
|
+class BannerRepository
|
|
|
+{
|
|
|
+ public function __construct(Banner $banner)
|
|
|
+ {
|
|
|
+ $this->banner = $banner;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function index($request)
|
|
|
+ {
|
|
|
+ $perPage = isset($request['per_page']) ? $request['per_page'] : env('PER_PAGE');
|
|
|
+ $where = [];
|
|
|
+ if(isset($request['id'])){
|
|
|
+ $where[] = ['id', '=', $request['id']];
|
|
|
+ }
|
|
|
+ if(isset($request['is_open'])){
|
|
|
+ $where[] = ['is_open', '=', $request['is_open']];
|
|
|
+ }
|
|
|
+ if (isset($request['name'])){
|
|
|
+ $where[] = ['name', 'like', "%{$request['name']}%"];
|
|
|
+ }
|
|
|
+
|
|
|
+ return $this->banner->where($where)->orderBy('id', 'desc')->paginate($perPage);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public function bannerSets($request)
|
|
|
+ {
|
|
|
+ if ($request['use_background'] == 0){
|
|
|
+ $banner = [
|
|
|
+ 'status' => 0,
|
|
|
+ 'tpl_id' => $request['tpl_id'],
|
|
|
+ 'area_type' => $request['area_type'],
|
|
|
+ 'rule' => json_encode($request['rule']),
|
|
|
+ ];
|
|
|
+ }else{
|
|
|
+ $banner = [
|
|
|
+ 'name' => $request['name'],
|
|
|
+ 'link_content_id' => $request['link_content_id'],
|
|
|
+ 'image' => $request['image'],
|
|
|
+ 'type' => $request['type'],
|
|
|
+ 'is_open' => $request['is_open'] ?? '',
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ $banner['use_background'] = $request['use_background'];
|
|
|
+ $banner['created_at'] = date('Y-m-d H:i:s');
|
|
|
+ $banner['updated_at'] = date('Y-m-d H:i:s');
|
|
|
+
|
|
|
+ $res = $this->banner->create($banner);
|
|
|
+
|
|
|
+ if (!$res) {
|
|
|
+ throw new HttpException(500, '添加失败,请重试');
|
|
|
+ }
|
|
|
+ if ($request['use_background'] == 0){
|
|
|
+ $request['type'] = 0;//0表示新增
|
|
|
+ $request['id'] = $res['id'];
|
|
|
+ $request['rule'] = $res['rule'];
|
|
|
+ $this->bannerIds($request);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public function edit($request)
|
|
|
+ {
|
|
|
+ $banner = $this->banner->where('id', $request['id'])->first();
|
|
|
+ $rule = $request['rule'];
|
|
|
+ $banner->use_background = $request['use_background'];
|
|
|
+ $banner->updated_at = date('Y-m-d H:i:s');
|
|
|
+ if ($request['use_background'] == 0){
|
|
|
+ $banner->tpl_id = $request['tpl_id'];
|
|
|
+ $banner->area_type = $request['area_type'];
|
|
|
+ $banner->rule = json_encode($rule);
|
|
|
+ $banner->status = 0;
|
|
|
+
|
|
|
+ $banner_update = $banner->save();
|
|
|
+ if (!$banner_update) {
|
|
|
+ throw new HttpException(500, 'cms-banner更新失败');
|
|
|
+ }
|
|
|
+ $old_subject_id = $this->banner->select('rule')->find($request['id']);
|
|
|
+ $request['id'] = $banner_update['id'];
|
|
|
+ $request['rule'] = $rule;
|
|
|
+ $request['old_rule'] = $old_subject_id->rule;
|
|
|
+ $request['type'] = 1;//1表示修改
|
|
|
+ $this->bannerIds($request);
|
|
|
+ }else{
|
|
|
+ $banner->name = $request['name'];
|
|
|
+ $banner->link_content_id = $request['link_content_id'];
|
|
|
+ $banner->image = $request['image'];
|
|
|
+ $banner->type = $request['type'];
|
|
|
+ $banner->is_open = $request['is_open'] ?? '';
|
|
|
+
|
|
|
+ $banner_update = $banner->save();
|
|
|
+ if (!$banner_update) {
|
|
|
+ throw new HttpException(500, '社区banner更新失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ function bannerIds($request)
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $url = config("customer.app_service_url") . '/cms/count_subject';
|
|
|
+ if ($request['type'] == 0){
|
|
|
+ $array = [
|
|
|
+ 'json' => ['rule' => $request['rule'],'type' => $request['type']], 'query' => [], 'http_errors' => false, 'headers' => ['Authorization' => "Bearer " . JWTAuth::getToken()]
|
|
|
+ ];
|
|
|
+ }else{
|
|
|
+ $array = [
|
|
|
+ 'json' => ['id' => $request['id'],'rule' => $request['rule'],'type' => $request['type'],'old_rule' =>$request['old_rule']], 'query' => [], 'http_errors' => false, 'headers' => ['Authorization' => "Bearer " . JWTAuth::getToken()]
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ return http($url, $array, 'post');
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ return [];
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public function bannerDelete($request)
|
|
|
+ {
|
|
|
+ $advertisement = $this->banner->where('id', $request['id'])->first();
|
|
|
+ $res = $advertisement->delete();
|
|
|
+ if (!$res){
|
|
|
+ return Response::create([
|
|
|
+ 'message' => '删除失败,请重试',
|
|
|
+ 'status_code' => 500
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|