(图片来源网络,侵删)
问题描述在多个APP中。例如安卓标准版和安卓轻量版。存在用户用同一个三方登陆多个APP或不同的三方登陆一个APP后,系统无法将该用户所有的数据打通。从而造成用户都是从新账号开始。解决方案1、第一种解决方案思路:对用户新的账号产生的数据不做合并处理。当用户发现不是老账号的数据时,向客服申请。将新账号绑定到老账号中。APP仅仅展示老账号的信息。缺点:需要人工客服接入。增加人力成本即使用户用新账号登陆,用户也无法查看到新账号的信息。优点:实现的技术成本相对较低2、第二种解决方案思路:将用户的新账号产生的数据。通过修改表里的uid值或将新、老账号的数据迁移到新表中。将新账号的数据迁移到老账号下。缺点:事务时间过长。迁移数据未完成前,用户无法进行其他操作。用户体验差。有可能造成长时间的锁表,其他用户无法查询到自己的信息。合并数据失败后需要用户二次点击才能合并数据。如果用户填写合并的账号有误,合并后的数据将无法恢复。可能造成其他用户的数据丢失。优点:无3、第三种解决方案思路:通过对三户模型的简化。 新建客户表、客户账号的关联表。将用户所有的账号信息与客户表进行关联。优点:无需人工客服的接入。减少人力成本和工作量。如果用户填写合并的账号有误。只需要修改账号信息与客户表的关联关系。不需要修改原始数据。风险小。技术实现成本相关较小。可以打通新老账号的数据。可扩展性好。后期有多个账号合并。直接建立客户表和账号的关联关系即可。缺点:无综上所述。建议使用第三种解决方案。具体的解决思路产品层面在APP上新增绑定流程。用户登陆后在APP后。点击绑定。输入对应的邮箱。向用户输入的邮箱发送验证码邮件。用户输入邮件的验证码信息。验证用户输入的验证码是否正确。验证码正确。绑定成功,展示绑定的邮箱。在APP上解绑用户点击解绑按钮。向已绑定的邮箱发送解绑邮件。邮件中有解绑验证码。用户输入对应的验证码。系统验证用户填写的验证码是否正确。验证码正确。页面展示绑定按钮。数据库层面新增客户表。用于记录用户绑定的邮箱信息。用户行为表(uc_members_assets_log、uc_game_chat_room_user_list等)中新增字段客户id。新增客户账号关联表。绑定成功后将绑定邮箱信息写入客户表中将绑定关系写入到客户账号关联表中。更新用户行为表中客户id。 加事务。解绑成功后将客户账号关联表中的数据逻辑删除。更新用户行为表中的客户id为空。代码层面在拦截器中增加校验。登陆成功后。判断该账号是否绑定过邮箱。绑定过则将客户id、uid放入到ThreadLocal中,以便逻辑中使用用户行为表查询产品需要梳理APP、后台统计中需要展示的是客户维度还是账号维度。判断ThreadLocal中是否有客户id。有则按照客户id查询。反之用uid查询。接口方面新增向邮箱发送绑定验证码接口。新增绑定校验接口。新增向邮箱发送解绑验证码接口。新增解绑校验接口。
0 评论