Appearance
项目文档地址:
链接:https://pan.baidu.com/s/1oalDtlQR_vMYqE6_ArPJfA
提取码:b7JB
面试高频题(仅仅作为参考)
链接:https://pan.baidu.com/s/1JOQ19VXqaXA68n4KMXe-Ig
提取码:z5cW问题收集
- 1、是否需要包装公司?(个人目前的需求是:打算去自研公司,然后外包不想去,简历需要改善一下)
客诉项目
客诉是该中台下的一个服务

相关业务
- 1、货主通过物流平台进行创建发货订单操作,司机通过物流平台进行接货,中途如果产生纠纷会创建客诉单
- 2、客户对客诉单进行审核操作,如果涉及到钱相关的客诉类型需要客服领导进行审核操作
- 3、
服务调用
- 模块业务和其他部门交互采用 mq 消息形式
- 部分接口使用 rpc同步远程调用
单据类型
- 1、申诉单:中途如果产生纠纷会创建客诉单
- 例如:货主没有把货物放到指定地方、货主辱骂司机、货主没有提前告诉司机需要跟车等原因,正常交易货主不退定金等
- 2、催收单:如果有公司垫付费用的情况还会涉及催收单和申诉单的业务产生
- 3、申请单
- 4、客诉单:货主投诉司机的情况,例如(司机迟到,司机车型不符,司机辱骂货主,冷运货物司机未带保温毯等)。
系统业务背景:部门主要负责整个客诉系统的送代和优化,提升客服的办事效率。
个人职责
- 1、负责日常需求开发和技术文档编写,如:退佣、退定金、重开等逻辑开发
- 2、优化客诉后台客诉单详情页展示接口。从5 秒多优化到 1秒多展示
- 3、对整个客诉平台进行拆分,拆分成催收、客诉、申请单三个独立微服务方便维护和职责划分。
- 4、组织其他部门讨论客诉单创建过程中分布式事务解决方案,并编写处理逻辑
- 5、设计分布式锁防止客诉单创建页面重复提交以及定时分单任务重复扫描
- 6、对日常监控平台检测的慢 sql 进行调优,以及优化大表的查询速度
- 7、独立定位线上 redis 内存溢出问题以及因 flume 异常导致磁盘占用达到阈值告警问题。
简历项目内容:

项目介绍
项目架构
- Springboot + cloud + es + rocketMQ + redis + mysql
项目介绍:略 自我发挥
- 客诉单
- 数据来源
- 1、司机或者货主自己在平台进行申诉(下拉框选择 + 截图 + 文字说明 → 进行提交)
- 2、联系客服,客服创建
- 表单信息
- 脱俗类型、具体投诉内容、图片说明、投诉方向
- 重复校验(如果该运单有未办结的客诉单存在就不允许创建)
- 创建后的操作
- 1、进行冻结订单
- 2、客诉单入库(数据库主从结构,返回ID)
- 3、图片上传,oss 上传,然后关联客诉单 ID
- 4、发送 mq 消息,(将客诉单的ID进行发送解耦),客诉服务进行消费
- 消费操作
- 根据客诉单 ID 获取到数据库客诉单的详细信息,然后数据库信息 + 图片信息
- 组装成 es 需要的数据类型(为了减少 es 占用存储空间,所以只存一些状态,比如有无举证这些状态,而并不是存真正的举证图片地址进 es)
- 客诉单ID
- 投诉类型
- 客诉单工单 ID
- 是否有举证图片
- 是否重开过
- 投诉单状态(待领取、已领取、审核中、审核完成、已办结)
- 时间等
- 消费操作
- 5、接口发送(投诉单类型 ID 和 客诉单 ID 传给工单服务(其他的部门))
- 数据来源
客诉单

1、客诉单表单提交 2、后续任务
2.1 远程调用运单服务进行冻结订单 2.2 客诉单进行入库操作 2.3 举证图片入库操作 2.4 入库后发送MQ 消息到客诉服务(载体是 客诉单 ID)
客诉服务操作
拿到这个ID后,进行查询详细信息 + 图片信息,进行组装,然后放入到 ES 中
2.5 将客诉单ID + 投诉类型ID 传给工单服务
工单服务操作(其他部门)
对方服务会根据规则引擎生成客诉单不同投诉类型的一个模板,返回 true 或者 false 给这边(如果返回 true,则创建成功,当用户后续打开客诉单详情会再根据客诉单 ID 去进行拉取操作)
2.6 记录相关操作(事件记录)
2.7 外呼表差人一条记录,存放司机和货主的身份信息,名称手机号之类的。(类似企微提醒之类的)【这里数据库使用到了分表操作,动态表名】
2.8 异常流程回顾(使用 rocketmq 进行分布式事务回滚操作)
客诉单分配到客服操作(定时任务操作)→ 算法分配
催收单

押金(司机给货主的,当货物送达后,货主退回押金给司机)
数据产生背景:
当司机提起客诉(比如货主不退钱),客服那边可以在客诉单详情
进行垫付操作(按钮操作),客服输入金额后,进行提交
【生成一个垫付事件】
退钱到司机后,这边会创建一个催收单接口,会把客诉单 id 和退钱状态传到这个接口,这个接口会进行生成催收记录
并保存到ES中,记录表添加一条记录
催收表记录,会有专门的客服人员进行审核操作
催收操作
客服打电话催货主进行还款操作
1.1 如果货主坚持不还款,催收单页面会有一个用户打标操作
当打标操作后,货主会在再次发货后,第一天会进行一下提示;三天后还没有还款,会进行限制发货操作,并且弹窗一直存在
1.2 修改催收单金额操作
1.3 拉黑用户操作
申诉单

申诉单
例如押金问题审判完后,货主不满,继续提起申诉操作(收集足够证据后进行申诉操作)【只允许一次申诉机会】
如果申诉的确合理,会反向向司机生成一个催收单
申请单

客诉详情页 → 申请安全(客服服务操作)
点击申请按钮
1、调用工单服务接口,创建一个审核单 2、审核结果会调用客诉服务提供的远程接口,该接口的作用: 根据审核结果, 拒绝:将申请单中状态更新为拒绝状态,es 中同步更改,记录表会插入一条记录 成功,客诉平台调用其他部门去处理这个申请单具体的业务,其他部门操作完具体的业务后,会调用客诉服务的接口做一些状态的修改和记录
1、RocketMQ(项目发布流程,半小时,事务回顾) 2、Sentinel(限流算法) 3、Gateway(断言,配置方式) 4、OpenFegin(远程调用原理,Ribbon) 5、
中台:将一些业务集中到一个地方 客诉中台
客单 → 运单(司机接单) →
查询:放入到 ES 中(关键信息)
详情 → 再通过数据库进行查询

个人职责
- 负责客诉单重开逻辑的编写
- 负责退佣金逻辑的编写
- 优化客诉单详情接口
- 分布式事务异常回滚
- 负责接入 sentinel
- 基于 ddd 分层架构拆分客诉单,将客诉单平台一个单独的服务拆分
客诉问点答疑
客诉单,进行提交操作
- 1、投诉单创建:中间会有一种方式是:客服进行提交创建,如果有相关图片操作,会联系用户,再进行截图上传(更新上传?)
- 2、退钱业务所有的走一遍客诉
- 3、

佣金抽取
- 司机和货主都是用户
- 平台的收益方式是进行收佣操作(最开始是免费)
- 司机接单需要放置押金(类似卡车运输货物的操作)

