Sfoglia il codice sorgente

保存全局配置修改结构

zqwang 1 anno fa
parent
commit
53f4ae62e7

+ 14 - 0
modules/Common/Services/BaseService.php

@@ -49,4 +49,18 @@ class BaseService
             ['value' => 'miniprogram', 'name' => "小程序"],
         ];
     }
+
+    /**
+     * 微信公众号菜菜单系统类型
+     * name: getWechatMenuSystemType
+     * @return \string[][]
+     * date 2023/07/11 11:00
+     */
+    public static  function  getWechatMenuSystemType(): array
+    {
+        return [
+            ['value' => 'android', 'name' => "安卓"],
+            ['value' => 'ios', 'name' => "苹果"],
+        ];
+    }
 }

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

@@ -10,8 +10,13 @@
 namespace Modules\WechatPlatform\Http\Controllers;
 
 use Catch\Base\CatchController;
+use Catch\Exceptions\FailedException;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
+use Modules\Manage\Enmus\MiniprogramType;
 use Modules\User\Http\Controllers\UserTrait;
+use Modules\WechatPlatform\Http\Requests\WechatMenuRequest;
+use Modules\WechatPlatform\Services\WechatMenuService;
 
 
 class WechatMenuController extends CatchController
@@ -32,7 +37,54 @@ class WechatMenuController extends CatchController
     }
 
 
-    public function add(){
+    public function add(WechatMenuRequest $request)
+    {
+        $param  = $this->handelParam($request->validated());
+
+    }
 
+    // 处理参数
+    private function handelParam($param)
+    {
+        $info = DB::table('miniprogram')->where('id', $param['miniprogram_id'])->first();
+        if (empty($info)) {
+            WechatMenuService::throwErrMsg("小程序不正确");
+        }
+        if ($info->status != 1) {
+            WechatMenuService::throwErrMsg("此小程序暂不提供使用");
+        }
+        if ($info->type != MiniprogramType::WEIXIN->value()) {
+            WechatMenuService::throwErrMsg("关键词回复设置仅支持微信小程序");
+        }
+        $param['miniprogram_appid'] = $info->appid;
+        $info = DB::table('user_has_miniprograms')->where('uid', $this->getLoginUserId())->where('miniprogram_id', $param['miniprogram_id'])->where('is_enabled', 1)->value('id');
+        if (empty($info)) {
+            WechatMenuService::throwErrMsg("没有此小程序的使用权限");
+        }
+        $errs = "";
+        if (count($param['content']) >3){
+            WechatMenuService::throwErrMsg("底部菜单不能超过3个");
+        }
+        $menus = [];
+        foreach ($param['content'] as  $val){
+            $temp = ['name' => $val['name']];
+            if (getProp($val,'sub_button')){
+                // 有二级菜单
+                if (count($val['sub_button']) > 5){
+                    $errs .= getProp($val,'name')."的二级菜单超过5个";
+                    continue ;
+                }
+                foreach ($val['sub_button'] as   $sub){
+                    $res = $this->checkMenuItem($sub);
+                }
+            }else{
+                // 一级菜单
+                $res = $this->checkMenuItem($sub);
+            }
+        }
+    }
+
+    private function checkMenuItem($sub)
+    {
     }
 }

+ 61 - 0
modules/WechatPlatform/Http/Requests/WechatMenuRequest.php

@@ -0,0 +1,61 @@
+<?php
+/**
+ *
+ * @file:WechatMenuRequest.php
+ * @Date: 2023/7/11
+ * @Time: 10:49
+ */
+
+
+namespace Modules\WechatPlatform\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+use Modules\WechatPlatform\Services\WechatMenuService;
+
+class WechatMenuRequest extends FormRequest
+{
+    /**
+     * rules
+     *
+     * @return array
+     */
+    public function rules(): array
+    {
+        return [
+            'type' => [
+                "required",
+                function ($attribute, $value, $fail) {
+                    $types = array_column(WechatMenuService::getWechatMenuSystemType(), 'value');
+                    if (!in_array($value, $types)) {
+                        $fail("系统类型不正确!");
+                        exit();
+                    }
+                }
+            ],
+            'miniprogram_id' => [
+                'required',
+                'Integer',
+                "gt:0",
+            ],
+            "content" =>   "required|array",
+        ];
+    }
+
+
+    /**
+     * messages
+     *
+     * @return string[]
+     */
+    public function messages(): array
+    {
+        return [
+            'type.required' => '系统类型必须填写',
+            "miniprogram_id.required" => "小程序必须填写",
+            "content.required" => "菜单必须填写",
+            "content.array" => "菜单格式不正确",
+        ];
+    }
+}
+
+

+ 2 - 2
modules/WechatPlatform/Services/WechatKeywordsService.php

@@ -163,7 +163,7 @@ class WechatKeywordsService extends BaseService
             DB::rollBack();
             self::throwErrMsg('删除失败');
         }
-        return "操作成功";
+        return ['msg' => "操作成功"];
     }
 
     public static function allocation($id, $wxAuthIds)
@@ -260,7 +260,7 @@ class WechatKeywordsService extends BaseService
             $param
         );
         if ($res) {
-            return "操作成功";
+            return ['msg' => "操作成功"];
         }
         return "操作失败";
     }

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

@@ -0,0 +1,19 @@
+<?php
+/**
+ * 公众号菜单
+ * @file:WechatMenuService.php
+ * @Date: 2023/7/11
+ * @Time: 10:53
+ */
+
+
+namespace Modules\WechatPlatform\Services;
+
+use Modules\Common\Services\BaseService;
+
+class WechatMenuService extends BaseService
+{
+
+
+
+}

+ 2 - 2
modules/WechatPlatform/Services/WechatSubscribeService.php

@@ -53,7 +53,7 @@ class WechatSubscribeService extends BaseService
             $param
         );
         if($res){
-            return "操作成功";
+            return ['msg' => "操作成功"];
         }
         self::throwErrMsg("操作失败");
     }
@@ -62,7 +62,7 @@ class WechatSubscribeService extends BaseService
     {
         $res = WechatSubscribeMsg::create($param);
         if ($res) {
-            return "操作成功";
+            return ['msg' => "操作成功"];
         }
         self::throwErrMsg("操作失败");
     }