Browse Source

fix:同步小程序接口

super-yimizi 1 month ago
parent
commit
51fd18c621

+ 11 - 0
application/api/controller/Order.php

@@ -465,4 +465,15 @@ class Order extends Base
         $info = OrderService::getOrderStatusCount($userId);
         $info = OrderService::getOrderStatusCount($userId);
         $this->success('获取成功', $info);
         $this->success('获取成功', $info);
     }
     }
+
+    public  function getWechatMiniProgramOrderDelivery(){
+          $transactionId  = $this->request->post('transaction_id');
+          if(empty($transactionId )){
+            $this->error('请上传正确的参数');
+          }
+          $arrReturn = [];
+          $arrReturn['errcode'] = 0;
+          $arrReturn['order_state'] = 3;
+          $this->success('获取成功', $arrReturn);
+    }
 }
 }

+ 84 - 0
application/common/Enum/OrderGoodsEnum.php

@@ -0,0 +1,84 @@
+<?php
+
+namespace app\common\Enum;
+
+class OrderGoodsEnum
+{
+    
+    // 发货状态
+    const DELIVERY_STATUS_REFUSE = -1;        // 已拒收
+    const DELIVERY_STATUS_NOSEND = 0;       // 未发货
+    const DELIVERY_STATUS_SENDED = 1;       // 已发货
+    const DELIVERY_STATUS_GETED = 2;        // 已收货 
+
+    const INSPECT_STATUS_NO = 0; // 未验货
+    const INSPECT_STATUS_PASS = 1; // 验货通过
+    const INSPECT_STATUS_FAIL = 2; // 验货不通过
+   
+    // 售后状态
+    const AFTERSALE_STATUS_REFUSE = -1;       // 拒绝
+    const AFTERSALE_STATUS_NOAFTER = 0;       // 未申请
+    const AFTERSALE_STATUS_ING = 1;       // 申请售后
+    const AFTERSALE_STATUS_COMPLETED = 2;        // 售后完成
+
+
+    // 退款状态
+    const REFUND_STATUS_NOREFUND = 0;       // 退款状态 未申请
+    const REFUND_STATUS_AGREE = 1;       // 已同意
+    const REFUND_STATUS_COMPLETED = 2;       // 退款完成     
+
+    // 评价状态
+    const COMMENT_STATUS_NO = 0;       // 待评价
+    const COMMENT_STATUS_OK = 1;       // 已评价
+
+    public static function getDeliveryStatusLabel($status)
+    {
+        return [
+            self::DELIVERY_STATUS_REFUSE  => '已拒收',
+            self::DELIVERY_STATUS_NOSEND  => '待发货',
+            self::DELIVERY_STATUS_SENDED  => '待收货',
+            self::DELIVERY_STATUS_GETED   => '已收货'
+        ];        
+    }
+
+    public static function getInspectStatusLabel($status)
+    {
+        return [
+            self::INSPECT_STATUS_NO => '未验货',
+            self::INSPECT_STATUS_PASS => '验货通过',
+            self::INSPECT_STATUS_FAIL => '验货不通过'
+        ];
+    }
+
+    public static function getAfterSaleStatusLabel($status)
+    {
+        return [
+            self::AFTERSALE_STATUS_REFUSE => '拒绝',
+            self::AFTERSALE_STATUS_NOAFTER => '未申请',
+            self::AFTERSALE_STATUS_ING => '申请售后',
+            self::AFTERSALE_STATUS_COMPLETED => '售后完成'
+        ];
+    }
+
+    public static function getRefundStatusLabel($status)
+    {
+        return [
+            self::REFUND_STATUS_NOREFUND => '未申请',
+            self::REFUND_STATUS_AGREE => '已同意',
+            self::REFUND_STATUS_COMPLETED => '退款完成'
+        ];
+    }
+
+    public static function getCommentStatusLabel($status)
+    {
+        return [
+            self::COMMENT_STATUS_NO => '待评价',
+            self::COMMENT_STATUS_OK => '已评价'
+        ];
+    }
+  
+
+     
+
+
+}

+ 5 - 4
application/common/Service/Order/shippingInfo/Base.php

