57 行
2.7 KiB
SQL
57 行
2.7 KiB
SQL
-- 修复「当前地区不在配送范围」
|
||
-- 说明:若 province_ids 已有其他省份但不含贵州,上一版 UPDATE 会 0 行;本脚本强制追加 520000
|
||
-- 测试地址:贵州省/贵阳市/南明区 → province_id=520000, city_id=520100, area_id=520102
|
||
|
||
SET @now = UNIX_TIMESTAMP();
|
||
|
||
-- 1) 查看当前运费规则(执行后可对照)
|
||
SELECT id, type, weigh, province_ids, city_ids, LEFT(area_ids, 80) AS area_ids
|
||
FROM `fa_shopro_dispatch_express`
|
||
WHERE `deletetime` IS NULL OR `deletetime` = 0;
|
||
|
||
-- 2) 空区域 → 设为贵州省
|
||
UPDATE `fa_shopro_dispatch_express`
|
||
SET `province_ids` = '520000', `updatetime` = @now
|
||
WHERE (`deletetime` IS NULL OR `deletetime` = 0)
|
||
AND (`province_ids` IS NULL OR `province_ids` = '')
|
||
AND (`city_ids` IS NULL OR `city_ids` = '')
|
||
AND (`area_ids` IS NULL OR `area_ids` = '');
|
||
|
||
-- 3) 已有省份但未含贵州 → 追加 520000(解决「更新了 0 行」的情况)
|
||
UPDATE `fa_shopro_dispatch_express`
|
||
SET `province_ids` = CONCAT(`province_ids`, ',520000'), `updatetime` = @now
|
||
WHERE (`deletetime` IS NULL OR `deletetime` = 0)
|
||
AND `province_ids` IS NOT NULL
|
||
AND `province_ids` <> ''
|
||
AND FIND_IN_SET('520000', `province_ids`) = 0;
|
||
|
||
-- 4) 若仍不匹配:仅配置了 city/area 且不含贵州 → 清空并改为贵州省(演示环境)
|
||
UPDATE `fa_shopro_dispatch_express`
|
||
SET `province_ids` = '520000', `city_ids` = NULL, `area_ids` = NULL, `updatetime` = @now
|
||
WHERE (`deletetime` IS NULL OR `deletetime` = 0)
|
||
AND (`province_ids` IS NULL OR `province_ids` = '')
|
||
AND (
|
||
(`city_ids` IS NOT NULL AND `city_ids` <> '')
|
||
OR (`area_ids` IS NOT NULL AND `area_ids` <> '')
|
||
)
|
||
AND (
|
||
FIND_IN_SET('520100', IFNULL(`city_ids`, '')) = 0
|
||
AND FIND_IN_SET('520102', IFNULL(`area_ids`, '')) = 0
|
||
);
|
||
|
||
-- 5) 演示商品专用:雄戈演示包邮 关联的运费规则强制覆盖贵州
|
||
UPDATE `fa_shopro_dispatch_express` de
|
||
INNER JOIN `fa_shopro_dispatch` d ON d.`type` = 'express' AND FIND_IN_SET(de.`id`, d.`type_ids`)
|
||
SET de.`province_ids` = '520000', de.`city_ids` = NULL, de.`area_ids` = NULL, de.`updatetime` = @now
|
||
WHERE (de.`deletetime` IS NULL OR de.`deletetime` = 0)
|
||
AND (d.`deletetime` IS NULL OR d.`deletetime` = 0)
|
||
AND d.`name` LIKE '%雄戈%';
|
||
|
||
SELECT '运费模板已修复,请刷新小程序后重新下单' AS info;
|
||
|
||
-- ========== 可选:演示环境全国包邮(若你在省外真机测试,取消下面注释执行) ==========
|
||
-- UPDATE `fa_shopro_dispatch_express` de
|
||
-- SET de.`province_ids` = (SELECT GROUP_CONCAT(id) FROM `fa_shopro_area` WHERE `level` = 1),
|
||
-- de.`city_ids` = NULL, de.`area_ids` = NULL, de.`updatetime` = UNIX_TIMESTAMP()
|
||
-- WHERE de.`deletetime` IS NULL OR de.`deletetime` = 0;
|