getInfoByTravelId($params); if (empty($getInfo['start_longitude']) || empty($getInfo['start_latitude'])) { return Util::returnArrEr('获取目的地站坐标失败!'); } return Util::returnArrSu('', ['info' => $getInfo]); } /** * Des:获取价格 * Name: getPrice * @param $params * @return array * @author 倪宗锋 */ public function getPrice($params) { /**获取两点间的距离*/ $getDistanceForPoi = $this->getDistanceForPoi($params); if ($getDistanceForPoi['flag'] == false) { return $getDistanceForPoi; } $distance = $getDistanceForPoi['data']['distance']; $distance = ceil($distance / 1000); /**获取money 应付金额*/ $totalMoney = $distance * 2; if ($totalMoney <= 10) { $totalMoney = 10; } /**获取打的金额*/ $taxiMoney = Util::getTaxiMoney($distance); return Util::returnArrSu('', ['totalMoney' => $totalMoney, 'taxiMoney' => $taxiMoney, 'distance' => $distance]); } /** * Des:获取金额根据POI * Name: getPriceForPoi * @param $params * @return array * @author 倪宗锋 */ public function getDistanceForPoi($params) { if (!Util::checkPattern('lnReg', $params['start_longitude']) || !Util::checkPattern('laReg', $params['start_latitude'])) { return Util::returnArrEr('上车点POI有误!'); } if (!Util::checkPattern('lnReg', $params['end_longitude']) || !Util::checkPattern('laReg', $params['end_latitude'])) { return Util::returnArrEr('下车点POI有误!'); } $getBd = Util::bd_encrypt($params['start_longitude'], $params['start_latitude']);//获取百度坐标 $params['start_longitude'] = $getBd['bd_lon']; $params['start_latitude'] = $getBd['bd_lat']; $getDistance = Util::getDistance($params);//公里数为每公里1元 低于10公里算10元 return Util::returnArrSu('', ['distance' => $getDistance]); } /** * Des:上门接下单 * Name: makeOrder * @param $params * @return array * @author 倪宗锋 */ public function makeOrder($params) { //校验参数合法性 if (Util::checkPattern('intVal', $params['travel_id']) == false) { return Util::returnArrEr('下单失败![params error]'); } /**获取行程信息*/ $orderTravel = new OrderTravel(); $getTravelInfo = $orderTravel->getInfoByTravelId($params);//获取行程详情 if (empty($getTravelInfo['travel_id'])) { return Util::returnArrEr('下单失败![params error]'); } /**获取价格*/ $params['end_latitude'] = $getTravelInfo['start_latitude']; $params['end_longitude'] = $getTravelInfo['start_longitude']; $getPrice = $this->getDistanceForPoi($params); if ($getPrice['flag'] == false) { return $getPrice; } $totalMoney = ceil($getPrice['data']['distance'] / 1000); $totalMoney = $totalMoney * 2; if ($totalMoney <= 10) { $totalMoney = 10; } /**设置下单参数*/ $param_arr = [ 'total_money' => $totalMoney * $params['cnt'],//总金额 'pro_cate_id' => 0,//产品ID 'prod_cnt' => $params['cnt'],//产品数量 'order_name' => '上门接服务',//订单名称 'sh_uid' => 0,//用户ID 'fx_uid' => 0,//分销商ID 'start_date' => $getTravelInfo['start_date'],//开始日期 'start_time' => '00:00:00',//开始时间 'end_date' => $getTravelInfo['start_date'],//接收日期 'end_time' => $getTravelInfo['start_time_s'],//结束时间 'category_id' => 5,//订单类型 'system' => 2,//系统 'contacts_name' => $getTravelInfo['contacts_name'],//联系人 'contacts_ID' => $getTravelInfo['contacts_ID'],//联系人证件ID 'contacts_phone' => $getTravelInfo['contacts_phone'],//联系人手机号 'prod_source' => 1,//产品来源 'start_area' => $params['start_area'],//起始地点 'end_area' => $getTravelInfo['start_area_name'] . $getTravelInfo['start_res']//结束地点 ]; $makeOrder = OrderUtil::makeUnProdOrder($param_arr); return $makeOrder; } }