wesmiler 2 anni fa
parent
commit
f0ae052cac

+ 13 - 0
app/Http/Controllers/Api/v1/MemberController.php

@@ -6,6 +6,7 @@ use App\Http\Controllers\Api\webApp;
 use App\Http\Validator\MemberValidator;
 use App\Http\Validator\MemberValidator;
 use App\Services\Api\ImChatService;
 use App\Services\Api\ImChatService;
 use App\Services\Api\MemberCollectService;
 use App\Services\Api\MemberCollectService;
+use App\Services\Api\MemberNodeService;
 use App\Services\Api\MemberService;
 use App\Services\Api\MemberService;
 use App\Services\Api\MessageService;
 use App\Services\Api\MessageService;
 use App\Services\Api\VideoCollectService;
 use App\Services\Api\VideoCollectService;
@@ -230,4 +231,16 @@ class MemberController extends webApp
             return showJson(MemberService::make()->getError(),true, $result);
             return showJson(MemberService::make()->getError(),true, $result);
         }
         }
     }
     }
+
+    /**
+     * 节点会员列表
+     * @return array
+     */
+    public function nodes()
+    {
+        $params =request()->post();
+        $pageSize = request()->post('pageSize', 6);
+        $datas = MemberNodeService::make()->getDataList($params, $pageSize,'', $this->userId);
+        return showJson(1010, true, $datas);
+    }
 }
 }

+ 24 - 0
app/Models/MemberNodeModel.php

@@ -0,0 +1,24 @@
+<?php
+// +----------------------------------------------------------------------
+// | LARAVEL8.0 框架 [ LARAVEL ][ RXThinkCMF ]
+// +----------------------------------------------------------------------
+// | 版权所有 2017~2021 LARAVEL研发中心
+// +----------------------------------------------------------------------
+// | 官方网站: http://www.laravel.cn
+// +----------------------------------------------------------------------
+// | Author: laravel开发员 <laravel.qq.com>
+// +----------------------------------------------------------------------
+
+namespace App\Models;
+
+/**
+ * 节点会员-模型
+ * @author laravel开发员
+ * @since 2020/11/11
+ * @package App\Models
+ */
+class MemberNodeModel extends BaseModel
+{
+    // 设置数据表
+    protected $table = 'member_nodes';
+}

+ 91 - 0
app/Services/Api/MemberNodeService.php

@@ -0,0 +1,91 @@
+<?php
+// +----------------------------------------------------------------------
+// | LARAVEL8.0 框架 [ LARAVEL ][ RXThinkCMF ]
+// +----------------------------------------------------------------------
+// | 版权所有 2017~2021 LARAVEL研发中心
+// +----------------------------------------------------------------------
+// | 官方网站: http://www.laravel.cn
+// +----------------------------------------------------------------------
+// | Author: laravel开发员 <laravel.qq.com>
+// +----------------------------------------------------------------------
+
+namespace App\Services\Api;
+
+use App\Models\AccountLogModel;
+use App\Models\MemberNodeModel;
+use App\Models\MemberSettingModel;
+use App\Services\BaseService;
+use App\Services\RedisService;
+
+/**
+ * 节点会员服务管理-服务类
+ * @author laravel开发员
+ * @since 2020/11/11
+ * @package App\Services\Common
+ */
+class MemberNodeService extends BaseService
+{
+    protected static $instance=null;
+
+    /**
+     * 构造函数
+     * @author laravel开发员
+     * @since 2020/11/11
+     * MemberSettingService constructor.
+     */
+    public function __construct()
+    {
+        $this->model = new MemberNodeModel();
+    }
+
+    /**
+     * 静态入口
+     * @return static|null
+     */
+    public static function make()
+    {
+        if (!self::$instance) {
+            self::$instance = (new static());
+        }
+        return self::$instance;
+    }
+
+    /**
+     * 列表数据
+     * @param $params
+     * @param int $pageSize
+     * @return array
+     */
+    public function getDataList($params, $pageSize = 15, $field = '', $userId=0)
+    {
+
+        $where = ['a.mark' => 1,'a.status'=>1];
+        $field = $field? $field : 'lev_a.id,lev_a.name,lev_a.price,lev_a.upgrade_level_id,lev_b.global_bonus_rate,lev_b.box_num as level_box_num,lev_a.limit_num,lev_a.box_num,lev_a.score_rate,lev_a.remark,lev_a.status';
+        $sortType = isset($params['sort_type']) ? $params['sort_type'] : 1;
+        $order = 'id asc';
+        if($sortType == 1){
+            $order = 'lev_a.id asc';
+        }
+        $list = $this->model->from('member_nodes as a')
+            ->leftJoin('member_level as b','b.id','=','a.upgrade_level_id')
+            ->where($where)
+            ->selectRaw($field)
+            ->orderByRaw($order)
+            ->paginate($pageSize > 0 ? $pageSize : 9999999);
+        $list = $list ? $list->toArray() : [];
+        if ($list) {
+            foreach ($list['data'] as &$item) {
+                // 是否已购买
+                $buyLogId = AccountLogModel::where(['user_id'=> $userId,'source_id'=>$item['id'],'type'=>4,'status'=>1,'mark'=>1])->value('id');
+                $item['buy_status'] = $buyLogId? 1 : 0;
+            }
+        }
+
+        return [
+            'pageSize' => $pageSize,
+            'total'    => isset($list['total']) ? $list['total'] : 0,
+            'list'     => isset($list['data']) ? $list['data'] : []
+        ];
+    }
+
+}

+ 3 - 0
routes/api.php

@@ -86,6 +86,9 @@ Route::prefix('v1')->group(function(){
     Route::post('/user/auth', [\App\Http\Controllers\Api\v1\MemberController::class, 'auth']);
     Route::post('/user/auth', [\App\Http\Controllers\Api\v1\MemberController::class, 'auth']);
     Route::post('/user/follow', [\App\Http\Controllers\Api\v1\MemberController::class, 'follow']);
     Route::post('/user/follow', [\App\Http\Controllers\Api\v1\MemberController::class, 'follow']);
     Route::post('/user/inviteList', [\App\Http\Controllers\Api\v1\MemberController::class, 'inviteList']);
     Route::post('/user/inviteList', [\App\Http\Controllers\Api\v1\MemberController::class, 'inviteList']);
+    Route::post('/user/nodes', [\App\Http\Controllers\Api\v1\MemberController::class, 'nodes']);
+    Route::post('/user/nodeBuy', [\App\Http\Controllers\Api\v1\MemberController::class, 'nodeBuy']);
+    Route::post('/user/upgrade', [\App\Http\Controllers\Api\v1\MemberController::class, 'upgrade']);
 
 
     // 关注的用户
     // 关注的用户
     Route::post('/collect/index', [\App\Http\Controllers\Api\v1\MemberCollectController::class, 'index']);
     Route::post('/collect/index', [\App\Http\Controllers\Api\v1\MemberCollectController::class, 'index']);