查看技师.md 2.7 KB

1.技师列表-不指定项目(用户端)

参数:

- user_id, adcode, lng, lat
- user_id 通过 Auth::id() 获取

涉及表和关键列:

  • 技师:technician_users
    • 字段:id, nickname, mobile, avatar, status
    • 地区编号字段:adcode
    • 状态字段:status
    • 0: 禁用
    • 1: 正常
  • 技师定位:technician_position
    • 字段:id, technician_id, adcode, lng, lat
    • 经度字段:lng
    • 纬度字段:lat

后台逻辑:

  1. 根据地区编号查询技师编号
    • 技师定位数据存在,并且经纬度在指定范围10公里内
  2. 返回技师列表
    • 技师数据存在,并且技师状态为正常(status = 1)

2. 技师抢单(技师端)

参数:

  • user_id, order_id, coach_id
  • user_id 通过 Auth::id() 获取

涉及表和关键列:

  • 抢单池:service_order_grab
    • 必填字段:id, order_id, coach_id, status, created_at, updated_at
    • 状态字段:status
    • 0: 参与抢单
    • 1: 抢单成功
    • 2: 抢单失败
  • 订单:service_order
    • 必填字段:id,type,status
    • 订单类型字段: type
    • 0: 正常订单
    • 1: 抢单订单
    • 状态字段:status
    • 0: 待抢单
  • 技师:coach_users
    • 字段:user_id, status
    • 状态字段:status
    • 0: 禁用
    • 1: 正常

后台逻辑:

  1. 通过编号查订单,条件是:
    • 订单数据存在,并且状态为待抢单
    • 订单没有指派技师
    • 订单类型为抢单订单
  2. 通过用户编号查技师,条件是:
    • 技师数据存在,并且技师状态为正常
  3. 通过以上数据,创建订单池,要求:
    • 请自动填写相同名称的字段
    • 订单池状态为参与抢单
  4. 发送异步抢单通知(比如对接极光推送)

3. 用户反选技师(用户端)

参数:

  • user_id, order_id, coach_id
  • user_id 通过 Auth::id() 获取

涉及表和关键列:

  • 抢单池:service_order_grab_pool
    • 必填字段:id, order_id, coach_id, status, created_at, updated_at
    • 状态字段:status
    • 0: 参与抢单
    • 1: 抢单成功
    • 2: 抢单失败
  • 订单:service_order
    • 必填字段:id,type,status
    • 订单类型字段: type
    • 0: 正常订单
    • 1: 抢单订单
    • 状态字段:status
    • 0: 待抢单

后台逻辑:

  1. 通过编号查订单,条件是:
    • 订单数据存在,并且状态为待抢单
    • 订单没有指派技师
    • 订单类型为抢单订单
  2. 通过编号查技师,条件是:
    • 技师数据存在,并且技师状态为正常
  3. 通过以上数据,修改订单池,要求:
    • 技师编号来自参数
    • 订单池状态改为抢单成功
  4. 发送异步抢单通知(比如对接极光推送)