|
@@ -58,23 +58,26 @@ class WechatMenuService extends BaseService
|
|
|
];
|
|
|
WechatAccountMenuDetail::where('menu_id', $id)->update($data);
|
|
|
// 更新公众号菜单
|
|
|
- self::createWechatMenus($appIds);
|
|
|
+ self::createWechatMenus($appIds,$id);
|
|
|
return ['msg' => '操作成功'];
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 创建微信菜单
|
|
|
+ * 创建微信菜单
|
|
|
* name: createWechatMenus
|
|
|
* @param array $appIds
|
|
|
+ * @param $menuId
|
|
|
* @return bool
|
|
|
- * date 2023/07/12 07:16
|
|
|
+ * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
|
|
|
+ * @throws \GuzzleHttp\Exception\GuzzleException
|
|
|
+ * date 2023/07/12 14:29
|
|
|
*/
|
|
|
- private static function createWechatMenus(array $appIds)
|
|
|
+ private static function createWechatMenus(array $appIds,$menuId)
|
|
|
{
|
|
|
if (empty($appIds)) {
|
|
|
return true;
|
|
|
}
|
|
|
- $info = WechatAccountMenuDetail::query()->whereIn('id', $appIds)->get();
|
|
|
+ $info = WechatAccountMenuDetail::query()->whereIn('wechat_authorization_info_id', $appIds)->where('menu_id',$menuId)->get();
|
|
|
foreach ($info as $val) {
|
|
|
$app = self::getofficialAccount($info->wechat_authorization_info_id);
|
|
|
if ($val->wx_menuid) {
|
|
@@ -177,7 +180,7 @@ class WechatMenuService extends BaseService
|
|
|
$app->menu->delete($info->wx_menuid);
|
|
|
}
|
|
|
|
|
|
- WechatAccountMenuDetail::query()->where('id', $val->id)->update(['wx_menuid' => ""]);
|
|
|
+ WechatAccountMenuDetail::query()->where('wechat_authorization_info_id', $val->id)->update(['wx_menuid' => ""]);
|
|
|
}
|
|
|
return "操作成功";
|
|
|
}
|
|
@@ -196,7 +199,7 @@ class WechatMenuService extends BaseService
|
|
|
self::throwErrMsg('该菜单不存在或已删除');
|
|
|
}
|
|
|
// 已分配的
|
|
|
- $appIds = WechatAccountMenuDetail::where(['status' => 1, 'menu_id' => $info->id])->pluck('id')->toArray();
|
|
|
+ $appIds = WechatAccountMenuDetail::where(['status' => 1, 'menu_id' => $info->id])->pluck('wechat_authorization_info_id')->toArray();
|
|
|
$list = [];
|
|
|
$delAppId = [];
|
|
|
$createAddIp = [];
|
|
@@ -263,6 +266,7 @@ class WechatMenuService extends BaseService
|
|
|
'miniprogram_id' => $val['miniprogram_id'],
|
|
|
'wechat_authorization_info_id' => $val['wechat_authorization_info_id']
|
|
|
], $val);
|
|
|
+
|
|
|
}
|
|
|
} else {
|
|
|
WechatAccountMenuDetail::where('menu_id', $id)->update(['status' => 0]);
|
|
@@ -277,10 +281,10 @@ class WechatMenuService extends BaseService
|
|
|
}
|
|
|
myLog('wx-meun')->info(['c' => $createAddIp,'del' => $delAppId]);
|
|
|
if (!empty($createAddIp)) {
|
|
|
- self::createWechatMenus($createAddIp);
|
|
|
+ self::createWechatMenus($createAddIp,$id);
|
|
|
}
|
|
|
if (!empty($delAppId)) {
|
|
|
- self::delWechatAccountMenu($delAppId);
|
|
|
+ self::delWechatAccountMenuByMeunId($delAppId,$id);
|
|
|
}
|
|
|
return ['msg' => "操作成功"];
|
|
|
}
|
|
@@ -324,4 +328,21 @@ class WechatMenuService extends BaseService
|
|
|
return $sql;
|
|
|
}
|
|
|
|
|
|
+ private static function delWechatAccountMenuByMeunId(array $delAppId, $menuId)
|
|
|
+ {
|
|
|
+ $info = WechatAccountMenuDetail::query()->whereIn('wechat_authorization_info_id', $delAppId)->where('menu_id',$menuId)->get();
|
|
|
+
|
|
|
+ foreach ($info as $val) {
|
|
|
+
|
|
|
+ if ($val->wx_menuid) {
|
|
|
+ // 有菜单则删除菜单
|
|
|
+ $app = self::getofficialAccount($info->wechat_authorization_info_id);
|
|
|
+ $app->menu->delete($info->wx_menuid);
|
|
|
+ }
|
|
|
+
|
|
|
+ WechatAccountMenuDetail::query()->where('wechat_authorization_info_id', $val->id)->update(['wx_menuid' => ""]);
|
|
|
+ }
|
|
|
+ return "操作成功";
|
|
|
+ }
|
|
|
+
|
|
|
}
|