链街Dcat后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.6 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. <?php
  2. namespace App\Models;
  3. use App\Admin\Common\Rpc;
  4. use Dcat\Admin\Traits\HasDateTimeFormatter;
  5. use App\Models\v3\Market as MarketModel;
  6. use Illuminate\Database\Eloquent\Model;
  7. use Illuminate\Support\Facades\DB;
  8. class ImsCjdcOrderMain extends Model
  9. {
  10. use HasDateTimeFormatter;
  11. //protected $table = 'ims_cjdc_order_main';
  12. protected $table = 'lanzu_order_main';
  13. public $timestamps = false;
  14. public function imsCjdcUser()
  15. {
  16. return $this->hasOne('\App\Models\ImsCjdcUser','id','user_id');
  17. }
  18. public function market()
  19. {
  20. return $this->hasOne('\App\Models\ImsCjdcMarket','id','market_id');
  21. }
  22. /**
  23. * 变更订单状态,
  24. * @param $oid //主订单id
  25. * @param $state //订单状态
  26. */
  27. public function modifyState($oid,$state)
  28. {
  29. $where = [];
  30. $where['state'] = $state;
  31. $where['updated_at'] = time();
  32. if ($state==3) {
  33. $where['receive_time'] = time();
  34. }elseif ($state==4){
  35. $where['complete_time'] = time();
  36. }elseif ($state==6){
  37. $where['cancel_time'] = time();
  38. }
  39. return self::where('id',$oid)->update($where);
  40. }
  41. public function updateShippingType($oid,$type)
  42. {
  43. return self::where('id',$oid)->update(['shipping_type'=>$type]);
  44. }
  45. public static function getOrderData($oid)
  46. {
  47. $order = ImsCjdcOrderMain::where('id', $oid)->first()->toArray();
  48. $order['created_at'] = date('Y-m-d H:i:s', $order['created_at']);
  49. $order['updated_at'] = $order['updated_at'] ? date('Y-m-d H:i:s', $order['updated_at']) : null;
  50. $order['pay_type'] = config('order.pay_type')[$order['pay_type']];
  51. $order['shipping_type_num'] = $order['shipping_type'];
  52. $order['shipping_type'] = config('order.shipping_type')[$order['shipping_type']];
  53. $order['horseman_name'] = $order['shipping_name']??LanzuServiceHorseman::getName($order['horseman_id']);
  54. // 获取市场
  55. $marketId = $order['market_id']?$order['market_id']:0;
  56. $market = MarketModel::getMarketInfo($marketId,'name');
  57. $order['market_name'] = $market?$market['name']:'';
  58. //获取市场经纬度
  59. //$market = LanzuMarket::where('id',$order['market_id'])->first()->toArray();
  60. //$order['distance'] = Rpc::getDistance($market['lng'],$market['lat'],$order['lng'],$order['lat'])['result'];
  61. if ($order['delivery_distance']>1000){
  62. $order['delivery_distance']= number_format(($order['delivery_distance']/1000), 1) .'km';
  63. }else{
  64. $order['delivery_distance'].= '米';
  65. }
  66. return $order;
  67. }
  68. }