/**
   * Accepts a POST request with an XML message parameter
   *
   * @param message serialized Message object
   * @return a string with the result of the POST
   */
  @RequestMapping(
      value = "addcarandprice",
      method = RequestMethod.POST,
      consumes = "application/json",
      produces = "application/json")
  public @ResponseBody ResultResponse addCarAndPrice(
      @RequestBody AddCarAndPriceRequest req,
      HttpServletResponse response,
      HttpServletRequest request) {
    ResultResponse rp = new ResultResponse();
    rp.setResult(Cookie.RESPONSE_BAD_REQUEST);
    String strId = SecurityContextHolder.getContext().getAuthentication().getName();
    long userId =
        Cookie.checkCommonUser(
            strId, response, request, SecurityContextHolder.getContext().getAuthentication());
    // LogUtil.i("test:", "userId =" + userId + "price:"+req.getPrice());
    if (0 >= AddCarAndPriceRequest.checkParameters(req)) {
      return rp;
    }
    if (!priceRequestBo.isPriceValid(req)) {
      rp.setResult(Cookie.RESPONSE_USE_ERROR_MSG);
      rp.setErrorMsg("所输价格不合理,请重新录入");
      return rp;
    }
    Long driverId = req.getDriverUserId();

    PositionRequest pos = positionRequestBo.findById(userId, driverId);
    // 不在我的车场内,先添加到车场
    if (pos == null || pos.getType() < 0) {
      int size = positionRequestBo.getRemainFocusSize(userId);
      if (size <= 0) {
        rp.setResult(Cookie.RESPONSE_TOO_MUCH);
        return rp;
      }
      ProcessPositionRequest processPositionRequest = new ProcessPositionRequest(driverId);
      rp = positionRequestBo.askPosition(processPositionRequest, userId, 1, 1);
      if (rp.getResult() <= 0) {
        return rp;
      }
    }
    // 添加或更新价格
    rp = priceRequestBo.updatePrice(req, userId);
    return rp;
  }