Browse Source

订单评价的修正

lizhen_gitee 2 months ago
parent
commit
d26508b6f6
2 changed files with 15 additions and 41 deletions
  1. 6 23
      addons/unishop/controller/Order.php
  2. 9 18
      addons/unishop/model/Order.php

+ 6 - 23
addons/unishop/controller/Order.php

@@ -712,6 +712,7 @@ class Order extends Base
             $evaluate = new Evaluate();
             $evaluate->user_id = $this->auth->id;
             $evaluate->order_id = $order_id;
+            $evaluate->order_product_id = $orderProduct->id;
             $evaluate->product_id = $product_id;
             $evaluate->rate = $rate;
             $evaluate->anonymous = $anonymous;
@@ -859,13 +860,11 @@ class Order extends Base
             $order = $orderModel
                 ->with([
                     'products' => function ($query) {
-                        $query->field('id,order_id,image,number,price,spec,title,product_id');
+                        $query->field('id,id as order_product_id,title,image,number,price,spec,order_id,product_id');
                     },
-                    /*'extend' => function ($query) {
-                        $query->field('id,order_id,address_id,address_json,express_number,express_company');
-                    },*/
+
                     'evaluate' => function ($query) {
-                        $query->field('id,order_id,product_id');
+                        $query->field('id,order_id,order_product_id,product_id');
                     }
                 ])
                 ->where(['id' => $order_id, 'user_id' => $this->auth->id])->find();
@@ -874,29 +873,13 @@ class Order extends Base
                 $order = $order->append(['state', 'paidtime', 'deliveredtime', 'receivedtime', 'commentedtime', 'pay_type_text', 'refund_status_text'])->toArray();
 
                 $order['state_text'] = $orderModel->getStatetextAttr($order['state'],$order['refund_status']);//状态中文
-                // 快递单号
-               /* $order['express_number'] = $order['extend']['express_number'];
-                $order['express_company'] = '快递单号';
-                $order['express'] = '';
-                if (class_exists(\addons\expressquery\library\Expressquery::class)) {
-                    $expressInfo = Db::name('expressquery')->where(['express' => $order['extend']['express_company']])->find();
-                    $order['express_company'] = $expressInfo['name'] ?? '快递单号';
-                    $order['express'] = $expressInfo['express'] ?? '';
-                }*/
-
-                // 送货地址
-                /*$address = json_decode($order['extend']['address_json'], true);
 
-                $delivery['username'] = $address['name'];
-                $delivery['mobile'] = $address['mobile'];
-                $delivery['address'] = $address['province_name'] . ' ' . $address['city_name'] . ' ' . $address['area_name'] . ' ' . $address['address'];
-                $order['delivery'] = $delivery;*/
 
                 // 是否已评论
-                $evaluate = array_column($order['evaluate'], 'product_id');
+                $evaluate = array_column($order['evaluate'], 'order_product_id');
                 foreach ($order['products'] as &$product) {
                     $product['image'] = Config::getImagesFullUrl($product['image']);
-                    if (in_array($product['id'], $evaluate)) {
+                    if (in_array($product['order_product_id'], $evaluate)) {
                         $product['evaluate'] = true;
                     } else {
                         $product['evaluate'] = false;

+ 9 - 18
addons/unishop/model/Order.php

@@ -393,17 +393,13 @@ class Order extends Model
         $result = $this
             ->with([
                 'products' => function($query) {
-                    $query->field('id,title,image,number,price,spec,order_id,product_id');
+                    $query->field('id,id as order_product_id,title,image,number,price,spec,order_id,product_id');
                 },
-                /*'extend' => function($query) {
-                    $query->field('order_id,express_number,express_company');
-                },*/
+
                 'evaluate' => function($query) {
-                    $query->field('id,order_id,product_id');
+                    $query->field('id,order_id,order_product_id,product_id');
                 },
-                /*'refundProducts' => function($query) {
-                    $query->field('id,order_id,order_product_id');
-                }*/
+
             ])
             ->where($condition)
             ->order([$orderBy => 'desc'])
@@ -415,26 +411,21 @@ class Order extends Model
             $item['state_text'] = $this->getStatetextAttr($item['state'],$item['refund_status']);//状态中文
             $item = $item->toArray();
 
-            $evaluate = array_column($item['evaluate'], 'product_id');
-//            $refundProducts = array_column($item['refund_products'], 'order_product_id');
+            // 是否已评论
+            $evaluate = array_column($item['evaluate'], 'order_product_id');
             unset($item['evaluate']);
-//            unset($item['refund_products']);
 
             foreach ($item['products'] as &$product) {
                 $product['image'] = Config::getImagesFullUrl($product['image']);
                 // 是否已评论
-                if (in_array($product['id'], $evaluate)) {
+
+                if (in_array($product['order_product_id'], $evaluate)) {
                     $product['evaluate'] = true;
                 } else {
                     $product['evaluate'] = false;
                 }
 
-                // 是否退货
-                /*if ($item['refund_status'] == self::REFUND_STATUS_AGREE && in_array($product['order_product_id'], $refundProducts)) {
-                    $product['refund'] = true;
-                } else {
-                    $product['refund'] = false;
-                }*/
+
             }
 
         }