package com.stylefeng.guns.modular.taxi.controller; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import com.stylefeng.guns.modular.taxi.warpper.OrderTaxiWarpper; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; /** * 出租车订单控制器 */ @RestController @RequestMapping("") public class OrderTaxiController { @Autowired private IOrderTaxiService orderTaxiService; @Autowired private IUserInfoService userInfoService; /** * 出租车下单操作(APP下单和扫码下单) * @param orderTaxiWarpper * @param request * @return */ @ResponseBody @PostMapping("/api/taxi/taxiOrder") @ApiOperation(value = "出租车下单操作(APP下单和扫码下单)", tags = {"用户端-出租车"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil taxiOrder(OrderTaxiWarpper orderTaxiWarpper, HttpServletRequest request){ try { OrderTaxi orderTaxi = OrderTaxiWarpper.getOrderTaxi(orderTaxiWarpper); Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } return orderTaxiService.taxiOrder(orderTaxi, uid); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 手动确认订单完成 * @param orderId * @param orderType * @return */ @ResponseBody @PostMapping("/api/taxi/completeOrder") @ApiOperation(value = "手动确认订单完成", tags = {"用户端-出租车"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil completeOrder(Integer orderId, Integer orderType){ try { return orderTaxiService.completeOrder(orderId, orderType); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 根据起终点经纬度计算出租车预估金额 */ @ResponseBody @PostMapping("/api/taxi/taxiPreAmountCalculate") @ApiOperation(value = "根据起终点经纬度计算出租车预估金额", tags = {"用户端-出租车"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "起点经度", name = "startLon", required = true, dataType = "double"), @ApiImplicitParam(value = "起点纬度", name = "startLat", required = true, dataType = "double"), @ApiImplicitParam(value = "终点经度", name = "endLon", required = true, dataType = "double"), @ApiImplicitParam(value = "终点纬度", name = "endLat", required = true, dataType = "double") }) public ResultUtil taxiPreAmountCalculate(Double startLon, Double startLat, Double endLon, Double endLat){ try { return orderTaxiService.taxiPreAmountCalculate(startLon, startLat, endLon, endLat); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } }