Просмотр исходного кода

yu chuli

release_toaliyun_real
xhxu 5 лет назад
Родитель
Сommit
d0b5f743f7
2 измененных файлов: 135 добавлений и 1 удалений
  1. +134
    -0
      mallinkAdmin/src/main/resources/db/migration/V202009211000__集团版数据处理.sql
  2. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java

+ 134
- 0
mallinkAdmin/src/main/resources/db/migration/V202009211000__集团版数据处理.sql Просмотреть файл

@@ -0,0 +1,134 @@
--备份关键表数据,
create table wx_c_user_basic_info_',@dateStr,' like wx_c_user_basic_info;
insert into wx_c_user_basic_info_',@dateStr,' select * from wx_c_user_basic_info;
create table wx_c_user_',@dateStr,' like wx_c_user;
insert into wx_c_user_',@dateStr,' select * from wx_c_user;
create table wx_order_',@dateStr,' like wx_order;
insert into wx_order_',@dateStr,' select * from wx_order;
create table wx_coupon_order_',@dateStr,' like wx_coupon_order;
insert into wx_coupon_order_',@dateStr,' select * from wx_coupon_order;
create table wx_pay_order_',@dateStr,' like wx_pay_order;
insert into wx_pay_order_',@dateStr,' select * from wx_pay_order;
create table wx_refund_order_',@dateStr,' like wx_refund_order;
insert into wx_refund_order_',@dateStr,' select * from wx_refund_order;
create table wx_order_group_',@dateStr,' like wx_order_group;
insert into wx_order_group_',@dateStr,' select * from wx_order_group;
create table wx_order_press_',@dateStr,' like wx_order_press;
insert into wx_order_press_',@dateStr,' select * from wx_order_press;
create table wx_c_user_from_b_',@dateStr,' like wx_c_user_from_b;
insert into wx_c_user_from_b_',@dateStr,' select * from wx_c_user_from_b;
create table wx_activity_join_',@dateStr,' like wx_activity_join;
insert into wx_activity_join_',@dateStr,' select * from wx_activity_join;
create table wx_question_log_',@dateStr,' like wx_question_log;
insert into wx_question_log_',@dateStr,' select * from wx_question_log;
create table wx_game_action_log_',@dateStr,' like wx_game_action_log;
insert into wx_game_action_log_',@dateStr,' select * from wx_game_action_log;
create table wx_credit_history_',@dateStr,' like wx_credit_history;
insert into wx_credit_history_',@dateStr,' select * from wx_credit_history;
create table wx_score_history_',@dateStr,' like wx_score_history;
insert into wx_score_history_',@dateStr,' select * from wx_score_history;
create table wx_card_spend_',@dateStr,' like wx_card_spend;
insert into wx_card_spend_',@dateStr,' select * from wx_card_spend;
create table wx_c_user_tags_',@dateStr,' like wx_c_user_tags;
insert into wx_c_user_tags_',@dateStr,' select * from wx_c_user_tags;

--所有数据改成集团的数据 118.044s
--groupTenantId 集团tenantId
--tenantIds 子广场,拼接
--el: call init_after_group('1025', '1008,1020');
call init_after_group(groupTenantId, tenantIds);

--合并子广场重复会员 清缓存
--tenantIds 子广场,拼接
--el: call move_after_group('1008,1020');
--call move_after_group(tenantIds);


/*备份手机号重复数据**/
CREATE TABLE wx_c_user_basic_info_1008_1020 LIKE wx_c_user_basic_info;

INSERT INTO wx_c_user_basic_info_1008_1020 SELECT * FROM wx_c_user_basic_info WHERE final_tenant_id IN ('1008','1020') AND phone IN (
SELECT phone FROM wx_c_user_basic_info t WHERE `final_tenant_id` IN ('1008','1020') GROUP BY phone HAVING COUNT(1) > 1
)


