package com.doumee.cloud.web; import cn.hutool.http.useragent.Platform; import com.doumee.api.BaseController; import com.doumee.config.annotation.LoginNoRequired; import com.doumee.config.annotation.LoginRequired; import com.doumee.core.annotation.trace.Trace; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.model.*; import com.doumee.dao.web.reqeust.*; import com.doumee.dao.web.response.DriverHomeVO; import com.doumee.dao.web.response.LineUpVO; import com.doumee.dao.web.response.MemberVO; import com.doumee.dao.web.response.VisitRecordVO; import com.doumee.service.business.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/12/28 14:31 */ @Api(tags = "【公众号】物流车司机业务") @Trace(exclude = true) @RestController @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/driverPlatform") @Slf4j @LoginNoRequired public class DriverPlatformController extends BaseController { @Autowired private VisitsService visitsService; @Autowired private PlatformJobService platformJobService; @Autowired private PlatformBooksService platformBooksService; @Autowired private PlatformReasonService platformReasonService; @Autowired private PlatformWmsJobService platformWmsJobService; @ApiOperation("入园原因") @GetMapping("/platformReasonList") public ApiResponse> platformReasonList (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { List platformReasons = platformReasonService.findList(null); return ApiResponse.success(platformReasons); } @ApiOperation("司机首页信息") @GetMapping("/driverHome") public ApiResponse driverHome (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { DriverHomeVO driverHomeVO = platformJobService.getDriverHome(getLoginUser(token)); return ApiResponse.success(driverHomeVO); } @ApiOperation("查询可预约量") @PostMapping("/checkSurplusNum") public ApiResponse checkSurplusNum (@RequestBody PlatformBooksCheckNumDTO platformBooksCheckNumDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(platformBooksService.checkNum(platformBooksCheckNumDTO)); } @ApiOperation("物流车预约") @PostMapping("/apply") public ApiResponse apply (@RequestBody PlatformBooksApplyDTO platformBooksApplyDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { LoginUserInfo loginUserInfo = getLoginUser(token); platformBooksApplyDTO.setUserId(loginUserInfo.getMemberId()); platformBooksApplyDTO.setDriverId(loginUserInfo.getMemberId()); return ApiResponse.success(platformBooksService.apply(platformBooksApplyDTO)); } @ApiOperation("物流车预约修改") @PostMapping("/applyEdit") public ApiResponse applyEdit (@RequestBody PlatformBooksApplyDTO platformBooksApplyDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { LoginUserInfo loginUserInfo = getLoginUser(token); platformBooksApplyDTO.setUserId(loginUserInfo.getMemberId()); platformBooksApplyDTO.setDriverId(loginUserInfo.getMemberId()); return ApiResponse.success(platformBooksService.edit(platformBooksApplyDTO)); } @ApiOperation("物流车预约记录") @PostMapping("/page") public ApiResponse> findPage (@RequestBody PageWrap pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { LoginUserInfo loginUserInfo = this.getLoginUser(token); pageWrap.getModel().setQueryDate(DateUtil.getBeforDay(new Date(),30)); pageWrap.getModel().setDriverPhone(loginUserInfo.getMobile()); return ApiResponse.success(platformBooksService.findPage(pageWrap)); } @ApiOperation("物流车预约详情") @GetMapping("/getDetail") public ApiResponse getDetail (@RequestParam Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { PlatformBooks platformBooks = platformBooksService.getDetail(id,getLoginUser(token).getMemberId()); return ApiResponse.success(platformBooks); } @ApiOperation("物流车预约撤销") @PostMapping("/revoke") public ApiResponse revoke (@RequestBody RevokeDTO revokeDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ platformBooksService.revoke(revokeDTO,getLoginUser(token)); return ApiResponse.success("操作成功"); } /******************************************************司机任务接口************************************************************************/ @ApiOperation("任务确认") @PostMapping("/confirmTask") public ApiResponse confirmTask (@RequestBody ConfirmTaskDTO confirmTaskDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ confirmTaskDTO.setLoginUserInfo(getLoginUser(token)); platformJobService.confirmTask(confirmTaskDTO); return ApiResponse.success("操作成功"); } @ApiOperation("任务签到") @PostMapping("/signIn") public ApiResponse signIn (@RequestBody SignInDTO signInDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ signInDTO.setLoginUserInfo(getLoginUser(token)); platformJobService.signIn(signInDTO); return ApiResponse.success("操作成功"); } @ApiOperation("任务详情") @PostMapping("/jobDetail") public ApiResponse jobDetail (@RequestBody JobDetailDTO jobDetailDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ return ApiResponse.success(platformJobService.getDetail(jobDetailDTO)); } @ApiOperation("查询排队情况") @PostMapping("/lineUpDetail") public ApiResponse lineUpDetail (@RequestBody LineUpDetailDTO lineUpDetailDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ return ApiResponse.success(platformJobService.lineUpDetail(lineUpDetailDTO)); } @ApiOperation("WMS运输单详情") @GetMapping("/wmsJobDetail") public ApiResponse wmsJobDetail(@RequestParam Integer id) { return ApiResponse.success(platformWmsJobService.findByDetailId(id)); } }