OrderExpressClass.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace bizGhs\order\classes;
  3. use bizGhs\express\services\DadaExpressServices;
  4. use Yii;
  5. use bizGhs\base\classes\BaseClass;
  6. class OrderExpressClass extends BaseClass
  7. {
  8. const STATUS_INIT = 1; //1待接单
  9. const STATUS_RECEIVE = 2; //2已接单
  10. const STATUS_COMPLETE = 3; //已完成
  11. const STATUS_CANCEL = 4; //取消
  12. public static $baseFile = '\bizGhs\order\models\OrderExpress';
  13. public static $statusMap = [
  14. self::STATUS_INIT => '待接单',
  15. self::STATUS_RECEIVE => '已接单',
  16. self::STATUS_COMPLETE => '已完成',
  17. self::STATUS_CANCEL => '取消',
  18. ];
  19. //获取配送进展
  20. public static function getProgress($showExpress, $order)
  21. {
  22. if ($showExpress == false) {
  23. return [];
  24. }
  25. if ($order['sendType'] != OrderClass::SEND_TYPE_THIRD) {
  26. return [];
  27. }
  28. $res = DadaExpressServices::statusOrder($order['orderSn']);
  29. return [
  30. 'progressName' => $res['statusMsg'] ?? '',
  31. ];
  32. }
  33. //取当前订单的配送信息
  34. public static function getExpress($orderId)
  35. {
  36. $info = self::getByCondition(['orderId' => $orderId]);
  37. if (empty($info)) {
  38. return [];
  39. }
  40. //m => km lqh 2021.6.4
  41. $info['distance'] = round($info['distance']/1000,2);
  42. return $info;
  43. }
  44. //新增快递 ssh 2021.3.16
  45. public static function addExpress($expData)
  46. {
  47. return self::add($expData);
  48. }
  49. //已取货
  50. public static function pickUp($order, $dmName, $dmMobile)
  51. {
  52. $order->dmName = $dmName;
  53. $order->dmMobile = $dmMobile;
  54. return $order->save();
  55. }
  56. public static function getByOrderSn($orderSn, $returnObj = false)
  57. {
  58. return self::getByCondition(['orderSn' => $orderSn], $returnObj);
  59. }
  60. //修改快递状态
  61. public static function updateExpressStatus($orderSn, $status)
  62. {
  63. return self::updateByCondition(['orderSn' => $orderSn], ['status' => $status]);
  64. }
  65. }