rk
20 小时以前 c9f0611f690b3fb0cb120f5b6799f94977d3f129
server/web/src/main/java/com/doumee/api/web/DriverInfoApi.java
@@ -1,12 +1,21 @@
package com.doumee.api.web;
import com.doumee.core.annotation.LoginDriverRequired;
import com.doumee.core.annotation.LoginRequired;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.DriverInfo;
import com.doumee.dao.dto.DriverActiveOrderDTO;
import com.doumee.dao.dto.DriverGrabOrderDTO;
import com.doumee.dao.dto.DriverLoginRequest;
import com.doumee.dao.dto.DriverRegisterRequest;
import com.doumee.dao.dto.DriverVerifyRequest;
import com.doumee.dao.vo.AccountResponse;
import com.doumee.dao.vo.DriverCenterVO;
import com.doumee.dao.vo.DriverGrabOrderVO;
import com.doumee.dao.vo.DriverOrderDetailVO;
import com.doumee.service.business.DriverInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -15,6 +24,9 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
 * 司机验证码登录接口
@@ -56,7 +68,7 @@
        return ApiResponse.success("登录成功", driverInfoService.login(request));
    }
    @LoginRequired
    @LoginDriverRequired
    @Trace
    @ApiOperation(value = "提交实名认证", notes = "初次提交或驳回后修改")
    @PostMapping("/submitVerify")
@@ -64,19 +76,104 @@
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse submitVerify(@RequestBody DriverVerifyRequest request) {
        driverInfoService.submitVerify(this.getMemberId(), request);
        driverInfoService.submitVerify(this.getDriverId(), request);
        return ApiResponse.success("提交成功");
    }
    @LoginRequired
    @LoginDriverRequired
    @Trace
    @ApiOperation(value = "查询实名认证详情", notes = "司机端查询")
    @GetMapping("/verifyDetail")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse verifyDetail() {
        return ApiResponse.success(driverInfoService.getVerifyDetail(this.getMemberId()));
    public ApiResponse<DriverInfo> verifyDetail() {
        return ApiResponse.success(driverInfoService.getVerifyDetail(this.getDriverId()));
    }
    @LoginDriverRequired
    @Trace
    @ApiOperation(value = "切换接单状态", notes = "0=未接单;1=接单中")
    @GetMapping("/updateAcceptingStatus")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "int", name = "status", value = "接单状态:0=未接单;1=接单中", required = true)
    })
    public ApiResponse updateAcceptingStatus(@RequestParam Integer status) {
        driverInfoService.updateAcceptingStatus(this.getDriverId(), status);
        return ApiResponse.success("操作成功");
    }
    @LoginDriverRequired
    @Trace
    @ApiOperation(value = "更新实时定位", notes = "司机端上报当前位置经纬度")
    @GetMapping("/updateLocation")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Double", name = "longitude", value = "经度", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Double", name = "latitude", value = "纬度", required = true)
    })
    public ApiResponse updateLocation(@RequestParam Double longitude, @RequestParam Double latitude) {
        driverInfoService.updateLocation(this.getDriverId(), longitude, latitude);
        return ApiResponse.success("操作成功");
    }
    @LoginDriverRequired
    @Trace
    @ApiOperation(value = "司机端首页信息", notes = "姓名、头像、车牌号、评分、今日佣金、今日接单数、余额")
    @GetMapping("/centerInfo")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<DriverCenterVO> centerInfo() {
        return ApiResponse.success("操作成功", driverInfoService.getDriverCenterInfo(this.getDriverId()));
    }
    @LoginDriverRequired
    @Trace
    @ApiOperation(value = "司机抢单大厅", notes = "分页查询可抢的异地寄存订单")
    @PostMapping("/grabOrderHall")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<PageData<DriverGrabOrderVO>> grabOrderHall(@RequestBody PageWrap<DriverGrabOrderDTO> pageWrap) {
        return ApiResponse.success("操作成功", driverInfoService.grabOrderHall(this.getDriverId(), pageWrap));
    }
    @LoginDriverRequired
    @Trace
    @ApiOperation(value = "司机进行中订单", notes = "查询已抢单(status=3)或派送中(status=4)的订单列表")
    @PostMapping("/activeOrders")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<List<DriverGrabOrderVO>> activeOrders(@RequestBody @Valid DriverActiveOrderDTO dto) {
        return ApiResponse.success("操作成功", driverInfoService.activeOrders(this.getDriverId(), dto));
    }
    @LoginDriverRequired
    @Trace
    @ApiOperation(value = "司机端订单详情", notes = "根据订单主键查询详情")
    @GetMapping("/orderDetail")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "orderId", value = "订单主键", required = true)
    })
    public ApiResponse<DriverOrderDetailVO> orderDetail(@RequestParam Integer orderId) {
        return ApiResponse.success("操作成功", driverInfoService.driverOrderDetail(this.getDriverId(), orderId));
    }
    @LoginDriverRequired
    @Trace
    @ApiOperation(value = "司机取消订单", notes = "已接单(status=2)时取消,释放订单回抢单大厅")
    @PostMapping("/cancelOrder")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse cancelOrder(@RequestParam Integer orderId,
                                   @RequestParam(required = false) String reason) {
        driverInfoService.cancelOrder(this.getDriverId(), orderId, reason);
        return ApiResponse.success("取消成功");
    }
}