doum
21 小时以前 7a0b33a5f2e0ba589bf35a1b8d896700a21f94a4
server/web/src/main/java/com/doumee/api/web/DriverInfoApi.java
@@ -12,13 +12,19 @@
import com.doumee.dao.dto.DriverGrabOrderDTO;
import com.doumee.dao.dto.DriverLoginRequest;
import com.doumee.dao.dto.DriverDeliverDTO;
import com.doumee.dao.dto.DriverOrderPageDTO;
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 com.doumee.dao.dto.CancelOrderDTO;
import com.doumee.dao.dto.ChangePasswordDTO;
import com.doumee.dao.vo.DriverActiveOrderCountVO;
import com.doumee.dao.vo.DriverCancelLimitVO;
import com.doumee.dao.vo.DriverCenterVO;
import com.doumee.dao.vo.DriverGrabOrderVO;
import com.doumee.dao.vo.DriverOrderDetailVO;
import com.doumee.core.utils.jpush.JPushUtil;
import com.doumee.service.business.DriverInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -30,14 +36,13 @@
import javax.validation.Valid;
import java.util.List;
import java.util.Map;
/**
 * 司机验证码登录接口
 * @author rk
 * @date 2026/04/08
 */
@Api(tags = "司机验证码登录")
@Api(tags = "司机业务接口")
@Trace(exclude = true)
@RestController
@RequestMapping("/web/driverInfo")
@@ -158,7 +163,7 @@
    @LoginDriverRequired
    @Trace
    @ApiOperation(value = "司机抢单", notes = "对已寄存(status=2)的异地寄存订单发起抢单")
    @PostMapping("/grabOrder")
    @GetMapping("/grabOrder")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "orderId", value = "订单主键", required = true)
@@ -198,9 +203,8 @@
    @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);
    public ApiResponse cancelOrder(@RequestBody @Valid CancelOrderDTO dto) {
        driverInfoService.cancelOrder(this.getDriverId(), dto.getOrderId(), dto.getCancelReason());
        return ApiResponse.success("取消成功");
    }
@@ -235,9 +239,9 @@
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse changePassword(@RequestParam String newPassword) {
    public ApiResponse changePassword(@RequestBody @Valid ChangePasswordDTO dto) {
        String token = this.getRequest().getHeader(JwtTokenUtil.HEADER_KEY);
        driverInfoService.changePassword(this.getDriverId(), newPassword, token);
        driverInfoService.changePassword(this.getDriverId(), dto.getOldPassword(), dto.getNewPassword(), token);
        return ApiResponse.success("密码修改成功,请重新登录");
    }
@@ -248,8 +252,61 @@
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<Map<String, Integer>> activeOrderCount() {
    public ApiResponse<DriverActiveOrderCountVO> activeOrderCount() {
        return ApiResponse.success("操作成功", driverInfoService.getActiveOrderCount(this.getDriverId()));
    }
    @LoginDriverRequired
    @Trace
    @ApiOperation(value = "司机订单分页", notes = "查询司机的全部/待取件/配送中/已完成订单")
    @PostMapping("/orderPage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<PageData<DriverGrabOrderVO>> orderPage(@RequestBody PageWrap<DriverOrderPageDTO> pageWrap) {
        return ApiResponse.success("操作成功", driverInfoService.driverOrderPage(this.getDriverId(), pageWrap));
    }
    @LoginDriverRequired
    @Trace
    @ApiOperation(value = "今日可取消次数", notes = "返回司机今日取消次数上限、已取消次数、剩余可取消次数")
    @GetMapping("/cancelLimit")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<DriverCancelLimitVO> cancelLimit() {
        return ApiResponse.success("操作成功", driverInfoService.getTodayCancelLimit(this.getDriverId()));
    }
    @ApiOperation("校验司机token是否有效")
    @GetMapping("/checkToken")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "token", value = "司机token", required = true)
    })
    public ApiResponse<Boolean> checkToken(@RequestParam String token) {
        return ApiResponse.success(driverInfoService.checkDriverToken(token));
    }
    @LoginDriverRequired
    @ApiOperation("注册极光推送别名")
    @PostMapping("/registerJpushAlias")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "司机token值", required = true)
    })
    public ApiResponse registerJpushAlias(@RequestParam String jpushAlias) {
        driverInfoService.registerJpushAlias(this.getDriverId(), jpushAlias);
        return ApiResponse.success("操作成功");
    }
    @ApiOperation("极光推送测试")
    @GetMapping("/testJpush")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "title", value = "通知标题", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "content", value = "通知内容", required = true)
    })
    public ApiResponse<Boolean> testJpush(@RequestParam String telephone, @RequestParam String title, @RequestParam String content) {
        boolean result = JPushUtil.sendByAlias(org.springframework.util.DigestUtils.md5DigestAsHex(telephone.getBytes()), title, content, null);
        return ApiResponse.success("推送" + (result ? "成功" : "失败"), result);
    }
}