Bläddra i källkod

Merge remote-tracking branch 'origin/develop' into develop

wzq 5 år sedan
förälder
incheckning
c3fce4ab56

+ 72 - 0
app/Http/Controllers/Behavior/RegisteredRecordController.php

@@ -0,0 +1,72 @@
+<?php
+namespace App\Http\Controllers\Behavior;
+use App\Http\Controllers\Controller;
+use App\Models\RegisteredRecord;
+use App\Repositories\Behavior\RegisteredRecordRepository;
+use App\Transformers\Behavior\RegisteredRecordTransformer;
+use League\Fractal\Manager;
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
+use League\Fractal\Resource\Collection;
+use Illuminate\Http\Request;
+/**
+ * Created by PhpStorm.
+ * User: durong
+ * Date: 2019/6/14
+ * Time: 上午11:30
+ */
+
+class RegisteredRecordController extends Controller
+{
+    public function __construct(RegisteredRecordRepository $registeredRecordRepository)
+    {
+        $this->registeredRecordRepository = $registeredRecordRepository;
+    }
+
+    /**
+     * 新用户注册账本列表
+     */
+    public function index(Request $request)
+    {
+        $registeredList = $this->registeredRecordRepository->lists($request->all());
+//        if (count($registeredList)>0) {
+//            foreach ($registeredList as $k => $v) {
+//                $v['behavior_absolute_progression'] =1;
+//            }
+        $fractal = new Manager();
+        $resource = new Collection($registeredList, new RegisteredRecordTransformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($registeredList));
+        $data = $fractal->createData($resource)->toArray();
+        $data['extra'] = [
+            'filters' => [
+                'id',
+                'uid',
+                'created_at',
+                'absolute_progression',
+                'trigger_type'
+            ],
+            'columns' => [
+                'id',
+                'created_at',
+                'virus_behavior_id',
+                'uid',
+                'trigger_time',
+                'physical_exertion',
+                'trigger_type',
+                'generation_type',
+                'absolute_progression',
+                'superior_uid',
+                'release_status',
+                'generation_quantity',
+                'quantity_issued',
+                'behavior_cycle_type',
+                'name',
+                'relative_series',
+                'is_open',
+                'bahavior_created_at',
+                'behavior_absolute_progression'
+
+            ]
+        ];
+        return $data;
+    }
+}

+ 15 - 5
app/Http/Controllers/Topic/TopicController.php

