|
@@ -21,7 +21,7 @@ class Order extends Model
|
|
|
'end_time' => 'datetime'
|
|
|
];
|
|
|
|
|
|
- public function buildPayInfo($user_id, $project_id, $area_id, $lat, $lng,$use_balance = 0, $coach_id = null, $car_type = 0, $coupon_id = 0, $order_id = 0): array
|
|
|
+ public function buildPayInfo($user_id, $project_id, $use_balance = 0, $coach_id = null, $car_type = 0, $coupon_id = 0, $order_id = 0, $distance = 0): array
|
|
|
{
|
|
|
|
|
|
$data['project_id'] = $project_id;
|
|
@@ -39,56 +39,76 @@ class Order extends Model
|
|
|
// 优惠卷
|
|
|
$data['coupon_id'] = $coupon_id ?: 0;
|
|
|
// 优惠金额
|
|
|
- $data['coupon_price'] = 0;
|
|
|
+ $data['coupon_price'] = number_format(0, 2);
|
|
|
|
|
|
// 折扣金额
|
|
|
- $data['discount_price'] = 0;
|
|
|
+ $data['discount_price'] = number_format(0, 2);
|
|
|
|
|
|
// 物料费
|
|
|
- $data['material_price'] = $project['material_price'] ?? 0;
|
|
|
+ $data['material_price'] = $project['material_price'] ?? number_format(0, 2);
|
|
|
|
|
|
// 车费默认值
|
|
|
- $data['car_price'] = 0;
|
|
|
+ $data['car_price'] = number_format(0, 2);
|
|
|
|
|
|
// 选择技师
|
|
|
if ($coach) {
|
|
|
$data['coach_id'] = $coach_id;
|
|
|
|
|
|
- if ($lat && $lng) {
|
|
|
- // 订单距离
|
|
|
+// if ($lat && $lng) {
|
|
|
+ // 订单距离
|
|
|
// $data['distance'] = getDriveDistance($coach['lng'], $coach['lat'], $lng, $lat, $coach['uniacid']);
|
|
|
|
|
|
// $data['distance'] += $data['car_config']['invented_distance'] * $data['distance'] / 100;
|
|
|
- //车费
|
|
|
- $data['car_price'] = 0;
|
|
|
+ //车费
|
|
|
+// $data['car_price'] = 0;
|
|
|
// $data['car_price'] = $this->getCarPrice($data['distance'], $data['car_config'], $car_type);
|
|
|
|
|
|
- }
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 距离
|
|
|
+ if ($distance) {
|
|
|
+ // 获取技师信息
|
|
|
+ // 获取车费配置
|
|
|
+ $baseCarPrice = 900;// 起步
|
|
|
+ $baseDistance = 3; // 公里
|
|
|
+ $carPrice = 300; // 每公里
|
|
|
+ $freeDistance = 3; // 免费公里
|
|
|
+ $distanceLen = $distance / 1000;
|
|
|
+ $distancePrice = $distanceLen <= $freeDistance ? 0 : ($distanceLen > $baseDistance ? ($distanceLen - $baseDistance) * $carPrice + $baseCarPrice : $baseCarPrice);
|
|
|
+ $data['car_price'] = number_format(round($distancePrice / 100), 2);
|
|
|
}
|
|
|
+
|
|
|
// 订单支付价
|
|
|
// 订单总价格
|
|
|
- $pay_total_price = $project['price'] + $data['car_price'] + $data['material_price'];
|
|
|
+ $pay_total_price = round($project['price'], 2) + round($data['car_price'], 2) + round($data['material_price'], 2);
|
|
|
+
|
|
|
// 订单总优惠
|
|
|
- $coupon_total_price = $data['coupon_price'] + $data['discount_price'];
|
|
|
+ $coupon_total_price = intval($data['coupon_price']) + intval($data['discount_price']);
|
|
|
|
|
|
// 支付金额
|
|
|
$pay_price = $pay_total_price - $coupon_total_price;
|
|
|
$pay_price <= 0 && ($pay_price = 0);
|
|
|
- $data['pay_price'] = $pay_price;
|
|
|
+ $data['pay_price'] = number_format($pay_price, 2);
|
|
|
+
|
|
|
// 余额支付
|
|
|
$data['balance_price'] = 0;
|
|
|
if ($use_balance) {
|
|
|
// 用户余额
|
|
|
$memberQuery = \App\Models\Member\User::query();
|
|
|
$user = $memberQuery->find($user_id);
|
|
|
+
|
|
|
// 余额抵扣金额
|
|
|
- $balance_price = $user['balance'] - $pay_price;
|
|
|
+ $balance_price = round($user['balance'], 2) - round($pay_price, 2);
|
|
|
if ($balance_price >= 0) {
|
|
|
- $data['balance_price'] = $pay_price;
|
|
|
- $data['pay_price'] = 0;
|
|
|
+ $data['balance_price'] = number_format($pay_price, 2);
|
|
|
+ $data['pay_price'] = number_format(0, 2);
|
|
|
} else {
|
|
|
$data['balance_price'] = $user['balance'];
|
|
|
- $data['pay_price'] = abs($balance_price);
|
|
|
+ $data['pay_price'] = number_format(abs($balance_price), 2);
|
|
|
}
|
|
|
}
|
|
|
|