|
|
@@ -14,71 +14,72 @@ class WxMenuController extends BaseController
|
|
|
//更新菜单
|
|
|
public function actionReplace()
|
|
|
{
|
|
|
- //xhWxMenuService::delMenuList($this->merchantId);
|
|
|
- $now = time();
|
|
|
- $date = date("Y-m-d H:i:s", $now);
|
|
|
-
|
|
|
- $submitToWx = isset($post['submitToWx']) ? $post['submitToWx'] : '';
|
|
|
- $level1String = '0◇◇0◇◇商城◇◇0◇◇1◇◇0◆◆1◇◇0◇◇申请接入◇◇1◇◇http://o.huahb.com/join/apply◇◇0◆◆2◇◇1◇◇申请公众号◇◇1◇◇http://o.huahb.com/main/apply◇◇0◆◆';
|
|
|
- $level2String = '0◇◇2◇◇子菜单名2◇◇0◇◇2◇◇0◆◆1◇◇2◇◇子菜单名◇◇0◇◇2◇◇0◆◆';
|
|
|
- $level1String = rtrim($level1String, '◆◆');
|
|
|
- $level1 = explode('◆◆', $level1String);
|
|
|
- $parentIdList = [];//记录一级菜单的数据库id
|
|
|
+ $menu = Yii::$app->request->post('menu');
|
|
|
+
|
|
|
+ $menu =
|
|
|
+
|
|
|
+ [
|
|
|
+
|
|
|
+ ['name' => '商城', 'menuOption' => 0, 'menuOrder' => 1, 'replyType' => 0, 'replyUrl' => 'http://www.baidu.com/', 'children' => [['name' => '鲜花类别', 'menuOption' => 0, 'menuOrder' => 1, 'replyUrl' => 'http://www.baidu.com/', 'replyType' => 0]]],
|
|
|
+
|
|
|
+ ['name' => '商城', 'menuOption' => 0, 'menuOrder' => 2, 'replyType' => 0,'replyUrl' => 'http://www.baidu.com/', 'children' => []],
|
|
|
+
|
|
|
+ ['name' => '商城', 'menuOption' => 0, 'menuOrder' => 3, 'replyType' => 0,'replyUrl' => 'http://www.baidu.com/', 'children' => []],
|
|
|
+
|
|
|
+ ];
|
|
|
+
|
|
|
|
|
|
- foreach ($level1 as $key => $val) {//一级菜单数据整理
|
|
|
- $arr = explode('◇◇', $val);
|
|
|
- $menuOrder = $arr[0];//一级菜单序号
|
|
|
- $wxMenuOption = $arr[3];//选项
|
|
|
- $wxMenuContent = $arr[4];//内容
|
|
|
+ //删除原有菜单
|
|
|
+ xhWxMenuService::delMenuList($this->merchantId);
|
|
|
+
|
|
|
+ $date = date("Y-m-d H:i:s");
|
|
|
+ foreach ($menu as $key => $val) {//一级菜单数据整理
|
|
|
+ $parentOrder = $val['menuOrder'];
|
|
|
+ $parentWxMenuOption = $val['menuOption'];
|
|
|
+ $parentName = $val['name'];
|
|
|
$addData = [];
|
|
|
$addData['parentId'] = 0;
|
|
|
$addData['merchantId'] = $this->merchantId;
|
|
|
- $addData['menuOrder'] = $menuOrder;
|
|
|
- $addData['menuOption'] = $wxMenuOption;
|
|
|
- $addData['hasSonMenu'] = $arr[1];
|
|
|
- $addData['name'] = $arr[2];
|
|
|
- $addData['menuKey'] = $this->merchantId . '_' . $menuOrder;
|
|
|
+ $addData['menuOrder'] = $parentOrder;
|
|
|
+ $addData['menuOption'] = $parentWxMenuOption;
|
|
|
+ $addData['hasSonMenu'] = isset($val['children']) && !empty($val['children']) ? 1 : 0;
|
|
|
+ $addData['name'] = $parentName;
|
|
|
+ $addData['menuKey'] = $this->merchantId . '_' . $parentOrder;
|
|
|
$addData['createTime'] = $date;
|
|
|
- $addData['replyType'] = $arr[5];
|
|
|
+ $addData['replyType'] = $val['replyType'];
|
|
|
+ $addData['replyUrl'] = $val['replyUrl'];
|
|
|
if (!empty($wxMenuContent)) {
|
|
|
- $formatData = xhWxMenuService::getFormatData($wxMenuContent, $wxMenuOption, $this->merchant);
|
|
|
+ $formatData = xhWxMenuService::getFormatData($wxMenuContent, $parentWxMenuOption, $this->merchant);
|
|
|
$addData = array_merge($addData, $formatData);
|
|
|
}
|
|
|
$return = xhWxMenuService::add($addData);
|
|
|
- $parentIdList[$menuOrder] = $return['id'];
|
|
|
- }
|
|
|
-
|
|
|
- if (!empty($level2String)) {
|
|
|
- $level2String = rtrim($level2String, '◆◆');
|
|
|
- $level2 = explode('◆◆', $level2String);
|
|
|
- foreach ($level2 as $key => $val) {//二级菜单数据整理
|
|
|
- $arr = explode('◇◇', $val);
|
|
|
- $menuOrder = $arr[0];
|
|
|
- $parentMenuOrder = $arr[1];
|
|
|
- $wxMenuOption = $arr[3];
|
|
|
- $wxMenuContent = $arr[4];
|
|
|
- $addData['parentId'] = $parentIdList[$parentMenuOrder];
|
|
|
- $addData['merchantId'] = $this->merchantId;
|
|
|
- $addData['menuOrder'] = $menuOrder;
|
|
|
- $addData['menuOption'] = $wxMenuOption;
|
|
|
- $addData['name'] = $arr[2];
|
|
|
- $addData['menuKey'] = $this->merchantId . '_' . $parentMenuOrder . '_' . $menuOrder;
|
|
|
- $addData['createTime'] = $date;
|
|
|
- $addData['replyType'] = $arr[5];
|
|
|
- if (!empty($wxMenuContent)) {
|
|
|
- $formatData = xhWxMenuService::getFormatData($wxMenuContent, $wxMenuOption, $this->merchant);
|
|
|
- $addData = array_merge($addData, $formatData);
|
|
|
+ $parentId = $return['id'];
|
|
|
+ if (isset($val['children']) && !empty($val['children'])) {
|
|
|
+ foreach ($val['children'] as $childKey => $childValue) {
|
|
|
+ $childOrder = $childValue['menuOrder'];
|
|
|
+ $childWxMenuOption = $childValue['menuOption'];
|
|
|
+ $childName = $childValue['name'];
|
|
|
+ $addChildData = [];
|
|
|
+ $addChildData['parentId'] = $parentId;
|
|
|
+ $addChildData['merchantId'] = $this->merchantId;
|
|
|
+ $addChildData['menuOrder'] = $childOrder;
|
|
|
+ $addChildData['menuOption'] = $childWxMenuOption;
|
|
|
+ $addChildData['name'] = $childName;
|
|
|
+ $addChildData['menuKey'] = $this->merchantId . '_' . $parentOrder . '_' . $childOrder;
|
|
|
+ $addChildData['createTime'] = $date;
|
|
|
+ $addChildData['replyType'] = $childValue['replyType'];
|
|
|
+ $addChildData['replyUrl'] = $childValue['replyUrl'];
|
|
|
+ if (!empty($wxMenuContent)) {
|
|
|
+ $formatData = xhWxMenuService::getFormatData($wxMenuContent, $childWxMenuOption, $this->merchant);
|
|
|
+ $addChildData = array_merge($addChildData, $formatData);
|
|
|
+ }
|
|
|
+ xhWxMenuService::add($addChildData);
|
|
|
}
|
|
|
- xhWxMenuService::add($addData);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- if (empty($submitToWx)) {
|
|
|
- util::successInfo();
|
|
|
- }
|
|
|
$wxMenu = xhWxMenuService::getMenuList($this->merchantId);
|
|
|
if (empty($wxMenu)) {
|
|
|
- util::failInfo();
|
|
|
+ util::fail('没有找到菜单');
|
|
|
}
|
|
|
$replyType = configDict::getConfig('replyType');
|
|
|
$menuData = [];
|
|
|
@@ -101,14 +102,15 @@ class WxMenuController extends BaseController
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
$subData['button'] = $menuData;
|
|
|
$wxUtil = new weixinUtil($this->merchant);
|
|
|
- $json = $wxUtil->userMenuToWeiXin($subData);
|
|
|
- $r = json_decode($json, true);
|
|
|
- if ($r['errcode'] == 0) {
|
|
|
- util::ok('操作成功,5分钟后生效');
|
|
|
+ $jsonData = $wxUtil->userMenuToWeiXin($subData);
|
|
|
+ $respond = json_decode($jsonData, true);
|
|
|
+ if ($respond['errcode'] == 0) {
|
|
|
+ util::ok('提交成功,5分钟后生效');
|
|
|
}
|
|
|
- util::fail('发布失败');
|
|
|
+ util::fail('提交失败');
|
|
|
}
|
|
|
|
|
|
}
|