Browse Source

Merge branch 'develop'

xielin 5 years ago
parent
commit
9b05ae2b7b
46 changed files with 2241 additions and 99 deletions
  1. 27 0
      app/Helper/helper.php
  2. 37 0
      app/Http/Controllers/V2/CmsContentTemplateSetController.php
  3. 113 0
      app/Http/Controllers/V2/FloorController.php
  4. 136 0
      app/Http/Controllers/V2/MemberGroupController.php
  5. 100 0
      app/Http/Controllers/V2/TopicGroupController.php
  6. 139 0
      app/Http/Controllers/V2/VideoGroupController.php
  7. 38 0
      app/Http/Middleware/SqlMiddleware.php
  8. 16 0
      app/Models/Floor.php
  9. 24 0
      app/Models/MemberGroup.php
  10. 19 0
      app/Models/MemberGroupInfo.php
  11. 24 0
      app/Models/TopicGroup.php
  12. 19 0
      app/Models/TopicGroupInfo.php
  13. 24 0
      app/Models/VideoGroup.php
  14. 20 0
      app/Models/VideoGroupInfo.php
  15. 14 1
      app/Repositories/CmsContentTemplateRepository.php
  16. 10 0
      app/Repositories/CmsContentTemplateSetRepository.php
  17. 147 0
      app/Repositories/TopicGroupRepository.php
  18. 60 0
      app/Repositories/V2/CmsContentTemplateSetRepository.php
  19. 126 0
      app/Repositories/V2/FloorRepository.php
  20. 261 0
      app/Repositories/V2/MemberGroupRepository.php
  21. 176 0
      app/Repositories/V2/VideoGroupRepository.php
  22. 51 0
      app/Transformers/DetailMemberGroupInfoTransformer.php
  23. 28 0
      app/Transformers/DetailTopicGroupTransformer.php
  24. 53 0
      app/Transformers/DetailVideoGroupTansformer.php
  25. 28 0
      app/Transformers/FloorTransformer.php
  26. 30 0
      app/Transformers/MemberGroupTansformer.php
  27. 28 0
      app/Transformers/TopicGroupTransformer.php
  28. 49 0
      app/Transformers/VideoGroupInfoTransformer.php
  29. 32 0
      app/Transformers/VideoGroupTransformer.php
  30. 4 0
      bootstrap/app.php
  31. 2 1
      composer.json
  32. 1 0
      database/migrations/2019_04_28_025052_create_cms_subject_product_table.php
  33. 0 32
      database/migrations/2019_04_28_072523_add_cms_subject_product_table.php
  34. 0 32
      database/migrations/2019_04_28_084605_add_product_id_cms_subject_product_table.php
  35. 0 32
      database/migrations/2019_04_28_095947_update_product_id_cms_subject_product_table.php
  36. 37 0
      database/migrations/2019_06_04_021845_create_cms_floor_table.php
  37. 34 0
      database/migrations/2019_06_04_023010_create_member_group_table.php
  38. 35 0
      database/migrations/2019_06_04_023032_create_member_group_info_table.php
  39. 36 0
      database/migrations/2019_06_04_023038_create_topic_group_table.php
  40. 34 0
      database/migrations/2019_06_04_023048_create_video_group_table.php
  41. 35 0
      database/migrations/2019_06_04_023052_create_video_group_info_table.php
  42. 34 0
      database/migrations/2019_06_04_023107_create_activities_table.php
  43. 34 0
      database/migrations/2019_06_11_165445_create_topic_group_info_table.php
  44. 56 0
      database/seeds/CmsFloorTableSeeder.php
  45. 1 0
      database/seeds/DatabaseSeeder.php
  46. 69 1
      routes/api.php

+ 27 - 0
app/Helper/helper.php

@@ -15,4 +15,31 @@ if ( ! function_exists('config_path'))
     {
         return app()->basePath() . '/config' . ($path ? '/' . $path : $path);
     }
+}
+
+/**
+ * @param $url 地址
+ * @param $param 参数
+ * @param bool $isCheck 是否检查返回结果
+ * @param string $method 请求方式
+ * @return array|mixed
+ * @throws \GuzzleHttp\Exception\GuzzleException
+ */
+function http($url, $param, $isCheck = true, $method = 'post')
+{
+    try {
+        $client = new \GuzzleHttp\Client();
+        $response = $client->request($method, $url, $param);
+        $result = json_decode($response->getBody()->getContents(), true);
+        \Illuminate\Support\Facades\Log::debug('url:'.$url.'param:'.json_encode($param).'response:'.json_encode($result));
+        if ($isCheck == true) {
+            return $result['data'];
+        } else {
+            return $result;
+        }
+
+    } catch (\Exception $exception) {
+        return [];
+    }
+
 }

+ 37 - 0
app/Http/Controllers/V2/CmsContentTemplateSetController.php

@@ -0,0 +1,37 @@
+<?php
+namespace App\Http\Controllers\V2;
+
+use App\Http\Controllers\BaseController;
+use App\Repositories\V2\CmsContentTemplateSetRepository;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Validator;
+/**
+ * Created by PhpStorm.
+ * User: qinyaer
+ * Date: 2019/6/10
+ * Time: 下午18:37
+ */
+
+class CmsContentTemplateSetController extends BaseController
+{
+    public function __construct(CmsContentTemplateSetRepository $cmsContentTemplateSetRepository)
+    {
+        $this->cmsContentSetTemplate = $cmsContentTemplateSetRepository;
+    }
+
+    //banner 专题计数
+    public function countSubject(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|integer',
+            'rule' => 'required',
+            'type' => 'required'//类型:0.新增;1.修改
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+
+        return  $this->cmsContentSetTemplate->countSubject($request->all());
+
+    }
+}

+ 113 - 0
app/Http/Controllers/V2/FloorController.php

@@ -0,0 +1,113 @@
+<?php
+namespace App\Http\Controllers\V2;
+use App\Http\Controllers\BaseController;
+use App\Repositories\V2\FloorRepository;
+use App\Transformers\FloorTransformer;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Validator;
+use League\Fractal\Resource\Collection;
+use League\Fractal\Manager;
+use Illuminate\Validation\Rule;
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
+/**
+ * Created by PhpStorm.
+ * User: qinyaer
+ * Date: 2019/6/5
+ * Time: 上午10:51
+ */
+
+class FloorController extends BaseController
+{
+    public function __construct(FloorRepository $floorRepository)
+    {
+        $this->floorRepository = $floorRepository;
+    }
+
+    //楼层列表
+    public function index(Request $request)
+    {
+        $floor = $this->floorRepository->index($request->all());
+
+        $fractal = new Manager();
+        $resource = new Collection($floor, new FloorTransformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($floor));
+        $data = $fractal->createData($resource)->toArray();
+        $data['extra'] = [
+            'filters' => [
+            ],
+            'columns' => [
+                'id',
+                'name',
+                'floor_location',
+                'group_ids',
+                'floor_type',
+                'is_open',
+                'updated_at',
+            ]
+        ];
+        return $data;
+    }
+
+
+    //新建楼层
+    public function create(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'name' => 'required|string',
+            'floor_location' => 'required|integer',
+        ]);
+
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->floorRepository->create($request->all());
+
+    }
+
+
+    //编辑楼层
+    public function edit(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|exists:cms_floor',
+            'name' => 'required|string',
+            'floor_location' => 'required|integer',
+            'group_ids' => 'required',
+            'floor_type' => 'required|integer',
+            'is_open' => ['required', Rule::in(0,1)],
+        ]);
+
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->floorRepository->edit($request->all());
+    }
+
+
+    //修改楼层状态
+    public function editStatus(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|exists:cms_floor',
+            'is_open' => ['required', Rule::in(0,1)],
+        ]);
+
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->floorRepository->editStatus($request->all());
+    }
+
+    //关闭banner修改楼层状态
+    public function floorBind(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'banner_id' => 'required|integer',
+        ]);
+
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->floorRepository->floorBind($request->all());
+    }
+}

+ 136 - 0
app/Http/Controllers/V2/MemberGroupController.php

