OrderExpressClass.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. return $info;
  41. }
  42. //新增快递 ssh 2021.3.16
  43. public static function addExpress($expData)
  44. {
  45. return self::add($expData);
  46. }
  47. //已取货
  48. public static function pickUp($order,$dmName,$dmMobile)
  49. {
  50. $orderSn = $order['orderSn'];
  51. $data = [
  52. 'dmName'=>$dmName,
  53. 'dmMobile'=>$dmMobile,
  54. ];
  55. return self::updateByCondition(['orderSn'=>$orderSn],$data);
  56. }
  57. //配送完成
  58. public static function reach($order)
  59. {
  60. self::updateExpressStatus($order['orderSn'],OrderExpressClass::STATUS_COMPLETE);
  61. return true;
  62. }
  63. //修改快递状态
  64. public static function updateExpressStatus($orderSn,$status)
  65. {
  66. return self::updateByCondition(['orderSn'=>$orderSn],['status'=>$status]);
  67. }
  68. }