公共接口
获取租户配置
参数:
后台逻辑:
获取技师配置
参数:
- 技师编号
后台逻辑:
- 根据技师编号查询技师配置
- 返回技师配置
计算路费金额
参数 1: 技师编号,租户编号,服务路程
参数 2: 技师编号,用户经纬度,服务路程
后台逻辑:
- 如果路由不存在租户编号
- 根据技师编号查询技师配置
- 技师是否收取路费
- 如果收取
- 根据租户编号查询租户配置
- 服务路程小于等于租户配置的最小路程
- 服务路程大于租户配置的最小路程
- 路程单位为公里
- 超出路程=服务路程减租户配置的最小路程
- 单程路费金额=租户配置的最小路费金额 加 (超出路程 乘 租户配置的每公里路程单价)
- 如果技师配置为单程路费
- 如果技师配置为往返路费
- 不收取
- 返回路费金额
后台接口
支付订单回调
参数:
后台逻辑:
参数校验
- 根据外部交易号,查询订单
- 如果订单支付类型为微信支付
- 根据外部交易号,查询微信支付统一下单接口
- 如果支付成功
- 根据外部交易号查询订单
- 订单是否存在
- 订单用户编号是否匹配
- 订单状态为未支付
事务处理
- 修改订单状态为已支付
- 如果订单余额抵扣大于 0
- 根据订单的角色编号查询用户钱包
- 创建钱包明细
- 钱包编号
- 钱包明细类型为支付
- 钱包明细金额为订单余额抵扣金额
- 余额为钱包余额
- 冻结金额为钱包冻结金额
- 状态为已通过(已支付)
- 用户钱包数据开启更新锁表
- 扣除用户钱包余额
- 创建订单历史:支付
发送异步抢单通知(比如对接极光推送)
开始服务
参数: - 订单编号, 核销码 - 订单编号 通过路由获取 - 核销码 通过路由获取
后台逻辑: 1. 参数校验 - 如果订单编号存在 - 如果订单编号不为空,根据订单编号查询订单 - 订单状态为待服务 - 否则, 根据核销码查询订单 - 订单状态为待服务 - 根据订单接单技师查询用户技师数据 - 技师状态为正常 - 技师认证状态为已认证 2. 事务处理 - 修改订单状态为服务中 - 创建订单历史:服务(扫码) 3. 发送异步抢单通知(比如对接极光推送)
用户端接口
获取租户
参数: - 区域编号
后台逻辑:
- 根据区域数据编码查询租户信息
- 如果租户信息不存在
- 则依次按照区域编码按市、省、全国逐步查询,直至查找到租户信息
- 返回租户信息
获取项目列表-租户项目
参数:
后台逻辑:
获取项目详情-租户项目
参数: - 项目编号,租户编号
后台逻辑:
- 参数校验
- 返回租户项目详情
计算订单金额
参数:
- 用户编号, 地址编号, 技师编号, 项目编号,租户编号, 余额抵扣
- 用户编号 通过 Auth::id() 获取
- 余额抵扣 - 0: 不使用 - 1: 使用
后台逻辑:
- 参数校验
- 根据用户编号查询用户
- 根据地址编号查询地址
- 根据技师编号查询技师
- 计算金额
- 订单金额=项目金额+路费金额+打赏金额-优惠卷金额
- 项目金额=项目详情的项目金额
- 路费金额=路费金额
- 如果存在优惠卷编码,则根据优惠卷编号查询优惠卷
- 否则优惠金额 = 0
- 如果路由存在参数订单编号
- 如果使用余额抵扣
- 根据用户编号查询用户钱包
- 用户钱包余额大于等于订单金额
- 否则
- 余额抵扣金额=用户钱包余额
- 实付金额=订单金额-余额抵扣金额
- 否则
- 返回
- 订单金额
- 余额抵扣金额
- 实付金额
- 优惠卷金额
- 打赏金额
- 项目金额
- 路费金额
创建订单
- 参数:
- 用户编号, 项目编号, 地址编号, 技师编号,是否余额抵扣,订单来源
- 用户编号 通过 Auth::id() 获取
- 是否余额抵扣 - false: 不使用 - true: 使用
- 订单编号
- 涉及表和关键列:
订单表:orde
- 订单类型字段
- normal: 正常订单
- add_time: 加钟订单
- 状态字段
- wait_pay:待支付
- wait_receive:待接单
- service:待服务
- service_ing:服务中
- service_end:服务结束
- complete:完成
- cancel:取消
- 支付类型字段
- balance:余额支付
- wechat:微信支付
- alipay:支付宝支付
- 订单来源字段
- 路费金额字段:traffic_amount
用户表:member_users
用户地址表:member_address
项目表:project
技师表:coach_users
技师信息认证表:coach_info_records
- 认证状态字段
- wait:待认证
- pass:已认证
- reject:已拒绝
技师资质认证表:coach_qual_records
- 认证状态字段
- wait:待认证
- pass:已认证
- reject:已拒绝
技师实名认证表:coach_real_auth_records
- 认证状态字段
- wait:待认证
- pass:已认证
- reject:已拒绝
后台逻辑:
- 参数校验
- 根据用户编号查询用户
- 根据地址编号查询地址
- 如果订单类型为正常订单
- 根据技师编号查询技师
- 技师状态为开启
- 技师信息认证状态为已认证
- 技师资质认证状态为已认证
- 技师实名认证状态为已认证
- 根据项目编号查询项目
事务处理
发送异步抢单通知(比如对接极光推送)
获取项目列表-加钟
参数:
后台逻辑:
加钟
参数:
- 用户编号, 订单编号
- 用户编号 通过 Auth::id() 获取
- 订单编号 通过路由获取
后台逻辑:
修改订单
参数:
- 用户编号, 订单编号, 技师编号
- 用户编号 通过 Auth::id() 获取
后台逻辑:
指定技师(修改订单)
参数:
- 用户编号, 订单编号, 技师编号
- 用户编号 通过 Auth::id() 获取
后台逻辑:
- 参数校验
- 查询用户数据
- 查询订单数据
- 用户编号
- 订单编号
- 订单状态为待抢单或待支付或已拒绝
- 查询技师数据
- 查询技师排班数据
- 事务处理
- 发送异步抢单通知(比如对接极光推送)
获取支付配置
参数:
- 用户编号, 订单编号
- 用户编号 通过 Auth::id() 获取
后台逻辑:
- 参数校验
- 根据用户编号查询用户
- 根据订单编号查询订单
- 订单是否存在
- 订单用户编号是否匹配
- 订单状态为未支付
- 生成微信 JSAPI 支付配置
- 修改订单外部交易号为微信外部交易号
- 发送异步抢单通知(比如对接极光推送)
- 返回微信 JSAPI 支付配置
获取订单列表
参数: - 用户编号 通过 Auth::id() 获取
后台逻辑: - 根据用户编号查询订单列表 - 返回订单列表
获取订单详情
参数: - 用户编号 通过 Auth::id() 获取 - 订单编号
后台逻辑: - 根据用户编号、订单编号查询订单详情 - 返回订单详情
订单退款
参数: - 用户编号 通过 Auth::id() 获取 - 订单编号 通过路由获取
涉及表和关键列: - 订单表 - 字段:编号, 用户编号, 状态 - 状态 - 待支付 - 待服务 - 待评价 - 已完成 - 已取消 - 订单历史记录表 - 字段:历史记录编号, 订单编号, 角色, 角色编号, 状态 - 角色 - 用户 - 技师 - 代理 - 状态 - 下单 - 接单 - 出发 - 到达 - 开始 - 结束 - 撤离 - 取消(退款)
后台逻辑:
- 查询订单
- 更新数据
订单初始化-前端初始化
参数:
- 用户编号 通过 Auth::id() 获取
- 技师编号 通过路由获取
- 区域编号 通过路由获取
- 项目编号 通过路由获取
后台逻辑:
- 根据用户编号查询钱包数据
- 根据用户编号查询用户默认地址数据
- 根据技师编号查询技师数据
- 根据技师编号查询技师排班数据
- 根据用户编号查询用户优惠卷数据
- 获取租户
- 租户项目详情
- 计算订单金额
- 返回钱包数据、技师数据、项目详情、地址数据、排班数据、订单金额、优惠卷数据
结束订单
参数:
- 用户编号 通过 Auth::id() 获取
- 订单编号 通过路由获取
后台逻辑:
确认技师离开
参数:
- 用户编号 通过 Auth::id() 获取
- 订单编号 通过路由获取
后台逻辑:
- 根据用户编号查询订单列表
- 订单状态为服务结束
- 修改订单状态为撤离
用户取消订单
参数:
- 用户编号 通过 Auth::id() 获取
- 订单编号 通过路由获取
后台逻辑:
技师端接口
获取订单列表(抢单)
参数:
后台逻辑:
- 参数校验
- 获取技师配置
- 查询技师定位数据
- 查询抢单类型订单列表
- 订单状态为待抢单
- 订单地区编码与技师定位地区编码匹配
- 订单经纬度与技师定位经纬度在接单范围内
- 抢单池中是否存在订单编号、技师编号的记录
- 返回订单列表
抢单
参数:
- 用户编号, 订单编号
- 用户编号 通过 Auth::id() 获取
- 订单编号 通过路由获取
后台逻辑:
- 参数校验
- 事务处理
- 发送异步抢单通知(比如对接极光推送)
接单
参数:
- 用户编号, 订单编号
- 用户编号 通过 Auth::id() 获取
- 订单编号 通过路由获取
后台逻辑:
- 参数校验
- 事务处理
- 发送异步抢单通知(比如对接极光推送)
出发
参数:
- 用户编号, 订单编号
- 用户编号 通过 Auth::id() 获取
- 订单编号 通过路由获取
后台逻辑:
- 参数校验
- 根据用户编号查询用户技师数据
- 技师状态为正常
- 技师认证状态为已认证
- 事务处理
- 发送异步抢单通知(比如对接极光推送)
到达
参数:
- 用户编号, 订单编号
- 用户编号 通过 Auth::id() 获取
- 订单编号 通过路由获取
后台逻辑:
- 参数校验
- 事务处理
- 发送异步抢单通知(比如对接极光推送)
撤离
参数:
- 用户编号, 订单编号
- 用户编号 通过 Auth::id() 获取
- 订单编号 通过路由获取
后台逻辑:
- 参数校验
- 事务处理
- 发送异步抢单通知(比如对接极光推送)
订单列表
参数:
- 用户编号 通过 Auth::id() 获取
- pageSize 每页大小
- page 页码
后台逻辑:
- 根据用户编号查询技师
- 根据页面大小、页码查询技师订单列表
- 返回订单分页列表
拒绝接单
参数:
- 用户编号, 订单编号
- 用户编号 通过 Auth::id() 获取
- 订单编号 通过路由获取
后台逻辑:
- 参数校验
- 事务处理
- 发送异步抢单通知(比如对接极光推送)