[Claude Workbench] Initial commit - preserving existing code

This commit is contained in:
Claude Workbench
2025-11-14 17:41:15 +08:00
commit 0f7bc05697
587 changed files with 103215 additions and 0 deletions

142
fix_wechat_menu_data.sql Normal file
View File

@@ -0,0 +1,142 @@
-- ================================================
-- 微信菜单数据修复脚本
-- ================================================
-- 此脚本用于检查和修复数据库中的无效微信菜单数据
-- ------------------------------------------------
-- 1. 检查所有可能有问题的菜单数据
-- ------------------------------------------------
-- 检查 view 类型但 URL 为空的菜单
SELECT
id,
menu_name AS '菜单名称',
menu_type AS '类型',
menu_url AS 'URL',
menu_key AS 'Key',
parent_id AS '父菜单ID',
'问题view类型缺少URL' AS '问题描述'
FROM wechat_menu
WHERE menu_type = 'view'
AND (menu_url IS NULL OR menu_url = '')
AND is_enabled = 1;
-- 检查 click 类型但 Key 为空的菜单
SELECT
id,
menu_name AS '菜单名称',
menu_type AS '类型',
menu_key AS 'Key',
parent_id AS '父菜单ID',
'问题click类型缺少Key' AS '问题描述'
FROM wechat_menu
WHERE menu_type = 'click'
AND (menu_key IS NULL OR menu_key = '')
AND is_enabled = 1;
-- 检查 miniprogram 类型但缺少必要字段的菜单
SELECT
id,
menu_name AS '菜单名称',
menu_type AS '类型',
menu_url AS 'URL',
appid AS 'AppID',
pagepath AS 'PagePath',
parent_id AS '父菜单ID',
'问题miniprogram类型缺少必要字段' AS '问题描述'
FROM wechat_menu
WHERE menu_type = 'miniprogram'
AND (menu_url IS NULL OR menu_url = ''
OR appid IS NULL OR appid = ''
OR pagepath IS NULL OR pagepath = '')
AND is_enabled = 1;
-- ------------------------------------------------
-- 2. 修复方案(请根据实际情况选择执行)
-- ------------------------------------------------
-- 方案A禁用所有无效的菜单推荐不会删除数据
-- 禁用 view 类型但 URL 为空的菜单
UPDATE wechat_menu
SET is_enabled = 0,
description = CONCAT(IFNULL(description, ''), ' [自动禁用缺少URL]')
WHERE menu_type = 'view'
AND (menu_url IS NULL OR menu_url = '')
AND is_enabled = 1;
-- 禁用 click 类型但 Key 为空的菜单
UPDATE wechat_menu
SET is_enabled = 0,
description = CONCAT(IFNULL(description, ''), ' [自动禁用缺少Key]')
WHERE menu_type = 'click'
AND (menu_key IS NULL OR menu_key = '')
AND is_enabled = 1;
-- 禁用 miniprogram 类型但缺少必要字段的菜单
UPDATE wechat_menu
SET is_enabled = 0,
description = CONCAT(IFNULL(description, ''), ' [自动禁用:缺少必要字段]')
WHERE menu_type = 'miniprogram'
AND (menu_url IS NULL OR menu_url = ''
OR appid IS NULL OR appid = ''
OR pagepath IS NULL OR pagepath = '')
AND is_enabled = 1;
-- ------------------------------------------------
-- 方案B手动修复特定菜单示例
-- ------------------------------------------------
-- 如果您想保留 "首页" 菜单可以为其添加URL
-- UPDATE wechat_menu
-- SET menu_url = 'https://your-website.com'
-- WHERE menu_name = '首页' AND menu_type = 'view';
-- 如果您想保留 "帮助中心" 菜单可以为其添加URL
-- UPDATE wechat_menu
-- SET menu_url = 'https://your-website.com/help'
-- WHERE menu_name = '帮助中心' AND menu_type = 'view';
-- 或者,如果您想将这些菜单改为 click 类型:
-- UPDATE wechat_menu
-- SET menu_type = 'click', menu_key = 'MENU_HOME', menu_url = NULL
-- WHERE menu_name = '首页';
-- ------------------------------------------------
-- 方案C删除无效菜单慎用
-- ------------------------------------------------
-- 如果您确定要删除这些无效菜单,取消下面的注释
-- DELETE FROM wechat_menu
-- WHERE menu_type = 'view'
-- AND (menu_url IS NULL OR menu_url = '')
-- AND is_enabled = 1;
-- ------------------------------------------------
-- 3. 修复后验证
-- ------------------------------------------------
-- 查看所有启用的菜单
SELECT
id,
parent_id,
menu_name,
menu_type,
menu_key,
menu_url,
is_enabled,
sort_order
FROM wechat_menu
WHERE is_enabled = 1
ORDER BY parent_id ASC, sort_order ASC;
-- 统计菜单数量
SELECT
is_enabled,
COUNT(*) as count,
CASE
WHEN is_enabled = 1 THEN '启用'
ELSE '禁用'
END as status
FROM wechat_menu
GROUP BY is_enabled;