@@ -73,7 +73,7 @@ class TopicController extends Controller {
     //添加
     public function create(Request $request){
         $validator = Validator::make($request->all(), [
-            'name' => 'required|string|max:12',
+            'name' => 'required|string|max:20',
             'img' => 'required|url',
             'desc' => 'required|string|max:100',
             'category_ids' => 'required|string',
@@ -86,8 +86,8 @@ class TopicController extends Controller {
     //编辑
     public function edit(Request $request){
         $validator = Validator::make($request->all(), [
-            'id'=>'integer|required|max:12',
-            'name' => 'required|string|max:12',
+            'id'=>'integer|required',
+            'name' => 'required|string|max:20',
             'img' => 'required|url',
             'desc' => 'required|string|max:100',
             'category_ids' => 'required|string',
@@ -100,7 +100,7 @@ class TopicController extends Controller {
     //开启
     public function isOpen(Request $request) {
         $validator = Validator::make($request->all(), [
-            'id' => 'integer|required|max:12',
+            'id' => 'integer|required',
             'is_open' => ['required', Rule::in(0, 1)]
         ]);
         if ($validator->fails()) {
@@ -111,7 +111,7 @@ class TopicController extends Controller {
     //开启
     public function setStatus(Request $request) {
         $validator = Validator::make($request->all(), [
-            'id' => 'integer|required|max:12',
+            'id' => 'integer|required',
             'type'=>['required', Rule::in(1, 2)],
             'status' => ['required', Rule::in(0, 1)],
         ]);
@@ -120,4 +120,14 @@ class TopicController extends Controller {
         }
         return  $this->topicRepository->update($request->all());
     }
+    //获取多个话题
+    public function getTopic(Request $request){
+        $validator = Validator::make($request->all(), [
+            'ids' => 'required',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->topicRepository->getTopics($request['ids']);
+    }
 }

+ 4 - 0
app/Models/Behavior.php

@@ -19,4 +19,8 @@ class Behavior extends Model
      */
     protected $fillable = ['virus_behavior_id','name','behavior_level','behavior_cycle_type','behavior_action_id','behavior_cycle','is_open'];
 
+    public function RegisteredRecord()
+    {
+        return $this->hasMany('App\Models\RegisteredRecord','virus_behavior_id','virus_behavior_id');
+    }
 }

+ 24 - 0
app/Models/RegisteredRecord.php

@@ -0,0 +1,24 @@
+<?php
+namespace App\Models;
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * Created by PhpStorm.
+ * User: durong
+ * Date: 2019/6/14
+ * Time: 上午11:25
+ */
+
+class RegisteredRecord extends Model
+{
+    //新用户注册账本表
+    protected $table = 'registered_accounts_record';
+    protected $guarded = [];
+
+    //
+    public function Behavior()
+    {
+        return $this->belongsTo('App\Models\Behavior','virus_behavior_id','virus_behavior_id');
+    }
+
+}

+ 51 - 0
app/Repositories/Behavior/RegisteredRecordRepository.php

@@ -0,0 +1,51 @@
+<?php
+namespace App\Repositories\Behavior;
+use App\Models\RegisteredRecord;
+
+/**
+ * Created by PhpStorm.
+ * User: durong
+ * Date: 2019/6/14
+ * Time: 下午1:58
+ */
+
+class RegisteredRecordRepository
+{
+    public function __construct(RegisteredRecord $registeredRecord)
+    {
+        $this->registeredRecord = $registeredRecord;
+    }
+
+    public function lists($request)
+    {
+        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
+        $where = [];
+        if(isset($request['id'])){
+            $where[] = ['id', $request['id']];
+        }
+        if(isset($request['uid'])){
+            $where[] = ['uid', $request['uid']];
+        }
+        if(isset($request['absolute_progression'])){
+            $where[] = ['absolute_progression', $request['absolute_progression']];
+        }
+        if(isset($request['trigger_type'])){
+            $where[] = ['trigger_type', $request['trigger_type']];
+        }
+
+        return $this->registeredRecord
+            ->where($where)
+            ->where(function($query) use ($request){
+                if(isset($request['created_at'])){
+                    $time = explode('_', $request['created_at']);
+                    $query->whereBetween('created_at', $time);
+                }
+            })
+            ->orderBy('id','desc')
+            ->paginate($perPage);
+
+
+    }
+
+
+}

+ 4 - 0
app/Repositories/TopicRepository.php

@@ -179,4 +179,8 @@ class TopicRepository {
     public function view($request){
         return $this->topic->where('id', $request['id'])->first();
     }
+    //获取多个话题
+    public function getTopics($ids = []){
+        return $this->topic->whereIn('id', $ids)->select('id','name')->get();
+    }
 }

+ 37 - 0
app/Transformers/Behavior/RegisteredRecordTransformer.php

@@ -0,0 +1,37 @@
+<?php
+namespace App\Transformers\Behavior;
+/**
+ * Created by PhpStorm.
+ * User: durong
+ * Date: 2019/6/14
+ * Time: 上午11:34
+ */
+use App\Models\RegisteredRecord;
+use League\Fractal\TransformerAbstract;
+
+class RegisteredRecordTransformer extends TransformerAbstract
+{
+    public function transform(RegisteredRecord $registeredList)
+    {
+        return [
+            'id' => $registeredList['id'],
+            'created_at' => date($registeredList['created_at']),
+            'virus_behavior_id' => $registeredList['virus_behavior_id'],
+            'uid' => $registeredList['uid'],
+            'trigger_time' => $registeredList['trigger_time'],
+            'physical_exertion' => $registeredList['physical_exertion'],
+            'trigger_type' => $registeredList['trigger_type'],
+            'absolute_progression' => $registeredList['absolute_progression'],
+            'superior_uid' => $registeredList['superior_uid'],
+            'release_status' => $registeredList['release_status'],
+            'generation_quantity' => $registeredList['generation_quantity'],
+            'quantity_issued' => $registeredList['quantity_issued'],
+            'behavior_cycle_type' => $registeredList->Behavior->behavior_cycle_type,
+            'name' => $registeredList->Behavior->name,
+            'relative_series' => $registeredList->Behavior->relative_series,
+            'is_open' => $registeredList->Behavior->is_open,
+            'bahavior_created_at' => date($registeredList->Behavior->created_at),
+            'behavior_absolute_progression' => $registeredList['behavior_absolute_progression'],//行为绝对级数
+        ];
+    }
+}

+ 33 - 0
database/migrations/2019_06_14_164201_add_behavior_value_to_general_ledger_record_table.php

@@ -0,0 +1,33 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddBehaviorValueToGeneralLedgerRecordTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('general_ledger_record', function (Blueprint $table) {
+            $table->tinyInteger('behavior_value')->nullable()->comment('行为值:0:未点赞(收藏);1.已点赞(收藏)');
+
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('general_ledger_record', function (Blueprint $table) {
+            //
+        });
+    }
+}

+ 38 - 0
database/migrations/2019_06_14_192326_create_table_collect.php

@@ -0,0 +1,38 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateTableCollect extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('post_collect', function (Blueprint $table) {
+            $table->bigIncrements('id');
+            $table->integer('uid')
+                ->index('uid')
+                ->comment('用户ID');
+
+            $table->integer('post_id')
+                ->default(0)
+                ->comment('帖子id');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('post_collect');
+    }
+}

+ 38 - 0
database/migrations/2019_06_14_192526_create_table_post_like.php

@@ -0,0 +1,38 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateTablePostLike extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('post_like', function (Blueprint $table) {
+            $table->bigIncrements('id');
+            $table->integer('uid')
+                ->index('uid')
+                ->comment('用户ID');
+
+            $table->integer('post_id')
+                ->default(0)
+                ->comment('帖子id');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('post_like');
+    }
+}

+ 4 - 0
routes/api.php

@@ -82,6 +82,8 @@ $api->version('v1', [
             $api->put('topic/topicIsOpen', 'TopicController@isOpen');
             //设置推荐 &热门话题
             $api->put('topic/topicSetStatus', 'TopicController@setStatus');
+            //获取多个话题
+            $api->get('topic/getTopic', 'TopicController@getTopic');
         });
 
     });
@@ -99,6 +101,8 @@ $api->version('v1', [
         //行为日志列表
         $api->get('behavior/log', 'LogController@index');
 
+        //用户注册账单列表
+        $api->get('registeredRecord/list', 'RegisteredRecordController@index');
     });
 
 });