gorden 6 mesiacov pred
rodič
commit
6f685622db

+ 21 - 7
app/admin/controller/coupon/CouponController.php

@@ -55,7 +55,8 @@ class CouponController extends Curd
             'category' => function ($query) {
             'category' => function ($query) {
                 $query->select('category_id', 'category_name');
                 $query->select('category_id', 'category_name');
             },
             },
-            'user'
+            'user',
+            'detail'
         ]);
         ]);
         foreach ($where as $column => $value) {
         foreach ($where as $column => $value) {
             if (is_array($value)) {
             if (is_array($value)) {
@@ -132,6 +133,19 @@ class CouponController extends Curd
             } elseif ($item['coupon_validdate_day']) {
             } elseif ($item['coupon_validdate_day']) {
                 $item['coupon_use_time'] = 'day';
                 $item['coupon_use_time'] = 'day';
             }
             }
+            $item['member_count'] = $item['pending_count'] = $item['used_count'] = 0;
+            if (!empty($item['detail'])) {
+                foreach ($item['detail'] as $detail) {
+                    if (!empty($detail['join_coupon_detail_member_id'])){
+                        $item['member_count'] += 1;
+                    }
+                    if ($detail['coupon_detail_status'] == 'PENDING'){
+                        $item['pending_count'] += 1;
+                    }elseif ($detail['coupon_detail_status'] == 'USED'){
+                        $item['used_count'] += 1;
+                    }
+                }
+            }
         }
         }
 
 
         return $items;
         return $items;
@@ -302,12 +316,12 @@ class CouponController extends Curd
                 if ($detailCount < $data['coupon_number']) {
                 if ($detailCount < $data['coupon_number']) {
                     $this->generateCouponDetail($id, $data['coupon_number'] - $detailCount);
                     $this->generateCouponDetail($id, $data['coupon_number'] - $detailCount);
                 }
                 }
-            }else if($originCouponNumber < $data['coupon_number']){
+            } else if ($originCouponNumber < $data['coupon_number']) {
                 $this->generateCouponDetail($id, $data['coupon_number'] - $originCouponNumber);
                 $this->generateCouponDetail($id, $data['coupon_number'] - $originCouponNumber);
-            }else if($originCouponNumber > $data['coupon_number']){
-                CouponDetail::where('join_detail_coupon_id',$id)
-                    ->where('join_coupon_detail_member_id','')
-                    ->limit($originCouponNumber-$data['coupon_number'])
+            } else if ($originCouponNumber > $data['coupon_number']) {
+                CouponDetail::where('join_detail_coupon_id', $id)
+                    ->where('join_coupon_detail_member_id', '')
+                    ->limit($originCouponNumber - $data['coupon_number'])
                     ->delete();
                     ->delete();
             }
             }
             Db::commit();
             Db::commit();
@@ -578,7 +592,7 @@ class CouponController extends Curd
             CouponDetail::insert([
             CouponDetail::insert([
                 'coupon_detail_id' => 'CUDT' . str_pad(SysSerial::getSerial(), 6, '0') . random_string(6, 'up'),
                 'coupon_detail_id' => 'CUDT' . str_pad(SysSerial::getSerial(), 6, '0') . random_string(6, 'up'),
                 'join_detail_coupon_id' => $couponId,
                 'join_detail_coupon_id' => $couponId,
-                'coupon_detail_status' => 'PENDING',
+                'coupon_detail_status' => 'INIT',
                 'coupon_detail_addtimes' => time()
                 'coupon_detail_addtimes' => time()
             ]);
             ]);
         }
         }

+ 7 - 3
app/admin/controller/coupon/CouponDetailController.php

@@ -29,7 +29,7 @@ class CouponDetailController extends Curd
     {
     {
         $model = $this->model->with([
         $model = $this->model->with([
             'detail' => function ($query) {
             'detail' => function ($query) {
-                $query->select('join_detail_coupon_id', 'coupon_detail_status');
+                $query->select('join_detail_coupon_id', 'coupon_detail_status','coupon_detail_gain_datetime','coupon_detail_used_datetime','coupon_detail_remark');
             },
             },
             'coupon',
             'coupon',
             'member' => function ($query) {
             'member' => function ($query) {
@@ -71,8 +71,8 @@ class CouponDetailController extends Curd
                 $model = $model->where($column, $value);
                 $model = $model->where($column, $value);
             }
             }
         }
         }
-        $model = $model->selectRaw('join_detail_coupon_id,join_coupon_detail_member_id,MAX(coupon_detail_addtimes) as coupon_detail_addtimes,COUNT(*) as total');
-        $model = $model->groupBy('join_coupon_detail_member_id', 'join_detail_coupon_id');
+//        $model = $model->selectRaw('join_detail_coupon_id,join_coupon_detail_member_id,MAX(coupon_detail_addtimes) as coupon_detail_addtimes,COUNT(*) as total');
+//        $model = $model->groupBy('join_coupon_detail_member_id', 'join_detail_coupon_id');
         if ($field) {
         if ($field) {
             $model = $model->orderBy($field, $order);
             $model = $model->orderBy($field, $order);
         }
         }
@@ -104,4 +104,8 @@ class CouponDetailController extends Curd
 
 
         return $items;
         return $items;
     }
     }
+
+    public function updateStatus(){
+
+    }
 }
 }

+ 5 - 0
app/model/Coupon.php

@@ -24,6 +24,11 @@ class Coupon extends Model
         return $date->format('Y-m-d H:i:s');
         return $date->format('Y-m-d H:i:s');
     }
     }
 
 
+    public function detail()
+    {
+        return $this->hasMany(CouponDetail::class,'join_detail_coupon_id','coupon_id');
+    }
+
     public function category(){
     public function category(){
         return $this->hasOne(SysCategory::class,'category_id','join_coupon_category_id')->select('category_id','category_name');
         return $this->hasOne(SysCategory::class,'category_id','join_coupon_category_id')->select('category_id','category_name');
     }
     }