Browse Source

关键词和关注回复关闭后不回复内容

zqwang 1 year ago
parent
commit
5d8335a10f

+ 24 - 1
modules/Channel/Services/WechatOpenPlatform/WechatOpenPlatformService.php

@@ -5,13 +5,16 @@ namespace Modules\Channel\Services\WechatOpenPlatform;
 use EasyWeChat\Factory;
 use EasyWeChat\OpenPlatform\Application;
 use EasyWeChat\OpenPlatform\Message;
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Query\Builder;
 use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\DB;
 use Modules\Channel\Models\WechatAuthorizationInfo;
 use Modules\Common\Errors\Errors;
 use Modules\Common\Exceptions\CommonBusinessException;
+use Modules\Common\Services\BaseService;
 
-class WechatOpenPlatformService
+class WechatOpenPlatformService extends BaseService
 {
     public static function getComponentInfoByCompanyUid($companyUid) {
         $componentInfo = DB::table('wechat_open_platform_infos')
@@ -89,4 +92,24 @@ class WechatOpenPlatformService
             'is_enabled'  =>  1,
         ])->first();
     }
+
+    /**
+     *  获取公众号的refreshToken
+     * name:getAppInfoById
+     * @param $id 公众号授权id
+     * @return Model|Builder|object|null
+     */
+    public static function getAppInfoById($id)
+    {
+        $info =   DB::table('wechat_authorization_infos')
+            ->where([
+                'id' =>  $id,
+                'is_enabled'  =>  1,
+            ])->first();
+        if (is_empty($info)){
+            self::throwErrMsg("公众号不存在或已取消授权");
+        }
+        return  $info;
+
+    }
 }

+ 15 - 1
modules/WechatPlatform/Http/Controllers/WechatMenuController.php

@@ -10,9 +10,9 @@
 namespace Modules\WechatPlatform\Http\Controllers;
 
 use Catch\Base\CatchController;
-use Catch\Exceptions\FailedException;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\DB;
+use Modules\Channel\Services\WechatOpenPlatform\WechatOpenPlatformService;
 use Modules\Manage\Enmus\MiniprogramType;
 use Modules\User\Http\Controllers\UserTrait;
 use Modules\WechatPlatform\Http\Requests\WechatMenuRequest;
@@ -86,5 +86,19 @@ class WechatMenuController extends CatchController
 
     private function checkMenuItem($sub)
     {
+        $type = getProp($sub,'type');
+        if (!in_array($type,["click",'miniprogram','scancode_waitmsg'])){
+            return ['status' => 0,'msg' =>  "类型非法"];
+        }
+
+    }
+
+    public function test(){
+        $info = WechatOpenPlatformService::getAppInfoById(8);
+        $componentInfo = WechatOpenPlatformService::getComponentInfoByAppid($info->component_appid);
+        $openPlatform = WechatOpenPlatformService::buildApplication($componentInfo);
+        $app = $openPlatform->officialAccount($info->authorizer_appid, getProp($info,'authorizer_refresh_token'));
+        unset($appInfo);
+        return $app->menu->list();
     }
 }

+ 4 - 0
modules/WechatPlatform/Services/WechatKeywordsService.php

@@ -284,6 +284,10 @@ class WechatKeywordsService extends BaseService
         if (is_empty($info)) {
             return "";
         }
+        $set = self::getConfig($info->user_id,$info->puser_id,$info->miniprogram_id);
+        if (getProp($set['data'] == 0)){
+            return  '';
+        }
         WechatAccountKeywordLog::where('id', $info->id)->increment('send_total', 1);
         WechatKeywords::where('id', $info->weacht_keyworld_id)->increment('send_total', 1);
         return $info->content;

+ 9 - 0
modules/WechatPlatform/Services/WechatMenuService.php

@@ -13,7 +13,16 @@ use Modules\Common\Services\BaseService;
 
 class WechatMenuService extends BaseService
 {
+    /**
+     *  添加菜单
+     * name: addMenu
+     * @param $param
+     * date 2023/07/11 11:38
+     */
+    public static function addMenu($param)
+    {
 
+    }
 
 
 }

+ 4 - 0
modules/WechatPlatform/Services/WechatSubscribeService.php

@@ -281,6 +281,10 @@ class WechatSubscribeService extends BaseService
         if (is_empty($info)) {
             return "";
         }
+        $set = self::getConfig($info->user_id,$info->puser_id,$info->miniprogram_id);
+        if (getProp($set['data'] == 0)){
+            return  '';
+        }
         WechatAccountSubscribeDetail::where('id', $info->id)->increment('send_total', 1);
         WechatSubscribeMsg::where('id', $info->weacht_keyworld_id)->increment('send_total', 1);
 

+ 19 - 0
modules/WechatPlatform/routes/route.php

@@ -5,6 +5,7 @@ use Illuminate\Support\Facades\Route;
 use Modules\WechatPlatform\Http\Controllers\KFMessageController;
 use Modules\WechatPlatform\Http\Controllers\WechatAuthorizationInfoController;
 use Modules\WechatPlatform\Http\Controllers\CommonController;
+use Modules\WechatPlatform\Http\Controllers\WechatMenuController;
 use Modules\WechatPlatform\Http\Controllers\WechatSubscribeController;
 use Modules\WechatPlatform\Http\Controllers\WechatKeywordsController;
 
@@ -75,4 +76,22 @@ Route::prefix('wechatPlatform')->group(function(){
         Route::any("auth_list/{id}",[WechatSubscribeController::class,'authList']);
     });
 
+    // 公众号菜单
+    Route::prefix('menu')->group(function (){
+      // 列表
+        Route::any("list",[WechatMenuController::class,'list']);
+        // 添加
+        Route::post('add',[WechatMenuController::class,'add']);
+        // 编辑
+        Route::post('edit/{id}',[WechatMenuController::class,'edit']);
+        // 详情
+        Route::any('detail/{id}',[WechatMenuController::class,'detail']);
+        // 删除
+        Route::any('del',[WechatMenuController::class,'del']);
+        // 配置公众号
+        Route::post('allocation/{id}',[WechatMenuController::class,'allocation']);
+        // 公众号配置选择项
+        Route::any("auth_list/{id}",[WechatMenuController::class,'authList']);
+    });
+
 });