#### 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. 发送异步抢单通知(比如对接极光推送)