package com.doumee.api.web; import com.doumee.core.annotation.LoginRequired; import com.doumee.core.annotation.trace.Trace; import com.doumee.core.model.ApiResponse; 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.service.business.DriverInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** * 司机验证码登录接口 * @author rk * @date 2026/04/08 */ @Api(tags = "司机验证码登录") @Trace(exclude = true) @RestController @RequestMapping("/web/driverInfo") @Slf4j public class DriverInfoApi extends ApiController { @Autowired private DriverInfoService driverInfoService; @Trace @ApiOperation(value = "发送验证码", notes = "司机验证码登录") @GetMapping("/sendCode") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "String", name = "telephone", value = "手机号", required = true) }) public ApiResponse sendCode(@RequestParam String telephone) { driverInfoService.sendRegisterCode(telephone); return ApiResponse.success("验证码发送成功"); } @Trace @ApiOperation(value = "司机验证码登录", notes = "手机号+验证码,无账号自动注册并登录") @PostMapping("/register") public ApiResponse register(@RequestBody DriverRegisterRequest request) { return ApiResponse.success("注册成功", driverInfoService.register(request)); } @Trace @ApiOperation(value = "司机登录", notes = "手机号+密码登录") @PostMapping("/login") public ApiResponse login(@RequestBody DriverLoginRequest request) { return ApiResponse.success("登录成功", driverInfoService.login(request)); } @LoginRequired @Trace @ApiOperation(value = "提交实名认证", notes = "初次提交或驳回后修改") @PostMapping("/submitVerify") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) }) public ApiResponse submitVerify(@RequestBody DriverVerifyRequest request) { driverInfoService.submitVerify(this.getMemberId(), request); return ApiResponse.success("提交成功"); } @LoginRequired @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())); } }