CREATE TABLE `zz_middle_uu` (
`datestr` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`new_user_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`old_user_id` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`phone` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`tenant_ids` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`user_ids` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`sum_poins` int(11) DEFAULT NULL,
`sum_credit` int(11) DEFAULT NULL,
`sum_login_count` int(11) DEFAULT NULL,
UNIQUE INDEX `new_user_id`(`new_user_id`) USING BTREE,
UNIQUE INDEX `old_user_id`(`old_user_id`) USING BTREE,
UNIQUE INDEX `001`(`new_user_id`) USING BTREE,
UNIQUE INDEX `002`(`old_user_id`) USING BTREE,
INDEX `new_user_id_2`(`new_user_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;

/*处理手机号重复的数据**/
INSERT INTO zz_middle_uu(phone,tenant_ids,user_ids,sum_poins,sum_credit,sum_login_count) SELECT phone,CONCAT(',',GROUP_CONCAT(final_tenant_id),','),GROUP_CONCAT(id),SUM(poins),SUM(credit),SUM(login_count) FROM wx_c_user_basic_info_1008_1020 GROUP BY phone;
--取第一个作为新的user_id
UPDATE zz_middle_uu SET new_user_id = SUBSTRING_INDEX(user_ids,',',1);

UPDATE zz_middle_uu SET old_user_id = SUBSTRING_INDEX(user_ids,CONCAT(new_user_id,','),-1);


--处理重复手机号数据
UPDATE wx_c_user a LEFT JOIN zz_middle_uu b on a.user_id=b.old_user_id
SET a.token = null,a.expire_time=now(),a.user_id = b.new_user_id WHERE b.new_user_id is not null;
UPDATE wx_activity_join a LEFT JOIN zz_middle_uu b on a.user_id=b.old_user_id
SET a.user_id = b.new_user_id WHERE b.new_user_id is not null;
UPDATE wx_game_action_log a LEFT JOIN zz_middle_uu b on a.user_id=b.old_user_id
SET a.user_id = b.new_user_id WHERE b.new_user_id is not null;
UPDATE wx_order_group a LEFT JOIN zz_middle_uu b on a.user_id=b.old_user_id
SET a.user_id = b.new_user_id WHERE b.new_user_id is not null;
UPDATE wx_order_press a LEFT JOIN zz_middle_uu b on a.user_id=b.old_user_id
SET a.user_id = b.new_user_id WHERE b.new_user_id is not null;
UPDATE wx_question_log a LEFT JOIN zz_middle_uu b on a.user_id=b.old_user_id
SET a.user_id = b.new_user_id WHERE b.new_user_id is not null;

UPDATE wx_c_user_from_b a LEFT JOIN zz_middle_uu b on a.c_user_id=b.old_user_id
SET a.c_user_id = b.new_user_id WHERE b.new_user_id is not null;
UPDATE wx_coupon_order a LEFT JOIN zz_middle_uu b on a.c_user_id=b.old_user_id
SET a.c_user_id = b.new_user_id WHERE b.new_user_id is not null;
UPDATE wx_credit_history a LEFT JOIN zz_middle_uu b on a.c_user_id=b.old_user_id
SET a.c_user_id = b.new_user_id WHERE b.new_user_id is not null;
UPDATE wx_order a LEFT JOIN zz_middle_uu b on a.c_user_id=b.old_user_id
SET a.c_user_id = b.new_user_id WHERE b.new_user_id is not null;
UPDATE wx_pay_order a LEFT JOIN zz_middle_uu b on a.c_user_id=b.old_user_id
SET a.c_user_id = b.new_user_id WHERE b.new_user_id is not null;
UPDATE wx_refund_order a LEFT JOIN zz_middle_uu b on a.c_user_id=b.old_user_id
SET a.c_user_id = b.new_user_id WHERE b.new_user_id is not null;
UPDATE wx_score_history a LEFT JOIN zz_middle_uu b on a.c_user_id=b.old_user_id
SET a.c_user_id = b.new_user_id WHERE b.new_user_id is not null;

UPDATE wx_card_spend a LEFT JOIN zz_middle_uu b on a.owner_id=b.old_user_id
SET a.owner_id = b.new_user_id WHERE b.new_user_id is not null;
UPDATE wx_coupon_order a LEFT JOIN zz_middle_uu b on a.owner_id=b.old_user_id
SET a.owner_id = b.new_user_id WHERE b.new_user_id is not null;

UPDATE wx_credit_history a LEFT JOIN zz_middle_uu b on a.operator_id=b.old_user_id
SET a.operator_id = b.new_user_id WHERE b.new_user_id is not null AND a.operator_type in (1,2);


UPDATE wx_c_user_basic_info a LEFT JOIN zz_middle_uu b on a.id = b.new_user_id
SET a.tenant_id = b.tenant_ids,a.poins = b.sum_poins,a.credit = b.sum_credit,a.login_count = b.sum_login_count
WHERE b.new_user_id is not null;

UPDATE wx_c_user_basic_info a LEFT JOIN zz_middle_uu b on a.id=b.old_user_id
SET a.phone = concat(a.phone,'_del_',@dateStr),a.`status` = 1 WHERE b.old_user_id is not null;






--单独处理 wx_c_user_basic_info,wx_c_user_tags 归属集团
UPDATE wx_c_user_basic_info SET final_tenant_id = groupTenantId WHERE FIND_IN_SET(final_tenant_id,tenantIds);
UPDATE wx_c_user_tags SET tenant_id = groupTenantId WHERE FIND_IN_SET(tenant_id,tenantIds);



+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java Просмотреть файл

@@ -294,7 +294,7 @@ public class WxCUserServiceImpl implements WxCUserService {
cUser.setActiveTime(new Date());
saveOrUpdate(cUser);
}
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN, wxCUserBasicInfo);
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN, wxCUser);
}
// 用户从unionId来的,可能会有重复
if(findByUnionId != null) {


Загрузка…
Отмена
Сохранить