Forráskód Böngészése

优惠券详情异常

gorden 5 hónapja
szülő
commit
8a152e7c24
1 módosított fájl, 100 hozzáadás és 93 törlés
  1. 100 93
      app/admin/controller/coupon/CouponController.php

+ 100 - 93
app/admin/controller/coupon/CouponController.php

@@ -16,6 +16,7 @@ use app\model\SysDept;
 use app\model\SysSerial;
 use support\Db;
 use support\exception\BusinessException;
+use support\Log;
 use support\Request;
 use support\Response;
 use Tinywan\Jwt\JwtToken;
@@ -770,38 +771,39 @@ class CouponController extends Curd
      */
     public function info(Request $request): Response
     {
-        $couponId = $request->get('coupon_id', '');
-        if (!$couponId) {
-            return json_fail('参数异常');
-        }
-        $coupon = Coupon::where('coupon_id', $couponId)->first();
-        if (!$coupon) {
-            return json_fail('数据异常');
-        }
-        // 拼选择的商品
-        $couponGoods = CouponGoods::with([
-            'goods' => function ($query) {
-                $query->select('goods_id', 'goods_id as id', 'goods_name as name', 'join_goods_category_id as pid', 'goods_classify', 'goods_sales_price', 'goods_cover');
-            },
-            'skus',
-            'sku'
-        ])->where('join_goods_coupon_id', $couponId)
-            ->get()
-            ->toArray();
-        $goodsIds = [];
-        $goodsContent = [];
-        foreach ($couponGoods as $couponGood) {
-            $goodsIds[] = $couponGood['join_coupon_goods_id'];
-            $content = [
-                'goods_id' => $couponGood['join_coupon_goods_id'],
-                'sku_id' => $couponGood['join_coupon_goods_sku_id'],
-            ];
-            if (isset($couponGood['goods'])) {
-                $content['goods_name'] = $couponGood['goods']['name'];
-                $content['goods_classify'] = $couponGood['goods']['goods_classify'];
-                $content['goods_cover'] = getenv('STORAGE_DOMAIN') . $couponGood['goods']['goods_cover'];
+        try {
+            $couponId = $request->get('coupon_id', '');
+            if (!$couponId) {
+                return json_fail('参数异常');
+            }
+            $coupon = Coupon::where('coupon_id', $couponId)->first();
+            if (!$coupon) {
+                return json_fail('数据异常');
             }
-            if (isset($couponGood['sku']) && isset($couponGood['sku']['goods_sku_specs_json'])) {
+            // 拼选择的商品
+            $couponGoods = CouponGoods::with([
+                'goods' => function ($query) {
+                    $query->select('goods_id', 'goods_id as id', 'goods_name as name', 'join_goods_category_id as pid', 'goods_classify', 'goods_sales_price', 'goods_cover');
+                },
+                'skus',
+                'sku'
+            ])->where('join_goods_coupon_id', $couponId)
+                ->get()
+                ->toArray();
+            $goodsIds = [];
+            $goodsContent = [];
+            foreach ($couponGoods as $couponGood) {
+                $goodsIds[] = $couponGood['join_coupon_goods_id'];
+                $content = [
+                    'goods_id' => $couponGood['join_coupon_goods_id'],
+                    'sku_id' => $couponGood['join_coupon_goods_sku_id'],
+                ];
+                if (isset($couponGood['goods'])) {
+                    $content['goods_name'] = $couponGood['goods']['name'];
+                    $content['goods_classify'] = $couponGood['goods']['goods_classify'];
+                    $content['goods_cover'] = getenv('STORAGE_DOMAIN') . $couponGood['goods']['goods_cover'];
+                }
+                if (isset($couponGood['sku']) && isset($couponGood['sku']['goods_sku_specs_json'])) {
 //                $skuSpecsJson = json_decode($couponGood['sku']['goods_sku_specs_json'], true);
 //                $skuName = '';
 //                foreach ($skuSpecsJson as $item) {
@@ -811,78 +813,83 @@ class CouponController extends Curd
 //                    $skuName .= $item . ',';
 //                }
 //                $content['sku_name'] = rtrim($skuName, ',');
-                $content['goods_sales_price'] = $couponGood['sku']['goods_sku_sales_price'];
-            }
-            if (isset($couponGood['skus'])) {
-                foreach ($couponGood['skus'] as $key => $skus) {
-                    if (!empty($skus['goods_sku_specs_json'])) {
-                        $skuSpecsJson = json_decode($skus['goods_sku_specs_json'], true);
-                        $skuName = '';
-                        foreach ($skuSpecsJson as $item) {
-                            if (is_array($item)) {
-                                $item = implode('', $item);
+                    $content['goods_sales_price'] = $couponGood['sku']['goods_sku_sales_price'];
+                }
+                if (isset($couponGood['skus'])) {
+                    foreach ($couponGood['skus'] as $key => $skus) {
+                        if (!empty($skus['goods_sku_specs_json'])) {
+                            $skuSpecsJson = json_decode($skus['goods_sku_specs_json'], true);
+                            $skuName = '';
+                            foreach ($skuSpecsJson as $item) {
+                                if (is_array($item)) {
+                                    $item = implode('', $item);
+                                }
+                                $skuName .= $item . ',';
                             }
-                            $skuName .= $item . ',';
+                            $couponGood['skus'][$key]['sku_name'] = rtrim($skuName, ',');
                         }
-                        $couponGood['skus'][$key]['sku_name'] = rtrim($skuName, ',');
                     }
+                    $content['skus'] = $couponGood['skus'];
                 }
-                $content['skus'] = $couponGood['skus'];
+                $goodsContent[] = $content;
             }
-            $goodsContent[] = $content;
-        }
-        // 选中的会员
-        $memberLists = [];
-        // 可用门店
-        $premises = [];
-        if (!empty($coupon->coupon_json)) {
-            $couponJson = json_decode($coupon->coupon_json, true);
-            if (isset($couponJson['member']) && isset($couponJson['member']['list']) && !empty($couponJson['member']['list'])) {
-                $res = Db::table('member')
-                    ->leftjoin('member_cert', 'member.member_id', '=', 'member_cert.join_cert_member_id')
-                    ->leftjoin('member_info', 'member.member_id', '=', 'member_info.join_info_member_id')
-                    ->select('member.member_id', 'member.member_mobile', 'member_cert.member_cert_name', 'member_info.member_info_nickname')
-                    ->where('member_status', 'ACTIVED')
-                    ->whereIn('member_id', $couponJson['member']['list'])
-                    ->get();
-                $memberLists = [];
-                foreach ($res as $item) {
-                    $name = '';
-                    if (!empty($item->member_cert_name)) {
-                        $name = $item->member_cert_name;
-                    } else if (!empty($item->member_info_nickname)) {
-                        $name = $item->member_info_nickname;
-                    }
-                    $value = !empty($name) ? $name . '-' : '';
-                    if ($item->member_mobile != '0000') {
-                        $value .= $item->member_mobile;
-                    }
-                    if (empty($value)) {
-                        $value = $item->member_mobile;
+            // 选中的会员
+            $memberLists = [];
+            // 可用门店
+            $premises = [];
+            if (!empty($coupon->coupon_json)) {
+                $couponJson = json_decode($coupon->coupon_json, true);
+                if (isset($couponJson['member']) && isset($couponJson['member']['list']) && !empty($couponJson['member']['list'])) {
+                    $res = Db::table('member')
+                        ->leftjoin('member_cert', 'member.member_id', '=', 'member_cert.join_cert_member_id')
+                        ->leftjoin('member_info', 'member.member_id', '=', 'member_info.join_info_member_id')
+                        ->select('member.member_id', 'member.member_mobile', 'member_cert.member_cert_name', 'member_info.member_info_nickname')
+                        ->where('member_status', 'ACTIVED')
+                        ->whereIn('member_id', $couponJson['member']['list'])
+                        ->get();
+                    $memberLists = [];
+                    foreach ($res as $item) {
+                        $name = '';
+                        if (!empty($item->member_cert_name)) {
+                            $name = $item->member_cert_name;
+                        } else if (!empty($item->member_info_nickname)) {
+                            $name = $item->member_info_nickname;
+                        }
+                        $value = !empty($name) ? $name . '-' : '';
+                        if ($item->member_mobile != '0000') {
+                            $value .= $item->member_mobile;
+                        }
+                        if (empty($value)) {
+                            $value = $item->member_mobile;
+                        }
+                        $value = rtrim($value, '-');
+                        $memberLists[] = [
+                            'key' => $item->member_id,
+                            'value' => $value,
+                        ];
                     }
-                    $value = rtrim($value, '-');
-                    $memberLists[] = [
-                        'key' => $item->member_id,
-                        'value' => $value,
-                    ];
+                }
+                if (isset($couponJson['premises']) && !empty($couponJson['premises'])) {
+                    $premises = SysDept::whereIn('dept_id', $couponJson['premises'])
+                        ->select('dept_id', 'dept_name')
+                        ->get()
+                        ->toArray();
                 }
             }
-            if (isset($couponJson['premises']) && !empty($couponJson['premises'])) {
-                $premises = SysDept::whereIn('dept_id', $couponJson['premises'])
-                    ->select('dept_id', 'dept_name')
-                    ->get()
-                    ->toArray();
-            }
-        }
 
-        $data = [
-            'goods_ids' => $goodsIds,
-            'goods_content' => $goodsContent,
-            'member_lists' => $memberLists,
-            'premises_list' => $premises
-        ];
+            $data = [
+                'goods_ids' => $goodsIds,
+                'goods_content' => $goodsContent,
+                'member_lists' => $memberLists,
+                'premises_list' => $premises
+            ];
+
+            return json_success('', $data);
 
-        return json_success('', $data);
+        } catch (\Exception $e) {
+            return json_fail('查询失败');
+            Log::error("查询优惠券详情失败", ['msg' => $e->getMessage()]);
+        }
     }
 
     /**