CityConfig.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace app\api\model\service;
  3. use think\Model;
  4. use addons\service\library\Map;
  5. use think\Exception;
  6. class CityConfig extends Model
  7. {
  8. // 表名
  9. protected $name = 'service_city_config';
  10. // 自动写入时间戳字段
  11. protected $autoWriteTimestamp = 'int';
  12. // 定义时间戳字段名
  13. protected $createTime = 'createtime';
  14. protected $updateTime = 'updatetime';
  15. public static function settleTravelPrice($param)
  16. {
  17. $cityConfig = self::where(['city'=>$param['city']])->find();
  18. $addressInfo = \app\api\model\service\Address::where(['id'=>$param['address_id']])->field('lng,lat')->find();
  19. $skill = Skill::where(['id'=>$param['skill_id'],'state'=>1])->field('lng,lat')->find();
  20. $distance = Map::countDistance(['user'=>['lng'=>$addressInfo['lng'],'lat'=>$addressInfo['lat']],'skill'=>['lng'=>$skill['lng'],'lat'=>$skill['lat']]]);
  21. $data['distance'] = $distance;
  22. $data['traveltype'] = $param['traveltype'];
  23. //计算出租车费用
  24. if($param['traveltype'] == 1){
  25. $data['distance_price'] = $distance<=$cityConfig['init_distance']?sprintf("%.2f",$cityConfig['init_price']*2):sprintf("%.2f",(($distance-$cityConfig['init_distance'])*$cityConfig['add_price']+$cityConfig['init_price'])*2);
  26. }elseif($param['traveltype'] == 2){
  27. $data['distance_price'] = 0.00;
  28. }
  29. return $data;
  30. }
  31. }