/** * 根据orderId获得运营商定位 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 = "getsmsposbyorderid", method = RequestMethod.POST, consumes = "application/json", produces = "application/json") public @ResponseBody PositionResponse getSmsPosByOrderId( @RequestBody IdRequest req, HttpServletResponse response, HttpServletRequest request) { PositionResponse rp = new PositionResponse(); rp.setResult(Cookie.RESPONSE_BAD_REQUEST); String strId = SecurityContextHolder.getContext().getAuthentication().getName(); long userId = Cookie.checkCommonUser( strId, response, request, SecurityContextHolder.getContext().getAuthentication()); try { Order order = orderBo.findById(req.getId()); if (order == null) { return rp; } if (System.currentTimeMillis() > order.getExpireTime()) { rp.setResult(Cookie.RESPONSE_TIMEOUT); return rp; } if (!order.getCargoUserId().equals(userId)) { rp.setResult(Cookie.RESPONSE_PERMISSION_DENIED); return rp; } User user = userBo.findById(order.getTruckUserId()); if (user != null) { Position position = positionBo.createIfNull(order.getTruckUserId()); rp.setCarrier(PositionHelper.CHINA_MOBILE); // rp.setCarrier(PositionHelper.validateMobile(user.getTelephone().toString())); if (position.getPositionTime() < (System.currentTimeMillis() - TimeUtils.ONE_MINUTE * 15)) { PositionInfo info = positionBo.getSmsLocation(1, userId, user.getTelephone(), user); rp.setLat(info.getLat()); rp.setLon(info.getLon()); rp.setSmsLocate(info.getType()); rp.setPositionTime(System.currentTimeMillis()); rp.setSmsLocateReplyNumber( PositionHelper.getLocateReplyNumber(user.getTelephone().toString())); rp.setResult(Cookie.RESPONSE_SUCCESS); return rp; } else { rp.setLat(position.getLat()); rp.setLon(position.getLon()); rp.setPositionTime(System.currentTimeMillis()); rp.setResult(Cookie.RESPONSE_SUCCESS); return rp; } } else { rp.setIsRegister(0); UnregisterUser unregisterUser = unregisterUserBo.findById(order.getTruckUserId()); if (unregisterUser != null) { rp.setCarrier(PositionHelper.CHINA_MOBILE); // // rp.setCarrier(PositionHelper.validateMobile(unregisterUser.getTelephone().toString())); if (unregisterUser.getPositionTime() < (System.currentTimeMillis() - TimeUtils.ONE_MINUTE * 15)) { PositionInfo info = unregisterUserBo.getSmsLocation(unregisterUser, 1, userId); rp.setLat(info.getLat()); rp.setLon(info.getLon()); rp.setSmsLocate(info.getType()); rp.setPositionTime(System.currentTimeMillis()); rp.setSmsLocateReplyNumber( PositionHelper.getLocateReplyNumber(unregisterUser.getTelephone().toString())); rp.setResult(Cookie.RESPONSE_SUCCESS); return rp; } else { rp.setLat(unregisterUser.getLat()); rp.setLon(unregisterUser.getLon()); rp.setPositionTime(System.currentTimeMillis()); rp.setResult(Cookie.RESPONSE_SUCCESS); } } } } catch (Exception e) { e.printStackTrace(); rp.setResult(Cookie.RESPONSE_SERVER_QUERY_ERROR); } return rp; }
/** * 根据用户id获得运营商定位 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 = "getsmspos", method = RequestMethod.POST, consumes = "application/json", produces = "application/json") public @ResponseBody GetSmsLocateResponse getSmsPos( @RequestBody IdTypeRequest req, HttpServletResponse response, HttpServletRequest request) { GetSmsLocateResponse rp = new GetSmsLocateResponse(); rp.setResult(Cookie.RESPONSE_BAD_REQUEST); String strId = SecurityContextHolder.getContext().getAuthentication().getName(); long userId = Cookie.checkCommonUser( strId, response, request, SecurityContextHolder.getContext().getAuthentication()); try { Profile profile = profileBo.findById(userId); if (profile.getMemberLocateCount() <= 0) { rp.setResult(Cookie.RESPONSE_NOT_ENOUGH); return rp; } rp.setCount(profile.getMemberLocateCount()); User user = userBo.findById(req.getId()); if (user != null) { // int carrier = PositionHelper.validateMobile(user.getTelephone().toString()); Position pos = positionBo.createIfNull(req.getId()); rp.setCarrier(PositionHelper.CHINA_MOBILE); if (pos.getPositionTime() < (System.currentTimeMillis() - TimeUtils.ONE_MINUTE * 5)) { PositionInfo info = positionBo.getSmsLocation(req.getType(), userId, user.getTelephone(), user); rp.setLat(info.getLat()); rp.setLon(info.getLon()); rp.setSmsLocate(info.getType()); rp.setPositionTime(System.currentTimeMillis()); rp.setSmsLocateReplyNumber( PositionHelper.getLocateReplyNumber(user.getTelephone().toString())); if (info.getType() == Constant.SMS_LOCATE_SUCCESS) { profileBo.detractMemberLocateCount(userId); rp.setCount(profile.getMemberLocateCount() - 1); } rp.setResult(Cookie.RESPONSE_SUCCESS); return rp; } else { rp.setLat(pos.getLat()); rp.setLon(pos.getLon()); rp.setPositionTime(System.currentTimeMillis()); rp.setResult(Cookie.RESPONSE_SUCCESS); profileBo.detractMemberLocateCount(userId); rp.setCount(profile.getMemberLocateCount() - 1); return rp; } } else { UnregisterUser unregisterUser = unregisterUserBo.findById(req.getId()); // int carrier = PositionHelper.validateMobile(unregisterUser.getTelephone().toString()); rp.setCarrier(PositionHelper.CHINA_MOBILE); if (unregisterUser != null) { rp.setCount(profile.getMemberLocateCount()); if (unregisterUser.getPositionTime() < (System.currentTimeMillis() - TimeUtils.ONE_MINUTE * 5)) { PositionInfo info = unregisterUserBo.getSmsLocation(unregisterUser, req.getType(), userId); rp.setLat(info.getLat()); rp.setLon(info.getLon()); rp.setSmsLocate(info.getType()); rp.setPositionTime(System.currentTimeMillis()); rp.setSmsLocateReplyNumber( PositionHelper.getLocateReplyNumber(unregisterUser.getTelephone().toString())); if (info.getType() == Constant.SMS_LOCATE_SUCCESS) { profileBo.detractMemberLocateCount(userId); rp.setCount(profile.getMemberLocateCount() - 1); } rp.setResult(Cookie.RESPONSE_SUCCESS); return rp; } else { rp.setLat(unregisterUser.getLat()); rp.setLon(unregisterUser.getLon()); rp.setPositionTime(System.currentTimeMillis()); rp.setResult(Cookie.RESPONSE_SUCCESS); profileBo.detractMemberLocateCount(userId); rp.setCount(profile.getMemberLocateCount() - 1); } } } } catch (Exception e) { e.printStackTrace(); rp.setResult(Cookie.RESPONSE_SERVER_QUERY_ERROR); } return rp; }