package com.doumee.service.business; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.dto.DriverActiveOrderDTO; import com.doumee.dao.dto.DriverGrabOrderDTO; import com.doumee.dao.business.model.DriverInfo; import com.doumee.dao.dto.DriverLoginRequest; import com.doumee.dao.dto.DriverPickupDTO; import com.doumee.dao.dto.DriverRegisterRequest; import com.doumee.dao.dto.DriverVerifyRequest; import com.doumee.dao.vo.AccountResponse; import java.util.List; /** * 司机注册信息Service定义 * @author rk * @date 2026/04/08 */ public interface DriverInfoService { /** * 创建 * * @param driverInfo 实体对象 * @return Integer */ Integer create(DriverInfo driverInfo); /** * 主键删除 * * @param id 主键 */ void deleteById(Integer id); /** * 删除 * * @param driverInfo 实体对象 */ void delete(DriverInfo driverInfo); /** * 批量主键删除 * * @param ids 主键集 */ void deleteByIdInBatch(List ids); /** * 主键更新 * * @param driverInfo 实体对象 */ void updateById(DriverInfo driverInfo); /** * 批量主键更新 * * @param driverInfos 实体集 */ void updateByIdInBatch(List driverInfos); /** * 主键查询 * * @param id 主键 * @return DriverInfo */ DriverInfo findById(Integer id); /** * 条件查询单条记录 * * @param driverInfo 实体对象 * @return DriverInfo */ DriverInfo findOne(DriverInfo driverInfo); /** * 条件查询 * * @param driverInfo 实体对象 * @return List */ List findList(DriverInfo driverInfo); /** * 分页查询 * * @param pageWrap 分页对象 * @return PageData */ PageData findPage(PageWrap pageWrap); /** * 条件统计 * * @param driverInfo 实体对象 * @return long */ long count(DriverInfo driverInfo); /** * 司机验证码登录(手机号+短信验证码,无账号自动注册) * * @param request 验证码登录请求 * @return AccountResponse */ AccountResponse register(DriverRegisterRequest request); /** * 发送司机验证码登录验证码 * * @param telephone 手机号 */ void sendRegisterCode(String telephone); /** * 司机手机号+密码登录 * * @param request 登录请求 * @return AccountResponse */ AccountResponse login(DriverLoginRequest request); /** * 提交实名认证(初次提交或驳回后修改) * * @param memberId 会员主键 * @param request 认证请求 */ void submitVerify(Integer memberId, DriverVerifyRequest request); /** * 查询司机实名认证详情 * * @param memberId 会员主键 * @return DriverInfo */ DriverInfo getVerifyDetail(Integer memberId); /** * 审批司机实名认证(管理端) * * @param auditDTO 审批参数 */ void auditVerify(com.doumee.dao.dto.AuditDTO auditDTO); /** * 管理端查询司机详情(含附件图片、车辆类型名称) * * @param id 司机主键 * @return DriverInfo */ DriverInfo getDetail(Integer id); /** * 修改司机状态(启用/禁用) * * @param dto 修改状态请求 */ void changeStatus(com.doumee.dao.dto.ChangeStatusDTO dto); /** * 切换司机接单状态 * * @param memberId 会员主键 * @param status 接单状态:0=未接单;1=接单中 */ void updateAcceptingStatus(Integer memberId, Integer status); /** * 更新司机实时定位 * * @param memberId 会员主键 * @param longitude 经度 * @param latitude 纬度 */ void updateLocation(Integer memberId, Double longitude, Double latitude); /** * 获取司机端首页信息 * * @param memberId 会员主键 * @return DriverCenterVO */ com.doumee.dao.vo.DriverCenterVO getDriverCenterInfo(Integer memberId); /** * 司机抢单大厅 - 分页查询可抢订单 * * @param memberId 当前登录会员主键 * @param pageWrap 分页请求 * @return PageData */ com.doumee.core.model.PageData grabOrderHall(Integer memberId, PageWrap pageWrap); /** * 司机进行中订单列表 * * @param memberId 会员主键 * @param dto 查询条件(status: 3=已抢单, 4=派送中) * @return 订单列表 */ java.util.List activeOrders(Integer memberId, DriverActiveOrderDTO dto); /** * 司机端订单详情 * * @param driverId 司机主键 * @param orderId 订单主键 * @return DriverOrderDetailVO */ com.doumee.dao.vo.DriverOrderDetailVO driverOrderDetail(Integer driverId, Integer orderId); /** * 司机取消订单(已接单status=2时取消,释放回抢单大厅) * * @param driverId 司机主键 * @param orderId 订单主键 * @param reason 取消原因 */ void cancelOrder(Integer driverId, Integer orderId, String reason); /** * 司机抢单,订单状态从已寄存(2)变为已接单(3) * * @param driverId 司机主键 * @param orderId 订单主键 */ void grabOrder(Integer driverId, Integer orderId); /** * 司机完成取件,订单状态从已接单(3)变为派送中(4) * * @param driverId 司机主键 * @param dto 取件请求参数 */ void confirmPickup(Integer driverId, DriverPickupDTO dto); }