广州传奇网络

地址:广州市天河区东圃大马路富华楼C座

电话:13808825895

邮箱:gz020wbs@163.com

QQ:1564443073

网址:http://www.020wbs.com/

首页 > 二次开发Ecshop二次开发 > ecshop地区数据表region中部分地区重复的bug

二次开发Ecshop二次开发

二次开发Ecshop二次开发

ecshop地区数据表region中部分地区重复的bug

 

1、发现bug
偶然的情况下,发现ecshop在选择地址时,四川id:26->成都id:322—> 都江堰市到新津县(id:2733-2752)这部分区县出现重复的情况。如下图:

 

ecshop 地区重复

在数据库中找到这部分如图

有可能是在使用过程出现的问题,进一步找到ecshop原始的安装源码,发现sql数据的这一段,也是重复的 。

2、更多重复信息
现在只发现四川省id:26成都id:322下的区县有重复,还有可能地区也有重复,写了个sql语句查询下:

// 前缀不是默认的 ecs_ 请自行修改
SELECT r1.* FROM `ecs_region` as r1 left join `ecs_region` as r2 ON r1.region_name = r2.region_name WHERE r1.region_name = r2.region_name AND r1.region_id<>r2.region_id AND r1.parent_id = r2.parent_id ;
结果:

region_id parent_id region_name region_type agency_id
623 64 安定区 3 0
624 64 安定区 3 0
2733 322 都江堰市 3 0
2734 322 彭州市 3 0
2735 322 邛崃市 3 0
2736 322 崇州市 3 0
2737 322 金堂县 3 0
2738 322 双流县 3 0
2739 322 郫县 3 0
2740 322 大邑县 3 0  
2741 322 蒲江县 3 0
2742 322 新津县 3 0
2743 322 都江堰市 3 0
2744 322 彭州市 3 0
2745 322 邛崃市 3 0
2746 322 崇州市 3 0
2747 322 金堂县 3 0
2748 322 双流县 3 0
2749 322 郫县 3 0
2750 322 大邑县 3 0
2751 322 蒲江县 3 0
2752 322 新津县 3 0


查询结果显示除了四川省id:26成都id:322下的区县重复,还有一个是 甘肃id:5定西id:64下的 安定区id:623-624

3、bug修复
删除重复的行

// 前缀不是默认的 ecs_ 请自行修改
DELETE FROM `ecs_region` WHERE `region_id` = 624 OR (`region_id` > 2742 AND `region_id`<2753) LIMIT 11;
修改 ecs_order_info 和ecs_user_address 中的地区信息

// 前缀不是默认的 ecs_ 请自行修改
UPDATE `ecs_order_info` SET district = district - 10 WHERE district > 2742 AND district < 2753;

UPDATE `ecs_user_address` SET district = district - 10 WHERE district > 2742 AND district < 2753;

UPDATE `ecs_order_info` SET district = 623 WHERE district =624;

UPDATE `ecs_user_address` SET district = 623 WHERE district=624;
注意: 执行SQL语句前,请注意备份