123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- namespace App\Models\Service;
- use App\Models\Coach\User;
- use Illuminate\Database\Eloquent\Factories\HasFactory;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Support\Facades\DB;
- class Order extends Model
- {
- use HasFactory;
- protected $table = 'service_order';
- protected $guarded = [];
- protected $appends = [];
- protected $casts = [
- '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
- {
- $data['project_id'] = $project_id;
- // 通过定位获取代理
- // 获取代理项目
- $project = Project::query()->find($data['project_id']);
- // $coupon_model= new Coupon();
- $coach_model = new User();
- // $car_config_model = new CarPrice();
- $coach = $coach_model->info($coach_id);
- // 优惠卷
- $data['coupon_id'] = $coupon_id ?: 0;
- // 优惠金额
- $data['coupon_price'] = 0;
- // 折扣金额
- $data['discount_price'] = 0;
- // 物料费
- $data['material_price'] = $project['material_price'] ?? 0;
- // 车费默认值
- $data['car_price'] = 0;
- // 选择技师
- if ($coach) {
- $data['coach_id'] = $coach_id;
- 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'] = $this->getCarPrice($data['distance'], $data['car_config'], $car_type);
- }
- }
- // 订单支付价
- // 订单总价格
- $pay_total_price = $project['price'] + $data['car_price'] + $data['material_price'];
- // 订单总优惠
- $coupon_total_price = $data['coupon_price'] + $data['discount_price'];
- // 支付金额
- $pay_price = $pay_total_price - $coupon_total_price;
- $pay_price <= 0 && ($pay_price = 0);
- $data['pay_price'] = $pay_price;
- // 余额支付
- $data['balance_price'] = 0;
- if ($use_balance) {
- // 用户余额
- $user['balance'] = 0;
- // 余额抵扣金额
- $balance_price = $user['balance'] - $pay_price;
- if ($balance_price >= 0) {
- $data['balance_price'] = $pay_price;
- $data['pay_price'] = 0;
- } else {
- $data['balance_price'] = $user['balance'];
- $data['pay_price'] = abs($balance_price);
- }
- }
- // 店铺
- // $data['store_id'] = $coach['store_id'];
- // 服务时长
- $data['time_long'] = $project['time_long'];
- return $data;
- }
- }
|