Browse Source

会员优惠券

gorden 6 months ago
parent
commit
0cf28d38e1
2 changed files with 92 additions and 7 deletions
  1. 91 7
      app/admin/controller/member/MemberController.php
  2. 1 0
      route/admin.php

+ 91 - 7
app/admin/controller/member/MemberController.php

@@ -457,17 +457,101 @@ class MemberController
         return MemberService::deleteDevice($request);
     }
 
-    public function coupon(Request $request)
+    /**
+     * @Desc 卡券数量
+     * @Author Gorden
+     * @Date 2024/8/22 18:51
+     *
+     * @param Request $request
+     * @return \support\Response
+     */
+    public function couponCount(Request $request)
     {
-        $memberId = $request->get('member_id','');
-        $active = $request->get('active','');
+        $memberId = $request->get('member_id', '');
+        $coupons = CouponDetail::leftJoin('coupon', 'coupon.coupon_id', '=', 'coupon_detail.join_detail_coupon_id')
+            ->where('join_coupon_detail_member_id', $memberId)
+            ->select('coupon.coupon_name', 'coupon.coupon_classify')
+            ->get()
+            ->toArray();
+        $data = ['manjian'=>0,'diyong'=>0,'zhekou'=>0,'lijian'=>0,'zengpin'=>0,'fuli'=>0,'nianka'=>0,'jika'=>0,'yueka'=>0];
+        foreach ($coupons as $item) {
+            if ($item['coupon_classify'] == '满减券'){
+                $data['manjian'] += 1;
+            }elseif ($item['coupon_classify'] == '抵用券'){
+                $data['diyong'] += 1;
+            }elseif ($item['coupon_classify'] == '折扣券'){
+                $data['zhekou'] += 1;
+            }elseif ($item['coupon_classify'] == '立减券'){
+                $data['lijian'] += 1;
+            }elseif ($item['coupon_classify'] == '赠品券'){
+                $data['zengpin'] += 1;
+            }elseif ($item['coupon_classify'] == '福利券'){
+                $data['fuli'] += 1;
+            }elseif ($item['coupon_classify'] == '年卡'){
+                $data['nianka'] += 1;
+            }elseif ($item['coupon_classify'] == '季卡'){
+                $data['jika'] += 1;
+            }elseif ($item['coupon_classify'] == '月卡'){
+                $data['yueka'] += 1;
+            }
+        }
+        $data['total'] = $data['manjian']+$data['diyong']+$data['zhekou']+$data['lijian']+$data['zengpin']+$data['fuli']+$data['nianka']+$data['jika']+$data['yueka'];
 
-        $coupons = CouponDetail::where('join_coupon_detail_member_id',$memberId)
-            ->leftJoin('coupon','coupon.coupon_id','=','coupon_detail.join_detail_coupon_id')
-            ->groupBy('join_detail_coupon_id')
+        return json_success('',$data);
+    }
+
+    /**
+     * @Desc 我的卡券
+     * @Author Gorden
+     * @Date 2024/8/22 18:45
+     *
+     * @param Request $request
+     * @return \support\Response
+     */
+    public function coupon(Request $request)
+    {
+        $memberId = $request->get('member_id', '');
+        $classify = $request->get('classify', '');
+        $page = $request->get('page', 1);
+        $pageSize = $request->get('pageSize', 20);
+
+        $coupons = CouponDetail::with([
+            'member' => function ($query) {
+                $query->select('member_id', 'member_mobile');
+            },
+            'cert' => function ($query) {
+                $query->select('join_cert_member_id', 'member_cert_name');
+            },
+            'info' => function ($query) {
+                $query->select('join_info_member_id', 'member_info_nickname');
+            }
+        ])
+            ->leftJoin('coupon', 'coupon.coupon_id', '=', 'coupon_detail.join_detail_coupon_id')
+            ->where('join_coupon_detail_member_id', $memberId)
+            ->where('coupon.coupon_classify', $classify);
+        $total = $coupons->count();
+        $rows = $coupons->select('coupon_detail.*', 'coupon.coupon_name', 'coupon.coupon_classify')
+            ->forPage($page, $pageSize)
             ->get()
             ->toArray();
 
-        dump($coupons);
+        foreach ($rows as &$item) {
+            $mobile = $certName = $nickname = '';
+            if (!empty($item['member']) && !empty($item['member']['member_mobile'])) {
+                $mobile = $item['member']['member_mobile'];
+            }
+            if (!empty($item['cert']) && !empty($item['cert']['member_cert_name'])) {
+                $certName = $item['cert']['member_cert_name'];
+            }
+            if (!empty($item['info']) && !empty($item['info']['member_info_nickname'])) {
+                $nickname = $item['info']['member_info_nickname'];
+            }
+            $item['member_name'] = MemberService::getMemberName($mobile, $certName, $nickname);
+            unset($item['member'], $item['cert'], $item['info']);
+
+            $data[$item['coupon_classify']][] = $item;
+        }
+
+        return json_success('', compact('rows', 'page', 'pageSize', 'total'));
     }
 }

+ 1 - 0
route/admin.php

@@ -683,6 +683,7 @@ Route::group('/admin', function () {
             Route::get('/welfareInfo', [\app\admin\controller\member\MemberController::class, 'welfareInfo']);
             Route::get('/vipInfo', [\app\admin\controller\member\MemberController::class, 'vipInfo']);
             Route::get('/coupon', [\app\admin\controller\member\MemberController::class, 'coupon']);
+            Route::get('/couponCount', [\app\admin\controller\member\MemberController::class, 'couponCount']);
             Route::get('/balanceInfo', [\app\admin\controller\member\MemberController::class, 'balanceInfo']);
             Route::get('/pointInfo', [\app\admin\controller\member\MemberController::class, 'pointInfo']);
             Route::get('/list', [\app\admin\controller\member\MemberController::class, 'list']);