|
- <?php
- /**
- *
- * ============================================================================
- * * 版权所有 蜘蛛出行 * *
- * 网站地址: http://www.zhizhuchuxing.com
- * ----------------------------------------------------------------------------
- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
- * 使用;不允许对程序代码以任何形式任何目的的再发布。
- * ============================================================================
- * Author By: 倪宗锋
- * PhpStorm Shuttle.php
- * Create By 2017/7/3 15:15 $
- */
-
- namespace zzcx\service\home;
-
-
- use common\models\OrderTravel;
- use common\util\OrderUtil;
- use common\util\Util;
-
- class Shuttle
- {
- /**
- * Des:获取行程信息
- * Name: getTravelInfo
- * @param $params
- * @return array
- * @author 倪宗锋
- */
- public function getTravelInfo($params)
- {
- $orderTravel = new OrderTravel();
- $getInfo = $orderTravel->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;
- }
- }
|