ソースを参照

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

zhuchengjie 3 年 前
コミット
89d9449165

+ 13 - 0
src/Controllers/CompanyAuth/Transformers/OrderTransformer.php

@@ -11,11 +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,
             'price' => (float) $item->price,

+ 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(