wzq 5 年 前
コミット
aceea3e0e3

+ 27 - 1
app/Http/Controllers/ConfigController.php

@@ -90,7 +90,33 @@ class ConfigController extends Controller
                 'use_background' =>[
                     '1' => '社区后台',
                     '0' => 'CMS'
-                ]
+                ],
+                //通知群体
+                'notice_groups' =>[
+                    '1' => '原始用户',
+                    '0' => '全部',
+                    '2' => '正式用户',
+                ],
+                //消息类型
+                'message_type' =>[
+                    'star' => '星球活动消息',
+                    'system' => '系统通知消息'
+                ],
+                //展示类型
+                'message_show_type' =>[
+                    'only_show' => '纯展示',
+                    'user' => '用户',
+                    'post' => '内容',
+                    'activity' => '活动',
+                    'topic' => '话题',
+                ],
+                //消息状态
+                'message_status' =>[
+                    '1' => '发送中',
+                    '0' => '未发送',
+                    '2' => '已发送未隐藏',
+                    '3' => '已发送并隐藏',
+                ],
         ];
     }
 }

+ 21 - 4
app/Http/Controllers/MessageRuleController.php

@@ -9,6 +9,7 @@
 namespace App\Http\Controllers;
 
 use App\Repositories\MessageRuleRepository;
+use App\Transformers\MessageRuleDetailTransformer;
 use App\Transformers\MessageRuleListTransformer;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Validator;
@@ -65,8 +66,8 @@ class MessageRuleController extends Controller
             'title' => 'required|string|max:20',
             'notice_groups' => 'required|string|max:31',
             'message_type' => ['required',Rule::in('star', 'system')],
-            'show_type' => ['required',Rule::in('only_show', 'user', 'post', 'activity', 'topic')],
-            'activity_url' => 'required_unless:show_type,only_show|string|max:64',
+            'message_show_type' => ['required',Rule::in('only_show', 'user', 'post', 'activity', 'topic')],
+            'activity_url' => 'required_unless:message_show_type,only_show|string|max:64',
             'cover' => 'required|url',
             'send_time' => 'nullable|date',
             'activity_time' => 'nullable|string|max:24',
@@ -87,8 +88,8 @@ class MessageRuleController extends Controller
             'title' => 'required|string|max:20',
             'notice_groups' => 'required|string|max:31',
             'message_type' => ['required',Rule::in('star', 'system')],
-            'show_type' => ['required',Rule::in('only_show', 'user', 'post', 'activity', 'topic')],
-            'activity_url' => 'required_unless:show_type,only_show|string|max:64',
+            'message_show_type' => ['required',Rule::in('only_show', 'user', 'post', 'activity', 'topic')],
+            'activity_url' => 'required_unless:message_show_type,only_show|string|max:64',
             'cover' => 'required|url',
             'send_time' => 'nullable|date',
             'activity_time' => 'nullable|string|max:24',
@@ -98,4 +99,20 @@ class MessageRuleController extends Controller
         }
         return  $this->messageRuleRepository->update($request->all());
     }
+
+    /**
+     * 消息规则详情
+     */
+    public function detail(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|exists:message_rule'
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+
+        $post = $this->messageRuleRepository->detail($request->all());
+        return $this->response->item($post, new MessageRuleDetailTransformer());
+    }
 }

+ 10 - 0
app/Repositories/MessageRuleRepository.php

@@ -68,6 +68,7 @@ class MessageRuleRepository
             'title' => $request['title'],
             'notice_groups' => $noticeGroups,
             'message_type' => $request['message_type'],
+            'message_show_type' => $request['message_show_type'],
             'activity_url' => $request['activity_url']??'',
             'cover' => $request['cover'],
             'message_status' => 0,
@@ -124,6 +125,7 @@ class MessageRuleRepository
         $message->title = $request['title'];
         $message->notice_groups = $noticeGroups;
         $message->message_type = $request['message_type'];
+        $message->message_show_type = $request['message_show_type'];
         $message->cover = $request['cover'];
 
         if($request['activity_url']){
@@ -158,4 +160,12 @@ class MessageRuleRepository
             ]);
         }
     }
+
+    /**
+     * 消息规则详情
+     */
+    public function detail($request)
+    {
+        return $this->messageRule->find($request['id']);
+    }
 }

+ 33 - 0
app/Transformers/MessageRuleDetailTransformer.php

@@ -0,0 +1,33 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019/6/12
+ * Time: 15:05
+ */
+
+namespace App\Transformers;
+
+use App\Models\MessageRule;
+use Illuminate\Support\Carbon;
+use League\Fractal\TransformerAbstract;
+
+class MessageRuleDetailTransformer extends TransformerAbstract
+{
+    public function transform(MessageRule $messageRule)
+    {
+        return [
+            'id' => $messageRule['id'],
+            'title' => $messageRule['title'],
+            'message_type' => $messageRule['message_type'],
+            'cover' => $messageRule['cover'],
+            'send_time' => $messageRule['send_time'] ? Carbon::parse($messageRule['send_time'])->toDateTimeString():'',
+            'sent_count' => $messageRule['sent_count'],
+            'open_count' => $messageRule['open_count'],
+            'notice_groups' => $messageRule['notice_groups'],
+            'message_status' => $messageRule['message_status'],
+            'message_show_type' => $messageRule['message_show_type'],
+            'activity_time' => $messageRule['activity_time'],
+        ];
+    }
+}

+ 30 - 0
database/migrations/2019_06_12_072636_modify_show_type_to_table_message_rule.php

@@ -0,0 +1,30 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class ModifyShowTypeToTableMessageRule extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        DB::statement("ALTER TABLE message_rule CHANGE  COLUMN `show_type` `message_show_type` varchar(16) NOT NULL DEFAULT 'only_show' COMMENT '展示类型:only_show纯展示;user用户;post内容;activity活动;topic话题'");
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('table_message_rule', function (Blueprint $table) {
+            //
+        });
+    }
+}

+ 1 - 1
resources/lang/zh-CN/validation.php

@@ -103,7 +103,7 @@ return [
         'title' => '标题',
         'notice_groups' => '通知群体',
         'message_type' => '消息类型',
-        'show_type' => '展示类型',
+        'message_show_type' => '展示类型',
         'activity_url' => '活动链接',
         'cover' => '封面图',
         'send_time' => '发送时间',

+ 2 - 0
routes/api.php

@@ -62,6 +62,8 @@ $api->version('v1', [
         $api->post('message', 'MessageRuleController@create');
         //编辑消息规则
         $api->put('message', 'MessageRuleController@update');
+        //消息规则详情
+        $api->get('message/detail', 'MessageRuleController@detail');
 
     });
     //配置文件