Browse Source

路由切换支持

liuzejian 1 year ago
parent
commit
0bab11da69

+ 1 - 1
modules/Common/config/common.php

@@ -14,7 +14,7 @@ return [
      * 模块和小程序type值的映射
      */
     'moduleMap' => [
-        '1' => 'weixin',
+        '1' => 'wechatPlatform',
         '2' => 'douyin',
     ],
     /**

+ 0 - 1
modules/Permissions/Middlewares/PermissionGate.php

@@ -16,7 +16,6 @@ class PermissionGate
 
         /* @var User $user */
         $user = $request->user(getGuardName());
-
         if (! $user->can()) {
             throw new PermissionForbidden();
         }

+ 12 - 7
modules/WechatPlatform/Http/KFMessageController.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace Modules\WechatPlatform\Http;
+namespace Modules\WechatPlatform\Http\Controllers;
 
 use Catch\Base\CatchController;
 use Illuminate\Foundation\Validation\ValidatesRequests;
@@ -24,7 +24,7 @@ class KFMessageController extends CatchController
         $gzhid = $request->input('gzh_id');
         $result = DB::table('wechat_kf_messages')
             ->where([
-                ['is_enable' , '=', 1],
+                ['is_enabled' , '=', 1],
                 ['user_id', '=', $this->getLoginUserId()]
             ])->when($name, function ($query, $name){
                 return $query->where('name', 'like', '%'. $name. '%');
@@ -57,12 +57,17 @@ class KFMessageController extends CatchController
             $item->status_str = WechatPlatformConstService::KF_MESSAGE_STATUS_MAPPER[$item->status] ?? '';
             $item->message_content_arr = \json_decode($item->message_content, true);
             $item->message_type = WechatPlatformConstService::KF_MESSAGE_TYPE_MAPPER[$item->message_type] ?? '';
+            // todo:完善
+            $item->uc_str = '';
         }
 
         return $result;
     }
 
     private function strGzhId($gzh_ids, $gzhs) {
+        if(!$gzh_ids){
+            return '';
+        }
         $gzh_names = collect();
         foreach (explode('#', trim($gzh_ids, '#')) as $gzh_id) {
             $gzh_names->push($gzhs->get($gzh_id)->nick_name ?? 'ID:'. $gzh_id);
@@ -78,7 +83,7 @@ class KFMessageController extends CatchController
     public function add(Request $request) {
         $this->validate($request, [
             'name' => 'required', 'message_type' => 'required|in:1', 'message_content' => 'required|array',
-            'u_type' => 'required|in:1,2', 'uc_unique_key' => 'required', 'send_at' => 'required|date_format:Y-m-d H:i:s',
+            'u_type' => 'required|in:1,2', 'uc_unique_key' => 'required_if:u_type,2', 'send_at' => 'required|date_format:Y-m-d H:i:s',
         ]);
         $now = date('Y-m-d H:i:s');
         DB::table('wechat_kf_messages')
@@ -86,8 +91,8 @@ class KFMessageController extends CatchController
                 'name' => $request->input('name'),
                 'message_type' => $request->input('message_type'),
                 'message_content' => \json_encode($request->input('message_content'), JSON_UNESCAPED_UNICODE),
-                'u_type' => $request->input('user_type'),
-                'uc_unique_key' => $request->input('user_classify_unique_key'),
+                'u_type' => $request->input('u_type'),
+                'uc_unique_key' => $request->input('uc_unique_key', ''),
                 'send_at' => $request->input('send_at'),
                 'status' => WechatPlatformConstService::KF_MESSAGE_STATUS_PRE_SEND,
                 'user_id' => $this->getLoginUserId(),
@@ -117,8 +122,8 @@ class KFMessageController extends CatchController
                 'name' => $request->input('name'),
                 'message_type' => $request->input('message_type'),
                 'message_content' =>  \json_encode($request->input('message_content'), JSON_UNESCAPED_UNICODE),
-                'u_type' => $request->input('user_type'),
-                'uc_unique_key' => $request->input('user_classify_unique_key'),
+                'u_type' => $request->input('u_type'),
+                'uc_unique_key' => $request->input('uc_unique_key', ''),
                 'send_at' => $request->input('send_at'),
                 'updated_at' => $now,
             ]);

+ 7 - 2
modules/WechatPlatform/routes/route.php

@@ -1,10 +1,15 @@
 <?php
 
 use Illuminate\Support\Facades\Route;
-use Modules\WechatPlatform\Http\KFMessageController;
+use Modules\WechatPlatform\Http\Controllers\KFMessageController;
 
 Route::prefix('wechatPlatform')->group(function(){
-    Route::prefix('kfMessage')->group(function(){
+    Route::prefix('kfMessage')->middleware('roleCheck:optimizer')->group(function(){
         Route::get('list', [KFMessageController::class, 'list']);
+        Route::post('add', [KFMessageController::class, 'add']);
+        Route::post('stop', [KFMessageController::class, 'stop']);
+        Route::post('delete', [KFMessageController::class, 'delete']);
+        Route::post('updateContent', [KFMessageController::class, 'updateContent']);
+        Route::post('updateGZH', [KFMessageController::class, 'updateGZH']);
     });
 });

+ 3 - 3
tests/UsedTestCase.php

@@ -13,11 +13,11 @@ abstract class UsedTestCase extends BaseTestCase
     {
         parent::setUp(); // TODO: Change the autogenerated stub
         $tokenInfo = $this->post('http://localhost/api/login', [
-            'email' => 'catch@admin.com',
+//            'email' => 'catch@admin.com',
             'remember' => false,
-            'email' => 'xiaoli@qq.com',
+//            'email' => 'xiaoli@qq.com',
             'password' => 'catchadmin',
-//            'email' => 'aa4@test.com',
+            'email' => 'aa4@test.com',
         ])->json();
         $this->token = $tokenInfo['data']['token'];
     }

+ 70 - 0
tests/WechatPlatform/Http/KFMessageControllerTest.php

@@ -0,0 +1,70 @@
+<?php
+
+namespace Tests\WechatPlatform\Http;
+
+use Modules\WechatPlatform\Http\Controllers\KFMessageController;
+use PHPUnit\Framework\TestCase;
+use Tests\UsedTestCase;
+
+class KFMessageControllerTest extends UsedTestCase
+{
+
+    public function testAdd()
+    {
+        $STR =  <<<AAA
+文本内容<a href="http://www.qq.com" data-miniprogram-appid="appid" data-miniprogram-path="pages/index/index">点击跳小程序</a>
+AAA;
+
+        $res = $this->withHeaders([
+            'Authorization' => 'Bearer '. $this->token,
+        ])->json('post','http://localhost/api/wechatPlatform/kfMessage/add', [
+            'name' => 'liuzj-test-'. uniqid(),
+            'send_at' => date('Y-m-d H:i:s', strtotime('tomorrow')),
+            'message_type' => 1,
+            'u_type' => 1,
+            'message_content' => [
+                ['text' => '普通文本👌🏻'],
+                ['text' => $STR]
+            ]
+        ]);
+        $this->dumpJson($res);
+    }
+
+    public function testList()
+    {
+        $res = $this->withHeaders([
+            'Authorization' => 'Bearer '. $this->token,
+        ])->json('get','http://localhost/api/wechatPlatform/kfMessage/list', [
+        ]);
+        $this->dumpJson($res);
+    }
+
+    public function testupdateContent()
+    {
+        $res = $this->withHeaders([
+            'Authorization' => 'Bearer '. $this->token,
+        ])->json('get','http://localhost/api/wechatPlatform/kfMessage/list', [
+        ]);
+        $this->dumpJson($res);
+    }
+
+    public function teststop()
+    {
+        $res = $this->withHeaders([
+            'Authorization' => 'Bearer '. $this->token,
+        ])->json('post','http://localhost/api/wechatPlatform/kfMessage/stop', [
+            'id' => 3
+        ]);
+        $this->dumpJson($res);
+    }
+
+    public function testdelete()
+    {
+        $res = $this->withHeaders([
+            'Authorization' => 'Bearer '. $this->token,
+        ])->json('post','http://localhost/api/wechatPlatform/kfMessage/delete', [
+            'id' => 3
+        ]);
+        $this->dumpJson($res);
+    }
+}