@@ -54,7 +54,8 @@ class Base
      */
      */
     protected function getWechatPay($type = 1)
     protected function getWechatPay($type = 1)
     {
     {
-        $wechatPay = PayModel::where('order_type', $type)->where('order_id', $this->order['id'])
+        $wechatPay = PayModel::where('order_type', $type)
+            ->where('order_id', $this->order['id'])
             ->where('status', '<>', PayEnum::PAY_STATUS_UNPAID)
             ->where('status', '<>', PayEnum::PAY_STATUS_UNPAID)
             ->where('pay_type', PayEnum::METHOD_WECHAT)->order('id', 'desc')->find();
             ->where('pay_type', PayEnum::METHOD_WECHAT)->order('id', 'desc')->find();
 
 
@@ -70,12 +71,12 @@ class Base
     /**
     /**
      * 配送方式转换
      * 配送方式转换
      *
      *
-     * @param string $dispatch_type
+     * @param string $deliveryType
      * @return integer
      * @return integer
      */
      */
-    protected function getLogisticsType($dispatch_type)
+    protected function getLogisticsType($deliveryType)
     {
     {
-        switch ($dispatch_type) {
+        switch ($deliveryType) {
             case 'express':
             case 'express':
                 $logistics_type = 1;
                 $logistics_type = 1;
                 break;
                 break;

+ 18 - 14
application/common/Service/Order/shippingInfo/OrderShippingInfo.php

@@ -3,15 +3,16 @@
 namespace app\common\service\order\shippingInfo;
 namespace app\common\service\order\shippingInfo;
 
 
 use app\common\model\OrderGoods as OrderGoodsModel;
 use app\common\model\OrderGoods as OrderGoodsModel;
-// use app\common\model\order\Express as OrderExpress;
+use app\common\model\OrderExpress as OrderExpressModel;
 use app\common\model\OrderAddress as OrderAddressModel;
 use app\common\model\OrderAddress as OrderAddressModel;
+use app\common\Enum\OrderGoodsEnum;
 
 
 class OrderShippingInfo extends Base
 class OrderShippingInfo extends Base
 {
 {
 
 
     protected $orderItems = null;
     protected $orderItems = null;
     
     
-    protected $dispatchTypes = [];
+    protected $deliveryTypes = [];
 
 
 
 
     /**
     /**
@@ -26,26 +27,26 @@ class OrderShippingInfo extends Base
         $this->setSendOrderItems();
         $this->setSendOrderItems();
 
 
         $uploadParams = [];
         $uploadParams = [];
-        if (in_array('express', $this->dispatchTypes)) {
+        if (in_array('express', $this->deliveryTypes)) {
             // 有 快递物流 商品
             // 有 快递物流 商品
             $expressUploadParams = $this->getExpressShippingParams();
             $expressUploadParams = $this->getExpressShippingParams();
             $uploadParams = array_merge($uploadParams, $expressUploadParams);
             $uploadParams = array_merge($uploadParams, $expressUploadParams);
         }
         }
 
 
-        if (!$uploadParams && array_intersect(['autosend', 'custom'], $this->dispatchTypes)) {
+        if (!$uploadParams && array_intersect(['autosend', 'custom'], $this->deliveryTypes)) {
             // 有 自动发货,或者手动发货 商品
             // 有 自动发货,或者手动发货 商品
             $virtualParams = $this->getVirtualShippingParams();
             $virtualParams = $this->getVirtualShippingParams();
             $uploadParams[] = $virtualParams;
             $uploadParams[] = $virtualParams;
         }
         }
 
 
-        if (!$uploadParams && in_array('selfetch', $this->dispatchTypes)) {
+        if (!$uploadParams && in_array('selfetch', $this->deliveryTypes)) {
             // 有 到店自提 商品
             // 有 到店自提 商品
             $selfParams = $this->getSelfetchShippingParams();
             $selfParams = $this->getSelfetchShippingParams();
             $uploadParams[] = $selfParams;
             $uploadParams[] = $selfParams;
         }
         }
 
 
 
 
-        if (!$uploadParams && in_array('store_delivery', $this->dispatchTypes)) {
+        if (!$uploadParams && in_array('store_delivery', $this->deliveryTypes)) {
             // 有 店铺配送 商品
             // 有 店铺配送 商品
             $storeDeliveryParams = $this->getStoreDeliveryShippingParams();
             $storeDeliveryParams = $this->getStoreDeliveryShippingParams();
             $uploadParams[] = $storeDeliveryParams;
             $uploadParams[] = $storeDeliveryParams;
@@ -89,7 +90,7 @@ class OrderShippingInfo extends Base
      */
      */
     private function getExpressShippingParams()
     private function getExpressShippingParams()
     {
     {
-        $orderExpresses = collection(OrderExpress::where('order_id', $this->order['id'])->select());
+        $orderExpresses = collection(OrderExpressModel::where('order_id', $this->order['id'])->select());
 
 
         return $this->getExpressShippingParamsByExpresses($orderExpresses);
         return $this->getExpressShippingParamsByExpresses($orderExpresses);
     }
     }
@@ -107,7 +108,7 @@ class OrderShippingInfo extends Base
     {
     {
         $uploadParams = [];
         $uploadParams = [];
         if (!$orderExpresses->isEmpty()) {
         if (!$orderExpresses->isEmpty()) {
-            $orderAddress = OrderAddress::where('order_id', $this->order['id'])->find();
+            $orderAddress = OrderAddressModel::where('order_id', $this->order['id'])->find();
 
 
             $receiver_contact = $orderAddress ? mb_substr($orderAddress->mobile, 0, 3) . '****' . mb_substr($orderAddress->mobile, -4) : '130****0000';
             $receiver_contact = $orderAddress ? mb_substr($orderAddress->mobile, 0, 3) . '****' . mb_substr($orderAddress->mobile, -4) : '130****0000';
 
 
@@ -155,7 +156,7 @@ class OrderShippingInfo extends Base
     private function getVirtualShippingParams()
     private function getVirtualShippingParams()
     {
     {
         // 是否存在虚拟发货商品
         // 是否存在虚拟发货商品
-        $virtualItems = $this->getItemsByCondition('dispatch_type', ['autosend', 'custom'], 'in_array');
+        $virtualItems = $this->getItemsByCondition('_type', ['autosend', 'custom'], 'in_array');
 
 
         if (!$virtualItems->isEmpty()) {
         if (!$virtualItems->isEmpty()) {
             $shippingList = [];
             $shippingList = [];
@@ -192,7 +193,7 @@ class OrderShippingInfo extends Base
     public function getSelfetchShippingParams()
     public function getSelfetchShippingParams()
     {
     {
         // 到店自提商品
         // 到店自提商品
-        $selfetchItems = $this->getItemsByCondition('dispatch_type', ['selfetch'], 'in_array');
+        $selfetchItems = $this->getItemsByCondition('delivery_type', ['selfetch'], 'in_array');
         if (!$selfetchItems->isEmpty()) {
         if (!$selfetchItems->isEmpty()) {
             $shippingList = [];
             $shippingList = [];
 
 
@@ -228,7 +229,7 @@ class OrderShippingInfo extends Base
     public function getStoreDeliveryShippingParams()
     public function getStoreDeliveryShippingParams()
     {
     {
         // 到店自提商品
         // 到店自提商品
-        $storeDeliveryItems = $this->getItemsByCondition('dispatch_type', ['store_delivery'], 'in_array');
+        $storeDeliveryItems = $this->getItemsByCondition('delivery_type', ['store_delivery'], 'in_array');
         if (!$storeDeliveryItems->isEmpty()) {
         if (!$storeDeliveryItems->isEmpty()) {
             $shippingList = [];
             $shippingList = [];
 
 
@@ -265,13 +266,16 @@ class OrderShippingInfo extends Base
     {
     {
         $orderItems = OrderGoodsModel::where('order_id', $this->order['id'])
         $orderItems = OrderGoodsModel::where('order_id', $this->order['id'])
             // ->where('refund_status', OrderItem::REFUND_STATUS_NOREFUND)
             // ->where('refund_status', OrderItem::REFUND_STATUS_NOREFUND)
-            ->whereIn('dispatch_status', 
-            [OrderGoodsModel::DISPATCH_STATUS_SENDED, OrderGoodsModel::DISPATCH_STATUS_GETED])
+            ->whereIn('delivery_status', 
+            [
+                OrderGoodsEnum::DELIVERY_STATUS_SENDED,
+                OrderGoodsEnum::DELIVERY_STATUS_GETED
+                ])
             ->select();
             ->select();
 
 
         $this->orderItems = $orderItems instanceof \think\Collection ? $orderItems : collection($orderItems);
         $this->orderItems = $orderItems instanceof \think\Collection ? $orderItems : collection($orderItems);
 
 
-        $this->dispatchTypes = array_values(array_unique(array_filter($this->orderItems->column('dispatch_type'))));
+        $this->deliveryTypes = array_values(array_unique(array_filter($this->orderItems->column('delivery_type'))));
     }
     }
 
 
 
 

+ 53 - 0
application/common/model/OrderExpress.php

@@ -0,0 +1,53 @@
+<?php
+
+namespace app\common\model;
+
+use think\Model;
+
+/**
+ * 模型
+ */
+class OrderExpress extends Model
+{
+
+    protected $name = 'shopro_order_express';
+
+    protected $type = [
+        'ext' => 'json'
+    ];
+
+    // 追加属性
+    protected $append = [
+        'status_text'
+    ];
+
+
+    public function statusList()
+    {
+        return [
+            'noinfo' => '暂无信息',
+            'collect' => '已揽件',
+            'transport' => '运输中',
+            'delivery' => '派送中',
+            'signfor' => '已签收',
+            'refuse' => '用户拒收',
+            'difficulty' => '问题件',
+            'invalid' => '无效件',
+            'timeout' => '超时单',
+            'fail' => '签收失败',
+            'back' => '退回',
+        ];
+    }
+
+
+    public function items()
+    {
+        return $this->hasMany(OrderGoods::class, 'order_express_id', 'id');
+    }
+
+
+    public function logs()
+    {
+        return $this->hasMany(OrderExpressLog::class, 'order_express_id', 'id')->order('id', 'desc');
+    }
+}

+ 40 - 0
application/common/model/OrderExpressLog.php

@@ -0,0 +1,40 @@
+<?php
+
+namespace app\common\model;
+
+use think\Model;
+
+/**
+ * 模型
+ */
+class OrderExpressLog extends Model
+{
+    protected $name = 'shopro_order_express_log';
+
+    protected $type = [
+
+    ];
+
+    // 追加属性
+    protected $append = [
+        'status_text'
+    ];
+
+
+    public function statusList()
+    {
+        return [
+            'noinfo' => '',
+            'collect' => '已揽件',
+            'transport' => '运输中',
+            'delivery' => '派送中',
+            'signfor' => '已签收',
+            'refuse' => '用户拒收',
+            'difficulty' => '问题件',
+            'invalid' => '无效件',
+            'timeout' => '超时单',
+            'fail' => '签收失败',
+            'back' => '退回',
+        ];
+    }
+}