@@ -0,0 +1,136 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-12
+ * Time: 17:34
+ */
+
+namespace App\Http\Controllers\V2;
+
+use App\Http\Controllers\Controller;
+use App\Repositories\V2\MemberGroupRepository;
+use App\Transformers\DetailMemberGroupInfoTransformer;
+use App\Transformers\MemberGroupTansformer;
+use Illuminate\Validation\Rule;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Validator;
+use League\Fractal\Manager;
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
+use League\Fractal\Resource\Collection;
+use League\Fractal\Resource\Item;
+
+class MemberGroupController extends Controller {
+    public function __construct(MemberGroupRepository $memberGroupRepository) {
+        $this->memberGroupRepository = $memberGroupRepository;
+    }
+    //列表
+    public function index(Request $request){
+        $topicGroup = $this->memberGroupRepository->index($request->all());
+        $fractal = new Manager();
+        $resource = new Collection($topicGroup, new MemberGroupTansformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($topicGroup));
+        $data = $fractal->createData($resource)->toArray();
+        $data['extra'] = [
+            'filters' => [
+                'name',
+            ],
+            'columns' => [
+                'id',
+                'name',
+                'member_list',
+                'video_count',
+                'created_at',
+                'is_suggest',
+            ]
+        ];
+        return $data;
+    }
+    //创建
+    public function create(Request $request){
+        $data = $request->only('name','is_suggest','member_list');
+        $validator = Validator::make($data, [
+            'name' => 'required|string|max:20',
+            'is_suggest' => ['required', Rule::in(0,1)],
+            'member_list' =>'required|array',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->memberGroupRepository->create($data);
+    }
+    //详情
+    public function view(Request $request){
+        $data = $request->all();
+        $validator = Validator::make($data, [
+            'id' => 'required|integer|max:12',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        $info = $this->memberGroupRepository->view($data);
+        return $this->response->item($info, new DetailMemberGroupInfoTransformer());
+    }
+    //设置排序
+    public function edit(Request $request){
+        $data = $request->only('id','name','is_suggest','member_list');
+        $validator = Validator::make($data, [
+            'id' => 'required|integer|max:12',
+            'name' => 'required|string|max:20',
+            'is_suggest' => ['required', Rule::in(0,1)],
+            'member_list' => 'required|array',
+        ]);
+
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->memberGroupRepository->edit($data);
+    }
+    //删除内容
+    public function delete(Request $request){
+        $data = $request->only('id');
+        $validator = Validator::make($data, [
+            'id' => 'required|integer|max:12',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->memberGroupRepository->delete($data['id']);
+    }
+    //删除内容
+    public function deleteMemberInfo(Request $request){
+        $data = $request->only('id');
+        $validator = Validator::make($data, [
+            'id' => 'required|integer|max:12',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->memberGroupRepository->deleteMemberInfo($data['id']);
+    }
+    //设置推荐
+    public function setIsSuggest(Request $request){
+        $data = $request->only('id','is_suggest');
+        $validator = Validator::make($data, [
+            'id' => 'required|integer|max:20',
+            'is_suggest' => ['required', Rule::in(0,1)],
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->memberGroupRepository->setIsSuggest($data);
+    }
+    //设置内容排序
+    public function setSort(Request $request){
+        $data = $request->only('id','member_info');
+        $validator = Validator::make($data, [
+            'id' => 'required|integer|max:20',
+            'member_info' => 'required',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->memberGroupRepository->setSort($data);
+    }
+
+}

+ 100 - 0
app/Http/Controllers/V2/TopicGroupController.php

@@ -0,0 +1,100 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-10
+ * Time: 16:44
+ */
+
+namespace App\Http\Controllers\V2;
+
+use App\Http\Controllers\Controller;
+use App\Repositories\TopicGroupRepository;
+use App\Transformers\DetailTopicGroupTransformer;
+use App\Transformers\DetailTopicTransformer;
+use App\Transformers\TopicGroupTransformer;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Validator;
+use League\Fractal\Manager;
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
+use League\Fractal\Resource\Collection;
+use League\Fractal\Resource\Item;
+
+class TopicGroupController extends Controller {
+    public function __construct(TopicGroupRepository $topicGroupRepository)
+    {
+        $this->topicGroupRepository = $topicGroupRepository;
+    }
+    
+    //列表
+    public function index(Request $request){
+        $topicGroup = $this->topicGroupRepository->index($request->all());
+        $fractal = new Manager();
+        $resource = new Collection($topicGroup, new TopicGroupTransformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($topicGroup));
+        $data = $fractal->createData($resource)->toArray();
+        $data['extra'] = [
+            'filters' => [
+                'name',
+            ],
+            'columns' => [
+                'id',
+                'name',
+                'img',
+                'created_at',
+                'is_suggest',
+                'topic_count',
+                'topic_list'
+            ]
+        ];
+        return $data;
+    }
+    //创建
+    public function create(Request $request){
+        $data = $request->only('name','img','topic_ids','desc');
+        $validator = Validator::make($data, [
+            'name' => 'required|string|max:20',
+            'topic_ids' => 'required|string',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->topicGroupRepository->create($data);
+    }
+    //修改
+    public function edit(Request $request){
+        $data = $request->only('id','name','img','topic_ids','desc');
+        $validator = Validator::make($data, [
+            'name' => 'required|string|max:20',
+            'topic_ids' => 'required|string',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->topicGroupRepository->edit($data);
+    }
+    //详情
+    public function view(Request $request){
+        $data = $request->only('id','status');
+        $validator = Validator::make($data, [
+            'id' => 'required|integer',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        $info = $this->topicGroupRepository->view($data);
+        return $this->response->item($info, new DetailTopicGroupTransformer());
+    }
+    //删除
+    public function delete(Request $request){
+        $data = $request->only('id','status');
+        $validator = Validator::make($data, [
+            'id' => 'required|integer',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return $this->topicGroupRepository->delete($data);
+    }
+
+}

+ 139 - 0
app/Http/Controllers/V2/VideoGroupController.php

@@ -0,0 +1,139 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-12
+ * Time: 9:35
+ */
+
+namespace App\Http\Controllers\V2;
+
+use App\Http\Controllers\Controller;
+use App\Repositories\V2\VideoGroupRepository;
+use App\Transformers\DetailVideoGroupTansformer;
+use App\Transformers\VideoGroupInfoTransformer;
+use App\Transformers\VideoGroupTransformer;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Validator;
+use League\Fractal\Manager;
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
+use League\Fractal\Resource\Collection;
+use League\Fractal\Resource\Item;
+
+class VideoGroupController extends Controller {
+
+    public function __construct(VideoGroupRepository $videoGroupRepository) {
+        $this->videoGroupRepository = $videoGroupRepository;
+    }
+    //列表
+    public function index(Request $request){
+        $topicGroup = $this->videoGroupRepository->index($request->all());
+        $fractal = new Manager();
+        $resource = new Collection($topicGroup, new VideoGroupTransformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($topicGroup));
+        $data = $fractal->createData($resource)->toArray();
+        $data['extra'] = [
+            'filters' => [
+                'name',
+            ],
+            'columns' => [
+                'id',
+                'name',
+                'video_count',
+                'created_at',
+            ]
+        ];
+        return $data;
+    }
+    //创建
+    public function create(Request $request){
+        $data = $request->only('name');
+        $validator = Validator::make($data, [
+            'name' => 'required|string|max:20',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->videoGroupRepository->create($data);
+    }
+    //详情
+    public function view(Request $request){
+        $data = $request->all();
+        $validator = Validator::make($data, [
+            'id' => 'required|integer|max:12',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        $info = $this->videoGroupRepository->view($data);
+        $videoInfo = $this->videoGroupRepository->VideoInfoIndex(['video_group_id'=>$data['id']]);
+        $fractal = new Manager();
+        $resource = new Collection($videoInfo, new VideoGroupInfoTransformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($videoInfo));
+        $data = $fractal->createData($resource)->toArray();
+        $data['extra'] = [
+            'filters' => [
+                'name',
+            ],
+            'columns' => [
+                'post_id',
+                'username',
+                'topic',
+                'video',
+                'pv',
+                'praise_count',
+            ],
+            'name'=>$info['name'],
+            'id'=>$info['id'],
+        ];
+        return $data;
+    }
+    //设置排序
+    public function edit(Request $request){
+        $data = $request->only('id','name','video_info');
+        $validator = Validator::make($data, [
+            'id' => 'required|integer|max:12',
+            'name' => 'required|string|max:12',
+            'video_info' => 'required|array'
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->videoGroupRepository->edit($data);
+    }
+    //删除内容
+    public function delete(Request $request){
+        $data = $request->only('id');
+        $validator = Validator::make($data, [
+            'id' => 'required|integer|max:12',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->videoGroupRepository->delete($data['id']);
+    }
+    //添加分组内容
+    public function addVideoInfo(Request $request){
+        $data = $request->only('video_group_id','post_id');
+        $validator = Validator::make($data, [
+            'video_group_id' => 'required|integer',
+            'post_id' => 'required|integer',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->videoGroupRepository->addVideoInfo($data);
+    }
+
+    //删除内容
+    public function deleteVideoInfo(Request $request){
+        $data = $request->only('id');
+        $validator = Validator::make($data, [
+            'id' => 'required|integer|max:12',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->videoGroupRepository->deleteVideoInfo($data['id']);
+    }
+}

+ 38 - 0
app/Http/Middleware/SqlMiddleware.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Closure;
+use Illuminate\Support\Facades\DB;
+
+class SqlMiddleware
+{
+    /**
+     * Handle an incoming request.
+     *
+     * @param  \Illuminate\Http\Request $request
+     * @param  \Closure $next
+     * @return mixed
+     */
+    public function handle($request, Closure $next)
+    {
+        if ($request->sql_debug==1) {
+            DB::connection()->enableQueryLog();
+        }
+
+        $response = $next($request);
+        if ($request->get('sql_debug')) {
+            $queries = DB::getQueryLog();
+
+            if (!empty($queries)) {
+                foreach ($queries as &$query) {
+                    $query['full_query'] = vsprintf(str_replace('?', '%s', $query['query']), $query['bindings']);
+                }
+            }
+
+            dd($queries);exit;
+        }
+
+        return $response;
+    }
+}

+ 16 - 0
app/Models/Floor.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace App\Models;
+
+
+class Floor extends BaseModel
+{
+    protected  $table = 'cms_floor';
+    /**
+     * 可被批量赋值的字段
+     * @var array
+     */
+    protected $fillable = ['name','floor_location','group_ids','floor_type','is_open'];
+
+
+}

+ 24 - 0
app/Models/MemberGroup.php

@@ -0,0 +1,24 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-12
+ * Time: 17:29
+ */
+
+namespace App\Models;
+
+
+use Illuminate\Database\Eloquent\Model;
+
+class MemberGroup extends Model {
+    protected $table = 'member_group';
+
+    protected $guarded = ['id'];
+    protected $hidden = ['deleted_at'];
+
+    public function mgi()
+    {
+        return $this->hasMany('App\Models\MemberGroupInfo','member_group_id','id');
+    }
+}

+ 19 - 0
app/Models/MemberGroupInfo.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-12
+ * Time: 17:29
+ */
+
+namespace App\Models;
+
+
+use Illuminate\Database\Eloquent\Model;
+
+class MemberGroupInfo extends Model {
+    protected $table = 'member_group_info';
+
+    protected $guarded = ['id'];
+    protected $hidden = ['deleted_at'];
+}

+ 24 - 0
app/Models/TopicGroup.php

@@ -0,0 +1,24 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-10
+ * Time: 16:39
+ */
+
+namespace App\Models;
+
+
+use Illuminate\Database\Eloquent\Model;
+
+class TopicGroup extends Model {
+    protected $table = 'topic_group';
+
+    protected $guarded = ['id'];
+    protected $hidden = ['deleted_at'];
+
+    public function ct()
+    {
+        return $this->hasMany('App\Models\TopicGroupInfo','topic_group_id','id');
+    }
+}

+ 19 - 0
app/Models/TopicGroupInfo.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-10
+ * Time: 17:10
+ */
+
+namespace App\Models;
+
+
+use Illuminate\Database\Eloquent\Model;
+
+class TopicGroupInfo extends Model {
+    protected $table = 'topic_group_info';
+
+    protected $guarded = ['id'];
+    protected $hidden = ['deleted_at'];
+}

+ 24 - 0
app/Models/VideoGroup.php

@@ -0,0 +1,24 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-12
+ * Time: 9:30
+ */
+
+namespace App\Models;
+
+
+use Illuminate\Database\Eloquent\Model;
+
+class VideoGroup extends Model {
+    protected $table = 'video_group';
+
+    protected $guarded = ['id'];
+    protected $hidden = ['deleted_at'];
+
+    public function vgi()
+    {
+        return $this->hasMany('App\Models\VideoGroupInfo','video_group_id','id');
+    }
+}

+ 20 - 0
app/Models/VideoGroupInfo.php

@@ -0,0 +1,20 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-12
+ * Time: 9:31
+ */
+
+namespace App\Models;
+
+
+use Illuminate\Database\Eloquent\Model;
+
+class VideoGroupInfo extends Model {
+
+    protected $table = 'video_group_info';
+
+    protected $guarded = ['id'];
+    protected $hidden = ['deleted_at'];
+}

+ 14 - 1
app/Repositories/CmsContentTemplateRepository.php

@@ -114,7 +114,20 @@ class CmsContentTemplateRepository {
      * @param $data
      * @return mixed
      */
-    public function updateTemplateName($data){
+    public function updateTemplateName($data)
+    {
+        $template = $this->cmsContentTemplate->select('city_id','apply_type')->where('id',$data['id'])->first();
+        $template_array = $this->cmsContentTemplate->where(['city_id'=>$template->city_id,'apply_type'=>$template->apply_type])->get();
+
+        if (count($template_array)>1){
+            foreach ($template_array->toArray() as $value){
+                $res = $this->cmsContentTemplate->where('id',$value['id'])->update(['title'=>$data['title']]);
+                if (!$res){
+                    throw new HttpException(500, '修改失败,请重试');
+                }
+            }
+        }
+
         return $this->cmsContentTemplate->where('id',$data['id'])->update(['title'=>$data['title']]);
     }
 }

+ 10 - 0
app/Repositories/CmsContentTemplateSetRepository.php

@@ -211,6 +211,11 @@ class CmsContentTemplateSetRepository {
             ];
 
             if (empty($advertisement_id)){
+                if ($request['rule']['link_type'] == 1){
+                    $templates = $this->cmsSubject->where('id',intval($request['rule']['link_url']))->first();
+                    $templates->used_count +=1;
+                    $templates->save();
+                }
                 if (!$this->cmsContentTemplateSet->create($subject)) {
                     throw new HttpException(500, '添加失败');
                 }
@@ -239,6 +244,11 @@ class CmsContentTemplateSetRepository {
                 'updated_at' => date('Y-m-d H:i:s')
             ];
         if (empty($floor_id)){
+            if ($request['rule']['link_type'] == 1){
+                $templates = $this->cmsSubject->where('id',intval($request['rule']['link_url']))->first();
+                $templates->used_count +=1;
+                $templates->save();
+            }
             if (!$this->cmsContentTemplateSet->create($subject)) {
                 throw new HttpException(500, '添加失败');
             }

+ 147 - 0
app/Repositories/TopicGroupRepository.php

@@ -0,0 +1,147 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-10
+ * Time: 17:07
+ */
+
+namespace App\Repositories;
+
+
+use App\Models\TopicGroup;
+use App\Models\TopicGroupInfo;
+use Dingo\Api\Http\Response;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Database\QueryException;
+use Illuminate\Support\Facades\Log;
+
+class TopicGroupRepository {
+    public function __construct(TopicGroup $topicGroup,TopicGroupInfo $topicGroupInfo) {
+        $this->topicGroup = $topicGroup;
+        $this->topicGroupInfo = $topicGroupInfo;
+    }
+    public function index($request){
+        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
+        $where = [];
+        if(isset($request['name'])){
+            $where[] = ['name', 'like', "%{$request['name']}%"];
+        }
+        return $this->topicGroup->where($where)->paginate($perPage);
+    }
+    //添加
+    public function create($request){
+        $category = $this->topicGroup->where(['name'=>$request['name']])->first();
+        if($category){
+            return Response::create([
+                'message'  => '该分组已存在',
+                'status_code'   => 500
+            ]);
+        }
+        $data = [
+            'name' => $request['name'],
+            'status' => 1,
+        ];
+        if(!empty($request['topic_ids'])){
+            $topic_ids = explode(',', $request['topic_ids']);
+        }
+        DB::beginTransaction();
+        try{
+            $topicGroup = $this->topicGroup->create($data);
+            if($topicGroup){
+                if($topic_ids){
+                    $topic_group_inof_data = [];
+                    foreach($topic_ids as $value){
+                        $topic_group_inof_data[] = [
+                            'topic_group_id' => $topicGroup->id,
+                            'topic_id' => $value,
+                        ];
+                    }
+                    $this->topicGroupInfo->insert($topic_group_inof_data);
+                }
+            }
+            DB::commit();
+            return Response::create();
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('新增话题分组:'.$exception->getMessage());
+            return Response::create([
+                'message'  => '新增话题失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+
+    //添加
+    public function edit($request){
+        $topicGroup = $this->topicGroup->where(['id'=>$request['id']])->first();
+        if(!$topicGroup){
+            return Response::create([
+                'message'  => '该话题组不存在',
+                'status_code'   => 500
+            ]);
+        }
+        $topicGroup->name = $request['name'];
+
+        if(!empty($request['topic_ids'])){
+            $topic_ids = explode(',', $request['topic_ids']);
+        }
+        DB::beginTransaction();
+        try{
+            $topicGroupInfo = $topicGroup->save();
+            if($topicGroupInfo){
+                //删除
+                $this->topicGroupInfo->where(['topic_group_id'=>$topicGroup->id])->delete();
+                if($topic_ids){
+                    $category_topic_data = [];
+                    foreach($topic_ids as $value){
+                        $category_topic_data[] = [
+                            'topic_group_id' => $topicGroup->id,
+                            'topic_id' => $value,
+                        ];
+                    }
+                    $this->topicGroupInfo->insert($category_topic_data);
+                }
+            }
+            DB::commit();
+            return Response::create();
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('新增推荐话题组:'.$exception->getMessage());
+            return Response::create([
+                'message'  => '新增推荐话题组失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+    //详情
+    public function view($request){
+       return $this->topicGroup->where(['id'=>$request['id']])->first();
+    }
+    //删除
+    public function delete($request){
+        $topicGroup = $this->topicGroup->where(['id'=>$request['id']])->first();
+        DB::beginTransaction();
+        try{
+            if($topicGroup){
+                $res = $this->topicGroup->where(['id'=>$request['id']])->delete();
+                if($res){
+                    $this->topicGroupInfo->where(['topic_group_id'=>$topicGroup->id])->delete();
+                }
+            }
+            DB::commit();
+            return Response::create();
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('删除推荐话题组:'.$exception->getMessage());
+            return Response::create([
+                'message'  => '删除推荐话题组失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+
+    }
+}

+ 60 - 0
app/Repositories/V2/CmsContentTemplateSetRepository.php

@@ -0,0 +1,60 @@
+<?php
+
+namespace App\Repositories\V2;
+
+use App\Models\CmsSubject;
+use App\Models\CmsContentTemplate;
+use App\Models\CmsContentTemplateSet;
+use App\Models\CmsSubjectProduct;
+use Illuminate\Support\Facades\Log;
+
+class CmsContentTemplateSetRepository {
+    public function __construct(CmsContentTemplateSet $cmsContentTemplateSet,CmsContentTemplate $cmsContentTemplate,CmsSubjectProduct $cmsSubjectProduct,CmsSubject $cmsSubject) {
+
+        $this->cmsContentTemplateSet = $cmsContentTemplateSet;
+        $this->cmsContentTemplate = $cmsContentTemplate;
+        $this->cmsSubjectProduct = $cmsSubjectProduct;
+        $this->cmsSubject = $cmsSubject;
+    }
+
+    //banner模板选专题-被使用计数
+    public function countSubject($request)
+    {
+        $type = intval($request['type']);
+        if ($type == 0) {
+            $rule = json_decode($request['rule'], true);
+            if ($rule['link_type'] == 1) {
+                $templates = $this->cmsSubject->where('id', intval($rule['link_url']))->first();
+                $templates->used_count += 1;
+                $templates->save();
+            }
+        }
+        if ($type == 1) {
+            $subject_id_array = json_decode($request['old_rule'], true);
+            if ($subject_id_array['link_type'] == 1 && $request['rule']['link_type'] == 1) {//链接方式都为专题
+                if ($subject_id_array['link_url'] != $request['rule']['link_url']) {
+                    $templates = $this->cmsSubject->where('id', intval($subject_id_array['link_url']))->first();
+                    $update_template = [
+                        $templates->used_count -= 1
+                    ];
+                    $templates->update($update_template);
+
+                    $templates = $this->cmsSubject->where('id', intval($request['rule']['link_url']))->first();
+                    $templates->used_count += 1;
+                    $templates->save();
+                }
+            } elseif ($subject_id_array['link_type'] == 1 && $request['rule']['link_type'] != 1) {
+                $templates = $this->cmsSubject->where('id', intval($subject_id_array['link_url']))->first();
+                $update_template = [
+                    $templates->used_count -= 1
+                ];
+                $templates->update($update_template);
+            } elseif ($subject_id_array['link_type'] != 1 && $request['rule']['link_type'] == 1) {
+                $templates = $this->cmsSubject->where('id', intval($request['rule']['link_url']))->first();
+                $templates->used_count += 1;
+                $templates->save();
+            }
+        }
+
+    }
+}

+ 126 - 0
app/Repositories/V2/FloorRepository.php

@@ -0,0 +1,126 @@
+<?php
+namespace App\Repositories\V2;
+use App\Models\Floor;
+use Illuminate\Support\Facades\Log;
+use Symfony\Component\HttpKernel\Exception\HttpException;
+use Dingo\Api\Http\Response;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Database\QueryException;
+
+/**
+ * Created by PhpStorm.
+ * User: durong
+ * Date: 2019/6/3
+ * Time: 下午2:36
+ */
+
+class FloorRepository
+{
+    public function __construct(Floor $floor)
+    {
+        $this->floor = $floor;
+    }
+
+    public function index($request)
+    {
+        $where = [];
+        if(isset($request['id'])){
+            $where[] = ['id', '=', $request['id']];
+        }
+        return $this->floor->where($where)->orderBy('id', 'asc')->paginate(20);
+    }
+
+    public function create($request)
+    {
+        if (is_array($request['group_ids'])){
+            $group_ids = implode(',',$request['group_ids']);
+        }else{
+            $group_ids = $request['group_ids'];
+        }
+        $data = [
+            'name' => $request['name'],
+            'floor_location' => $request['floor_location'],
+            'group_ids' => $group_ids,//多个banner用英文,隔开
+            'floor_type' => $request['floor_type'],
+            'is_open' => $request['is_open']
+        ];
+        if (!$this->floor->create($data)) {
+            throw new HttpException(500, '添加失败');
+        }
+    }
+
+    public function edit($request)
+    {
+        $floor = $this->floor->where('id', $request['id'])->first();
+
+        if (is_array($request['group_ids'])){
+            $group_ids = implode(',',$request['group_ids']);
+        }else{
+            $group_ids = $request['group_ids'];
+        }
+        $floor->name = $request['name'];
+        $floor->floor_location = $request['floor_location'];
+        $floor->group_ids = $group_ids;
+        $floor->floor_type = $request['floor_type'];
+        $floor->is_open = $request['is_open'] ?? 0;
+
+        DB::beginTransaction();
+        try{
+            $res = $floor->save();
+
+            if($res){
+                DB::commit();
+                return Response::create();
+            }
+            DB::rollBack();
+            return Response::create([
+                'message'  => '编辑失败,请重试',
+                'status_code'   => 500
+            ]);
+
+        }catch (QueryException $exception){
+            Log::debug('编辑楼层:'.$exception->getMessage());
+            DB::rollBack();
+            return Response::create([
+                'message'  => '编辑失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+
+    public function editStatus($request)
+    {
+        $floor = $this->floor->find($request['id']);
+
+        $floor->is_open = $request['is_open'];
+        $floor->updated_at = date('Y-m-d H:i:s');
+
+        $res = $floor->save();
+        if (!$res) {
+            throw new HttpException(500, '修改状态失败');
+        }
+
+    }
+
+    public function floorBind($request)
+    {
+        $banner_id = $request['banner_id'];
+        $floor_array = $this->floor->select('id','group_ids')->where('floor_type',0)->get();
+        $floor_ids = [];
+        foreach ($floor_array->toArray() as $value){
+                if ($banner_id == $value['group_ids']){
+                    $floor_ids[] = $value['id'];
+                }
+        }
+        if (count($floor_ids)>0){
+            $edit_floor = $this->floor->whereIn('id',$floor_ids)->update(['is_open'=>0]);
+            if (!$edit_floor){
+                throw new HttpException(500, '该楼层关闭失败');
+            }
+        }
+
+    }
+
+}
+

+ 261 - 0
app/Repositories/V2/MemberGroupRepository.php

@@ -0,0 +1,261 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-12
+ * Time: 17:35
+ */
+
+namespace App\Repositories\V2;
+
+use App\Models\MemberGroup;
+use App\Models\MemberGroupInfo;
+use Dingo\Api\Http\Response;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Database\QueryException;
+use Illuminate\Support\Facades\Log;
+
+class MemberGroupRepository {
+    public function __construct(MemberGroup $memberGroup,MemberGroupInfo $memberGroupInfo) {
+        $this->memberGroup = $memberGroup;
+        $this->memberGroupInfo = $memberGroupInfo;
+    }
+    //列表
+    public function index($request){
+        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
+        $where = [];
+        if(isset($request['name'])){
+            $where[] = ['name', 'like', "%{$request['name']}%"];
+        }
+        return $this->memberGroup->where($where)->paginate($perPage);
+    }
+    //详情
+    public function view($request){
+        return $this->memberGroup->where(['id'=>$request['id']])->first();
+    }
+    //创建
+    public function create($request){
+        $memberGroup = $this->memberGroup->where(['name'=>$request['name']])->first();
+        if($memberGroup){
+            return Response::create([
+                'message'  => '该分组已存在',
+                'status_code'   => 500
+            ]);
+        }
+        $data = [
+            'name' => $request['name'],
+            'is_suggest' =>$request['is_suggest'],
+        ];
+        if(!empty($request['member_list'])){
+            $member_ids = $request['member_list'];
+            $count = count($member_ids);
+            if($count >= 50){
+                return Response::create([
+                    'message'  => '推荐用户最多选50个,当前人数:'.$count.'人',
+                    'status_code'   => 500
+                ]);
+            }
+        }
+        DB::beginTransaction();
+        try{
+            if($request['is_suggest'] == 1){
+                $_memberGroup = $this->memberGroup->where(['is_suggest'=>1])->first();
+                if($_memberGroup){
+                    $this->memberGroup->where(['id'=>$_memberGroup->id])->update(['is_suggest'=>0]);
+                }
+            }
+            $res  = $this->memberGroup->create($data);
+            if($res){
+                if($member_ids){
+                    $member_data = [];
+                    foreach($member_ids as $value){
+                        $member_data[] = [
+                            'member_group_id' => $res->id,
+                            'uid' => $value['id'],
+                            'sort' => $value['sort'],
+                        ];
+                    }
+                    $this->memberGroupInfo->insert($member_data);
+                }
+            }
+            DB::commit();
+            return Response::create();
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('新增推荐用户:'.$exception->getMessage());
+            return Response::create([
+                'message'  => '新增推荐用户失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+    //编辑
+    public function edit($request){
+        $memberGroup = $this->memberGroup->where(['id'=>$request['id']])->first();
+        if(!$memberGroup){
+            return Response::create([
+                'message'  => '该分组不存在',
+                'status_code'   => 500
+            ]);
+        }
+        $memberGroup->name = $request['name'];
+        $memberGroup->is_suggest = $request['is_suggest'];
+
+        if(!empty($request['member_list'])){
+            $member_ids = $request['member_list'];
+            $count = count($member_ids);
+            if($count >= 50){
+                return Response::create([
+                    'message'  => '推荐用户最多选50个,当前人数:'.$count.'人',
+                    'status_code'   => 500
+                ]);
+            }
+        }
+        DB::beginTransaction();
+        try{
+            if($request['is_suggest'] == 1){
+                $_memberGroup = $this->memberGroup->where(['is_suggest'=>1])->where('id','<>',$memberGroup->id)->first();
+                if($_memberGroup){
+                    $this->memberGroup->where(['id'=>$_memberGroup->id])->update(['is_suggest'=>0]);
+                }
+            }
+            $group = $memberGroup->save();
+            if($group){
+                //删除
+                $this->memberGroupInfo->where(['member_group_id'=>$memberGroup->id])->delete();
+
+                $member_data = [];
+                foreach($member_ids as $value){
+                    $member_data[] = [
+                        'member_group_id' => $memberGroup->id,
+                        'uid' => $value['id'],
+                        'sort' => $value['sort'],
+                    ];
+                }
+                $this->memberGroupInfo->insert($member_data);
+            }
+            DB::commit();
+            return Response::create();
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('编辑推荐用户分组:'.$exception->getMessage());
+            return Response::create([
+                'message'  => '编辑推荐用户分组失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+    //删除内容
+    public function delete($id){
+        $memberGroup = $this->memberGroup->where(['id'=>$id])->first();
+        if(!$memberGroup){
+            return Response::create([
+                'message'  => '该用户组不存在',
+                'status_code'   => 500
+            ]);
+        }
+        if($memberGroup->is_suggest == 1){
+            return Response::create([
+                'message'  => '该用户组推荐中无法删除,请关闭推荐后删除',
+                'status_code'   => 500
+            ]);
+        }
+        DB::beginTransaction();
+        try{
+            $res = $this->memberGroup->where('id',$id)->delete();
+            if($res){
+                $this->memberGroupInfo->where('member_group_id',$id)->delete();
+            }
+            if(!$res){
+                return Response::create([
+                    'message'  => '删除失败',
+                    'status_code'   => 500
+                ]);
+            }
+            DB::commit();
+            return Response::create();
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('删除推荐用户分组:'.$exception->getMessage());
+            return Response::create([
+                'message'  => '删除推荐用户分组,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+
+    }
+    //删除内容
+    public function deleteMemberInfo($id){
+        $res = $this->memberGroupInfo->where('id',$id)->delete();
+        if(!$res){
+            return Response::create([
+                'message'  => '删除失败',
+                'status_code'   => 500
+            ]);
+        }
+        return Response::create();
+    }
+    public function setIsSuggest($request){
+        $memberGroup = $this->memberGroup->where('id',$request['id'])->first();
+        if(!$memberGroup){
+            return Response::create([
+                'message'  => '该分组不存在',
+                'status_code'   => 500
+            ]);
+        }
+        DB::beginTransaction();
+        try{
+            if($request['is_suggest'] == 1){
+                $_memberGroup = $this->memberGroup->where(['is_suggest'=>1])->first();
+                if($_memberGroup){
+                    $this->memberGroup->where(['id'=>$_memberGroup->id])->update(['is_suggest'=>0]);
+                }
+            }
+            $memberGroup->is_suggest = $request['is_suggest'];
+            $memberGroup->save();
+            DB::commit();
+            return Response::create();
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('设置推荐用户分组:'.$exception->getMessage());
+            return Response::create([
+                'message'  => '设置推荐用户分组,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+    //设置排序
+    public function setSort($request){
+        $memberGroup = $this->memberGroup->where('id',$request['id'])->first();
+        if(!$memberGroup){
+            return Response::create([
+                'message'  => '该分组不存在',
+                'status_code'   => 500
+            ]);
+        }
+        DB::beginTransaction();
+        try{
+            if(!empty($request['member_info'])){
+                $memberInfo = json_decode($request['member_info']);
+                foreach ($memberInfo as $key=>$value){
+                    $this->memberGroupInfo->where('id',$value->id)->update(['sort'=>$value->sort]);
+                }
+            }
+            DB::commit();
+            return Response::create();
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('设置推荐用户分组内容排序:'.$exception->getMessage());
+            return Response::create([
+                'message'  => '设置推荐用户分组内容排序,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+
+    }
+}

+ 176 - 0
app/Repositories/V2/VideoGroupRepository.php

@@ -0,0 +1,176 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-12
+ * Time: 10:10
+ */
+
+namespace App\Repositories\V2;
+
+
+use App\Models\VideoGroup;
+use App\Models\VideoGroupInfo;
+use Dingo\Api\Http\Response;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Database\QueryException;
+use Illuminate\Support\Facades\Log;
+
+class VideoGroupRepository {
+    public function __construct(VideoGroup $videoGroup,VideoGroupInfo $videoGroupInfo) {
+        $this->videoGroup = $videoGroup;
+        $this->videoGroupInfo = $videoGroupInfo;
+    }
+    //列表
+    public function index($request){
+        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
+        $where = [];
+        if(isset($request['name'])){
+            $where[] = ['name', 'like', "%{$request['name']}%"];
+        }
+        return $this->videoGroup->where($where)->paginate($perPage);
+    }
+    //详情
+    public function view($request){
+        return $this->videoGroup->where(['id'=>$request['id']])->first();
+    }
+    //创建
+    public function create($request){
+        $videoGroup = $this->videoGroup->where(['name'=>$request['name']])->first();
+        if($videoGroup){
+            return Response::create([
+                'message'  => '该分组已存在',
+                'status_code'   => 500
+            ]);
+        }
+        $data = [
+            'name' => $request['name'],
+            'status' => 1,
+        ];
+        DB::beginTransaction();
+        try{
+            $this->videoGroup->create($data);
+            DB::commit();
+            return Response::create();
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('新增热门视频分组:'.$exception->getMessage());
+            return Response::create([
+                'message'  => '新增热门视频失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+    //编辑
+    public function edit($request){
+        $videoGroup = $this->videoGroup->where(['id'=>$request['id']])->first();
+        if(!$videoGroup){
+            return Response::create([
+                'message'  => '该分组不存在',
+                'status_code'   => 500
+            ]);
+        }
+        $videoGroup->name = $request['name'];
+        DB::beginTransaction();
+        try{
+            $group = $videoGroup->save();
+            if(is_array($request['video_info'])){
+                foreach ($request['video_info'] as $key=>$value){
+                    $this->videoGroupInfo->where('id',$value['id'])->update(['sort'=>$value['sort']]);
+                }
+            }
+            DB::commit();
+            return Response::create();
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('新增热门视频分组:'.$exception->getMessage());
+            return Response::create([
+                'message'  => '新增热门视频失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+    //删除内容
+    public function delete($id){
+        DB::beginTransaction();
+        try{
+            $res = $this->videoGroup->where('id',$id)->delete();
+            if($res){
+                $this->videoGroupInfo->where('video_group_id',$id)->delete();
+            }
+            if(!$res){
+                return Response::create([
+                    'message'  => '删除失败',
+                    'status_code'   => 500
+                ]);
+            }
+            DB::commit();
+            return Response::create();
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('删除热门视频分组:'.$exception->getMessage());
+            return Response::create([
+                'message'  => '删除热门视频失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+
+    }
+    //视频详情
+    public function videoList($video_group_id){
+       return $this->videoGroupInfo->where(['video_group_id'=>$video_group_id])->get();
+    }
+
+    //添加分组视频
+    public function addVideoInfo($request){
+        $videoGroup = $this->videoGroup->where(['id'=>$request['video_group_id']])->first();
+        if(!$videoGroup){
+            return Response::create([
+                'message'  => '该分组不存在',
+                'status_code'   => 500
+            ]);
+        }
+        $data = [
+            'video_group_id'=>$request['video_group_id'],
+            'post_id'=>$request['post_id']
+        ];
+        $info = $this->videoGroupInfo->where($data)->first();
+        if($info){
+            return Response::create([
+                'message'  => '该内容已添加',
+                'status_code'   => 500
+            ]);
+        }
+        $res = $this->videoGroupInfo->create($data);
+        if(!$res){
+            return Response::create([
+                'message'  => '添加失败',
+                'status_code'   => 500
+            ]);
+        }
+        return Response::create();
+    }
+    //删除内容
+    public function deleteVideoInfo($id){
+        $res = $this->videoGroupInfo->where('id',$id)->delete();
+        if(!$res){
+            return Response::create([
+                'message'  => '删除失败',
+                'status_code'   => 500
+            ]);
+        }
+        return Response::create();
+    }
+    //列表
+    public function VideoInfoIndex($request){
+        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
+        $where = [];
+        if (isset($request['video_group_id'])) {
+            $where[] = ['video_group_id', $request['video_group_id']];
+        }
+        return $this->videoGroupInfo->where($where)->paginate($perPage);
+    }
+}

+ 51 - 0
app/Transformers/DetailMemberGroupInfoTransformer.php

@@ -0,0 +1,51 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-12
+ * Time: 19:15
+ */
+
+namespace App\Transformers;
+use App\Models\MemberGroup;
+use League\Fractal\TransformerAbstract;
+use Illuminate\Support\Carbon;
+use Tymon\JWTAuth\Facades\JWTAuth;
+
+class DetailMemberGroupInfoTransformer extends TransformerAbstract{
+    public function transform(MemberGroup $memberGroup)
+    {
+        $memberList = [];
+        foreach ($memberGroup->mgi as $key=>$value){
+            $member = $this->getUser($value->uid);
+            $value['uid'] = $member['uid'];
+            $value['username'] = $member['username'];
+            $value['avatar'] = $member['avatar'];
+            $value['type'] = $member['type'];
+            $value['post_count'] = $member['post_count'];
+            $value['share_count'] = $member['share_count'];
+            $value['fans_count'] = $member['fans_count'];
+            $memberList[] = $value;
+        }
+        return [
+            'id' => $memberGroup['id'],
+            'name' => $memberGroup['name'],
+            'is_suggest' => $memberGroup['is_suggest'],
+            'created_at' => Carbon::parse($memberGroup['created_at'])->toDateTimeString(),
+            'member_list'=>$memberList,
+        ];
+    }
+    public function getUser($id) {
+        try {
+            $url = config("customer.manage_service_url").'/user/memberView';
+            //$url = 'https://manage.dev.caihongxingqiu.com/user/memberView';
+            $array = [
+                'json' => ['uid'=>$id], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+            ];
+            $res = http($url,$array,true,'get');
+            return $res;
+        } catch (\Exception $e) {
+            return [];
+        }
+    }
+}

+ 28 - 0
app/Transformers/DetailTopicGroupTransformer.php

@@ -0,0 +1,28 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-10
+ * Time: 18:47
+ */
+namespace App\Transformers;
+use App\Models\TopicGroup;
+use League\Fractal\TransformerAbstract;
+use Illuminate\Support\Carbon;
+
+class DetailTopicGroupTransformer extends TransformerAbstract{
+    public function transform(TopicGroup $topicGroup)
+    {
+        $topic = [];
+        foreach ($topicGroup->ct as $key=>$value){
+            $topic[] = $value;
+        }
+        return [
+            'id' => $topicGroup['id'],
+            'name' => $topicGroup['name'],
+            'created_at' => Carbon::parse($topicGroup['created_at'])->toDateTimeString(),
+            'topic_list'=>$topic,
+            'topic_count'=>count($topic)
+        ];
+    }
+}

+ 53 - 0
app/Transformers/DetailVideoGroupTansformer.php

@@ -0,0 +1,53 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-12
+ * Time: 10:45
+ */
+
+namespace App\Transformers;
+use App\Models\VideoGroup;
+use League\Fractal\TransformerAbstract;
+use Illuminate\Support\Carbon;
+use Tymon\JWTAuth\Facades\JWTAuth;
+
+class DetailVideoGroupTansformer extends TransformerAbstract{
+    public function transform(VideoGroup $videoGroup)
+    {
+        $video = [];
+//        foreach ($videoGroup->vgi as $key=>$value){
+//            $videoInfo = $this->getVideo($value->post_id);
+//            if($videoInfo){
+//                $value['username']= $videoInfo['username'];
+//                $value['topic']= $videoInfo['topic'];
+//                $value['video']= $videoInfo['video'];
+//                $value['pv']= $videoInfo['pv'];
+//                $value['praise_count']= $videoInfo['praise_count'];
+//            }
+//            $video[] = $value;
+//        }
+
+        return [
+            'id' => $videoGroup['id'],
+            'name' => $videoGroup['name'],
+            'created_at' => Carbon::parse($videoGroup['created_at'])->toDateTimeString(),
+            'video_list'=>$video
+        ];
+    }
+//    public function getVideo($id) {
+//        try {
+//           // $sign = generateSign(['id'=>$id], config('customer.app_secret'));
+//           // $url = config("customer.manage_service_url").'/community/post/detail';
+//            $url = 'https://manage.dev.caihongxingqiu.com/community/post/detail';
+//            //$url = 'http://localhost:8080/userInfo';
+//            $array = [
+//                'json' => ['id'=>$id], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+//            ];
+//            $res = http($url,$array,true,'get');
+//            return $res;
+//        } catch (\Exception $e) {
+//            return [];
+//        }
+//    }
+}

+ 28 - 0
app/Transformers/FloorTransformer.php

@@ -0,0 +1,28 @@
+<?php
+namespace App\Transformers;
+/**
+ * Created by PhpStorm.
+ * User: durong
+ * Date: 2019/6/11
+ * Time: 下午3:22
+ */
+
+use App\Models\Floor;
+use League\Fractal\TransformerAbstract;
+
+class FloorTransformer extends TransformerAbstract
+{
+
+    public function transform(Floor $floor)
+    {
+        return [
+            'id'  => $floor['id'],
+            'name'  => $floor['name'],
+            'floor_location'    => $floor['floor_location'],
+            'group_ids'    => $floor['group_ids'],
+            'floor_type'    => $floor['floor_type'],
+            'is_open'    => $floor['is_open'],
+            'updated_at'    => date($floor['updated_at']),
+        ];
+    }
+}

+ 30 - 0
app/Transformers/MemberGroupTansformer.php

@@ -0,0 +1,30 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-12
+ * Time: 17:39
+ */
+
+namespace App\Transformers;
+use App\Models\MemberGroup;
+use League\Fractal\TransformerAbstract;
+use Illuminate\Support\Carbon;
+
+class MemberGroupTansformer extends TransformerAbstract{
+    public function transform(MemberGroup $memberGroup)
+    {
+        $memberList = [];
+        foreach ($memberGroup->mgi as $key=>$value){
+            $memberList[] = $value;
+        }
+        return [
+            'id' => $memberGroup['id'],
+            'name' => $memberGroup['name'],
+            'is_suggest' => $memberGroup['is_suggest'],
+            'created_at' => Carbon::parse($memberGroup['created_at'])->toDateTimeString(),
+            'member_list'=>$memberList,
+            'member_list'=>count($memberList)
+        ];
+    }
+}

+ 28 - 0
app/Transformers/TopicGroupTransformer.php

@@ -0,0 +1,28 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-10
+ * Time: 18:47
+ */
+namespace App\Transformers;
+use App\Models\TopicGroup;
+use League\Fractal\TransformerAbstract;
+use Illuminate\Support\Carbon;
+
+class TopicGroupTransformer extends TransformerAbstract{
+    public function transform(TopicGroup $topicGroup)
+    {
+        $topic = [];
+        foreach ($topicGroup->ct as $key=>$value){
+            $topic[] = $value->topic_id;
+        }
+        return [
+            'id' => $topicGroup['id'],
+            'name' => $topicGroup['name'],
+            'created_at' => Carbon::parse($topicGroup['created_at'])->toDateTimeString(),
+            'topic_list'=>$topic,
+            'topic_count'=>count($topic)
+        ];
+    }
+}

+ 49 - 0
app/Transformers/VideoGroupInfoTransformer.php

@@ -0,0 +1,49 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-12
+ * Time: 14:51
+ */
+
+namespace App\Transformers;
+
+use App\Models\VideoGroupInfo;
+use Illuminate\Support\Facades\Log;
+use League\Fractal\TransformerAbstract;
+use Illuminate\Support\Carbon;
+use Tymon\JWTAuth\Facades\JWTAuth;
+
+
+class VideoGroupInfoTransformer extends TransformerAbstract {
+    public function transform(VideoGroupInfo $videoGroupInfo) {
+        $videoInfo = $this->getVideo($videoGroupInfo['post_id']);
+        return [
+            'id' => $videoGroupInfo['id'],
+            'video_group_id' => $videoGroupInfo['name'],
+            'created_at' => Carbon::parse($videoGroupInfo['created_at'])->toDateTimeString(),
+            'post_id' => $videoGroupInfo['post_id'],
+            'sort' => $videoGroupInfo['sort'],
+            'username' => isset($videoInfo['username']) ? $videoInfo['username'] : '',
+            'topic' => isset($videoInfo['topic']) ? $videoInfo['topic'] : '',
+            'video' => isset($videoInfo['video']) ? $videoInfo['video'] : '',
+            'img' => isset($videoInfo['img']) ? $videoInfo['img'] : '',
+            'pv' => isset($videoInfo['pv']) ? $videoInfo['pv'] : '',
+            'praise_count' => isset($videoInfo['praise_count'])? $videoInfo['praise_count']:'',
+        ];
+    }
+
+    public function getVideo($id) {
+        try {
+            $url = config("customer.manage_service_url") . '/community/post/detail';
+            //$url = 'https://manage.dev.caihongxingqiu.com/community/post/detail';
+            $array = [
+                'json' => ['id' => $id], 'query' => [], 'http_errors' => false, 'headers' => ['Authorization' => "Bearer " . JWTAuth::getToken()]
+            ];
+            $res = http($url, $array, true, 'get');
+            return $res;
+        } catch (\Exception $e) {
+            return [];
+        }
+    }
+}

+ 32 - 0
app/Transformers/VideoGroupTransformer.php

@@ -0,0 +1,32 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-12
+ * Time: 10:27
+ */
+
+namespace App\Transformers;
+
+
+use App\Models\VideoGroup;
+use League\Fractal\TransformerAbstract;
+use Illuminate\Support\Carbon;
+
+
+class VideoGroupTransformer extends TransformerAbstract {
+
+    public function transform(VideoGroup $videoGroup)
+    {
+        $video = [];
+        foreach ($videoGroup->vgi as $key=>$value){
+            $video[] = $value;
+        }
+        return [
+            'id' => $videoGroup['id'],
+            'name' => $videoGroup['name'],
+            'created_at' => Carbon::parse($videoGroup['created_at'])->toDateTimeString(),
+            'video_count'=>count($video)
+        ];
+    }
+}

+ 4 - 0
bootstrap/app.php

@@ -30,6 +30,7 @@ $app->configure('auth');
 $app->configure('jwt');
 $app->configure('database');
 $app->configure('constants');
+$app->configure('customer');
 
 /*
 |--------------------------------------------------------------------------
@@ -52,6 +53,9 @@ $app->singleton(
     App\Console\Kernel::class
 );
 
+$app->middleware([
+    \App\Http\Middleware\SqlMiddleware::class
+]);
 /*
 |--------------------------------------------------------------------------
 | Register Middleware

+ 2 - 1
composer.json

@@ -15,7 +15,8 @@
         "multilinguals/apollo-client": "^0.1.2",
         "vlucas/phpdotenv": "^3.3",
         "illuminate/redis": "^5.8",
-        "predis/predis": "^1.1"
+        "predis/predis": "^1.1",
+        "guzzlehttp/guzzle": "^6.3"
     },
     "require-dev": {
         "fzaninotto/faker": "^1.4",

+ 1 - 0
database/migrations/2019_04_28_025052_create_cms_subject_product_table.php

@@ -16,6 +16,7 @@ class CreateCmsSubjectProductTable extends Migration
         Schema::create('cms_subject_product', function (Blueprint $table) {
             $table->bigIncrements('id');
             $table->integer('sort')->comment('商品排序');
+            $table->integer('product_id')->comment('商品ID');
             $table->timestamps();
             $table->softDeletes();
         });

+ 0 - 32
database/migrations/2019_04_28_072523_add_cms_subject_product_table.php

@@ -1,32 +0,0 @@
-<?php
-
-use Illuminate\Support\Facades\Schema;
-use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Database\Migrations\Migration;
-
-class AddCmsSubjectProductTable extends Migration
-{
-    /**
-     * Run the migrations.
-     *
-     * @return void
-     */
-    public function up()
-    {
-        Schema::table('cms_subject_product', function (Blueprint $table) {
-            $table->integer('subject_id')->comment('专题ID');
-        });
-    }
-
-    /**
-     * Reverse the migrations.
-     *
-     * @return void
-     */
-    public function down()
-    {
-        Schema::table('cms_subject_product', function (Blueprint $table) {
-            $table->dropColumn(['subject_id']);
-        });
-    }
-}

+ 0 - 32
database/migrations/2019_04_28_084605_add_product_id_cms_subject_product_table.php

@@ -1,32 +0,0 @@
-<?php
-
-use Illuminate\Support\Facades\Schema;
-use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Database\Migrations\Migration;
-
-class AddProductIdCmsSubjectProductTable extends Migration
-{
-    /**
-     * Run the migrations.
-     *
-     * @return void
-     */
-    public function up()
-    {
-        Schema::table('cms_subject_product', function (Blueprint $table) {
-            $table->string('product_id',20)->comment('商品ID');
-        });
-    }
-
-    /**
-     * Reverse the migrations.
-     *
-     * @return void
-     */
-    public function down()
-    {
-        Schema::table('cms_subject_product', function (Blueprint $table) {
-            //
-        });
-    }
-}

+ 0 - 32
database/migrations/2019_04_28_095947_update_product_id_cms_subject_product_table.php

@@ -1,32 +0,0 @@
-<?php
-
-use Illuminate\Support\Facades\Schema;
-use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Database\Migrations\Migration;
-
-class UpdateProductIdCmsSubjectProductTable extends Migration
-{
-    /**
-     * Run the migrations.
-     *
-     * @return void
-     */
-    public function up()
-    {
-        Schema::table('cms_subject_product', function (Blueprint $table) {
-            $table->integer('product_id')->comment('商品ID')->change();
-        });
-    }
-
-    /**
-     * Reverse the migrations.
-     *
-     * @return void
-     */
-    public function down()
-    {
-        Schema::table('cms_subject_product', function (Blueprint $table) {
-            $table->dropColumn(['product_id']);
-        });
-    }
-}

+ 37 - 0
database/migrations/2019_06_04_021845_create_cms_floor_table.php

@@ -0,0 +1,37 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateCmsFloorTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('cms_floor', function (Blueprint $table) {
+            $table->increments('id');
+            $table->string('name', 20)->comment('社区-楼层名称');
+            $table->integer('floor_location')->comment('社区-楼层位置');
+            $table->string('group_ids')->nullable()->comment('社区-楼层类型对应的组id');
+            $table->tinyInteger('floor_type')->nullable()->comment('社区-楼层类型:0:banner;1.推荐关注;2.热门视频;3.推荐话题');
+            $table->tinyInteger('is_open')->default(0)->comment('社区-是否开启:0.否,1.是');
+            $table->timestamps();
+            $table->softDeletes();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('cms_floor');
+    }
+}

+ 34 - 0
database/migrations/2019_06_04_023010_create_member_group_table.php

@@ -0,0 +1,34 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateMemberGroupTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('member_group', function (Blueprint $table) {
+            $table->bigIncrements('id');
+            $table->string("name")->nullable()->comment('分组名称');
+            $table->tinyInteger('is_suggest')->default(0)->comment('是否推荐 0不推荐 1推荐');
+            $table->softDeletes();
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('member_group');
+    }
+}

+ 35 - 0
database/migrations/2019_06_04_023032_create_member_group_info_table.php

@@ -0,0 +1,35 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateMemberGroupInfoTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('member_group_info', function (Blueprint $table) {
+            $table->bigIncrements('id');
+            $table->integer('member_group_id')->nullable()->default(0)->comment('用户分组id');
+            $table->integer('uid')->nullable()->default(0)->comment('用户id');
+            $table->integer('sort')->nullable()->default(999)->comment('排序');
+            $table->timestamps();
+            $table->softDeletes();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('member_group_info');
+    }
+}

+ 36 - 0
database/migrations/2019_06_04_023038_create_topic_group_table.php

@@ -0,0 +1,36 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateTopicGroupTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('topic_group', function (Blueprint $table) {
+            $table->bigIncrements('id');
+            $table->string('name')->nullable()->comment('话题名称');
+            $table->tinyInteger('status')->default(1)->comment('状态 1正常 0禁用');
+            $table->string('img')->nullable()->comment('图片');
+            $table->string('desc')->comment('介绍');
+            $table->timestamps();
+            $table->softDeletes();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('topic_group');
+    }
+}

+ 34 - 0
database/migrations/2019_06_04_023048_create_video_group_table.php

@@ -0,0 +1,34 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateVideoGroupTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('video_group', function (Blueprint $table) {
+            $table->bigIncrements('id');
+            $table->string('name')->nullable()->comment('视频分组id');
+            $table->integer('status')->default(1)->comment('状态 1正常 0禁用');
+            $table->timestamps();
+            $table->softDeletes();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('video_group');
+    }
+}

+ 35 - 0
database/migrations/2019_06_04_023052_create_video_group_info_table.php

@@ -0,0 +1,35 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateVideoGroupInfoTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('video_group_info', function (Blueprint $table) {
+            $table->bigIncrements('id');
+            $table->integer('video_group_id')->nullable()->comment('视频分组id');
+            $table->integer('post_id')->nullable()->comment('内容id');
+            $table->integer('sort')->default(999)->comment('排序');
+            $table->softDeletes();
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('video_group_info');
+    }
+}

+ 34 - 0
database/migrations/2019_06_04_023107_create_activities_table.php

@@ -0,0 +1,34 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateActivitiesTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('activities', function (Blueprint $table) {
+            $table->bigIncrements('id');
+            $table->string('name')->nullable()->comment('活动名称');
+            $table->text('countent')->nullable()->comment('内容');
+            $table->timestamps();
+            $table->softDeletes();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('activities');
+    }
+}

+ 34 - 0
database/migrations/2019_06_11_165445_create_topic_group_info_table.php

@@ -0,0 +1,34 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateTopicGroupInfoTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('topic_group_info', function (Blueprint $table) {
+            $table->bigIncrements('id');
+            $table->integer('topic_group_id')->nullable()->comment('话题分组id');
+            $table->integer('topic_id')->nullable()->comment('话题id');
+            $table->timestamps();
+            $table->softDeletes();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('topic_gourp_info');
+    }
+}

+ 56 - 0
database/seeds/CmsFloorTableSeeder.php

@@ -0,0 +1,56 @@
+<?php
+
+use Illuminate\Database\Seeder;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Carbon;
+
+class CmsFloorTableSeeder extends Seeder
+{
+    /**
+     * Run the database seeds.
+     *
+     * @return void
+     */
+    public function run()
+    {
+        $date = Carbon::now()->toDateTimeString();
+        DB::table('cms_floor')->insert([
+            [
+                'name'   => '第一个floor',
+                'floor_location'    => 1,
+                'group_ids'    => '',
+                'floor_type'    => 0,
+                'is_open'    => 1,
+                'created_at'    => $date,
+                'updated_at'    => $date
+            ],
+            [
+                'name'   => '第二个floor',
+                'floor_location'    => 1,
+                'group_ids'    => '',
+                'floor_type'    => 1,
+                'is_open'    => 1,
+                'created_at'    => $date,
+                'updated_at'    => $date
+            ],
+            [
+                'name'   => '第三个floor',
+                'floor_location'    => 1,
+                'group_ids'    => '',
+                'floor_type'    => 2,
+                'is_open'    => 1,
+                'created_at'    => $date,
+                'updated_at'    => $date
+            ],
+            [
+                'name'   => '第四个floor',
+                'floor_location'    => 1,
+                'group_ids'    => '',
+                'floor_type'    => 3,
+                'is_open'    => 1,
+                'created_at'    => $date,
+                'updated_at'    => $date
+            ]
+        ]);
+    }
+}

+ 1 - 0
database/seeds/DatabaseSeeder.php

@@ -12,5 +12,6 @@ class DatabaseSeeder extends Seeder
     public function run()
     {
         // $this->call('UsersTableSeeder');
+        $this->call('CmsFloorTableSeeder');
     }
 }

+ 69 - 1
routes/api.php

@@ -66,7 +66,7 @@ $api->version('v1', [
         $api->post('/template/create', 'CmsContentTemplateController@create');
         //列表修改模板状态
         $api->put('/template/edit', 'CmsContentTemplateController@edit');
-        //列表修改模板名称状态
+        //列表修改模板名称
         $api->put('/template/editName', 'CmsContentTemplateController@editTemplateName');
 
         //banner设置
@@ -90,4 +90,72 @@ $api->version('v1', [
         //获取对应城市模板名称
         $api->get('templateName', 'CmsContentTemplateSetController@templateName');
     });
+
+});
+
+$api->version('v1', [
+    'namespace' => 'App\Http\Controllers\V2',
+], function ($api) {
+
+    $api->group([
+        'prefix' => 'v2'
+    ], function ($api) {
+        $api->group(['middleware' => 'jwt.chxq_auth'], function ($api) {
+            //banner专题计数
+            $api->post('countSubject', 'CmsContentTemplateSetController@countSubject');
+
+            //楼层列表
+            $api->get('/floor/index', 'FloorController@index');
+            //新增楼层
+            $api->post('/floor/create', 'FloorController@create');
+            //编辑楼层
+            $api->put('/floor/edit', 'FloorController@edit');
+            //修改楼层状态
+            $api->put('/floor/editStatus', 'FloorController@editStatus');
+            //关闭banner修改楼层状态
+            $api->post('floorBind', 'FloorController@floorBind');
+            //新增推荐话题
+            $api->post('topicGroup', 'TopicGroupController@create');
+            //推荐话题组列表
+            $api->get('topicGroup', 'TopicGroupController@index');
+            //推荐话题组编辑
+            $api->put('topicGroup', 'TopicGroupController@edit');
+            //详情
+            $api->get('topicGroup/view', 'TopicGroupController@view');
+            //删除
+            $api->delete('topicGroup', 'TopicGroupController@delete');
+            //新增视频组
+            $api->post('videoGroup', 'VideoGroupController@create');
+            //视频组列表
+            $api->get('videoGroup', 'VideoGroupController@index');
+            //视频组详情
+            $api->get('videoGroup/view', 'VideoGroupController@view');
+            //修改
+            $api->put('videoGroup', 'VideoGroupController@edit');
+            //新增视频组内容
+            $api->post('videoGroup/AddVideoInfo', 'VideoGroupController@addVideoInfo');
+            //删除内容
+            $api->delete('videoGroup/DeleteVideoInfo', 'VideoGroupController@deleteVideoInfo');
+            //删除分组
+            $api->delete('videoGroup', 'VideoGroupController@delete');
+            //推荐用户列表
+            $api->get('memberGroup', 'MemberGroupController@index');
+            //推荐用户详情
+            $api->get('memberGroup/view', 'MemberGroupController@view');
+            //推荐用户添加
+            $api->post('memberGroup', 'MemberGroupController@create');
+            //推荐用户修改
+            $api->put('memberGroup', 'MemberGroupController@edit');
+            //推荐用户删除
+            $api->delete('memberGroup', 'MemberGroupController@delete');
+            //删除用户组内容
+            $api->delete('memberGroup/DeleteMemberInfo', 'MemberGroupController@deleteMemberInfo');
+            //设置推荐
+            $api->put('memberGroup/SetIsSuggest', 'MemberGroupController@setIsSuggest');
+            //设置内容排序
+            $api->put('memberGroup/SetInfoSort', 'MemberGroupController@setSort');
+
+        });
+
+    });
 });