Преглед изворни кода

如果接口 open_id为空,则取 user_openids里面的 openid

HWB пре 3 година
родитељ
комит
04bccb0872

+ 14 - 3
src/Controllers/CompanyAuth/Transformers/OrderTransformer.php

@@ -11,13 +11,24 @@ namespace General\Controllers\CompanyAuth\Transformers;
 use General\Helpers\CommonHelper;
 use General\Models\OfficialAccount\WechatKeywordMsgs;
 use General\Models\Order\Order;
+use General\Services\Order\OrderService;
 
 class OrderTransformer
 {
     public function transform($item)
     {
+        $service = new OrderService();
+        $uid     = $item->uid;
+        $app_id  = $item->user && $item->user->force_subscribe_user ? $item->user->force_subscribe_user->appid : '';
+        $opend_id = $item->user && $item->user->force_subscribe_user ? $item->user->force_subscribe_user->openid : '';
+        if ($opend_id == ''){
+            $res = $service->getOpenId($uid, $app_id);
+            if ($res){
+                $opend_id = $res['openid'];
+            }
+        }
         return [
-            'uid' => $item->uid,
+            'uid' => $uid,
             'price' => (float) $item->price,
             'trade_no' => $item->trade_no,
             'status' => $item->status,
@@ -36,8 +47,8 @@ class OrderTransformer
             'register_time' => $item->user ? (string)$item->user->created_at : '',
             'book_name' => $item->book_config ? $item->book_config->book_name : '',
             'promotion_url' => $item->send_order ? CommonHelper::getPromotionUrl($item->send_order) : '',
-            'app_id' => $item->user && $item->user->force_subscribe_user ? $item->user->force_subscribe_user->appid : '',
-            'opend_id' => $item->user && $item->user->force_subscribe_user ? $item->user->force_subscribe_user->openid : '',
+            'app_id' => $app_id,
+            'opend_id' => $opend_id,
             'register_open_id' => $item->user ? $item->user->openid : '',
             'subscribe_time' => $item->user && $item->user->force_subscribe_user ? $item->user->force_subscribe_user->subscribe_time : '',
             'wechat_name' => $item->user && $item->user->force_subscribe_user && $item->user->force_subscribe_user->official_account ? $item->user->force_subscribe_user->official_account->nickname : '',

+ 14 - 0
src/Models/Order/UserOpenids.php

@@ -0,0 +1,14 @@
+<?php
+
+
+namespace General\Models\Order;
+
+
+use Illuminate\Database\Eloquent\Model;
+
+class UserOpenids extends Model
+{
+    protected $table = 'user_openids';
+
+    protected $guarded = [];
+}

+ 9 - 0
src/Services/Order/OrderService.php

@@ -10,6 +10,7 @@
 namespace General\Services\Order;
 
 use General\Models\Order\Order;
+use General\Models\Order\UserOpenids;
 use General\Models\Statistic\OrderDayStats;
 
 class OrderService
@@ -37,6 +38,14 @@ class OrderService
         }
     }
 
+    public function getOpenId($uid, $app_id)
+    {
+        $res = UserOpenids::where('uid', $uid)
+            ->where('appid', $app_id)
+            ->first();
+        return $res ? $res->toArray() : [];
+    }
+
     public function  companyAuthDayStatistic(array $params)
     {
         return OrderDayStats::select(