Browse Source

会员充值

gorden 4 months ago
parent
commit
e1094d5422

+ 78 - 11
app/admin/controller/member/MemberController.php

@@ -817,6 +817,73 @@ class MemberController
         return json_success('', compact('rows', 'page', 'pageSize', 'total'));
     }
 
+    public function consumptionList(Request $request)
+    {
+        $page = $request->get('page', 1);
+        $pageSize = $request->get('pageSize', 20);
+        $memberId = $request->get('member_id');
+        if (!$memberId) {
+            return json_fail('参数异常');
+        }
+
+        $member = Member::where('member_id', $memberId)->first();
+        $firstRechargeTime = 0;
+        if (!empty($member->member_extend_json)) {
+            $memberExtendJson = json_decode($member->member_extend_json, true);
+            if (isset($memberExtendJson['snap'])) {
+                foreach ($memberExtendJson['snap'] as $key => $value) {
+                    $firstRechargeTime = strtotime($key);
+                    break;
+                }
+            }
+        }
+
+        $payDetailIds = PayDetail::where('pay_addtimes', '>', $firstRechargeTime)
+            ->where('pay_prepayid', $memberId . '-CASH')
+            ->where('pay_status', 'SUCCESS')
+            ->pluck('join_pay_order_id')
+            ->toArray();
+
+        $orders = Order::with([
+            'payDetail' => function ($query) {
+                $query->where('pay_prepayid', 'like', '%CASH%');
+            }
+        ])->whereIn('order_groupby', $payDetailIds)
+            ->where('order_addtimes', '>', $firstRechargeTime);
+        $total = $orders->count();
+        $rows = $orders->orderBy('order_addtimes', 'DESC')
+            ->forPage($page, $pageSize)
+            ->get()
+            ->toArray();
+
+        $data = [];
+        foreach ($rows as $row) {
+            $sheets = OrderSheet::with([
+                'goods' => function ($query) {
+                    $query->select('goods_id', 'goods_name');
+                }
+            ])->where('join_sheet_order_id', $row['order_id'])
+                ->get()
+                ->toArray();
+            $deng = "";
+            if (count($sheets) > 1) {
+                $deng = '等';
+            }
+            $data[] = [
+                'order_classify' => $row['order_classify'],
+                'order_id' => $row['order_id'],
+                'goods_name' => !empty($sheets[0]) && !empty($sheets[0]['goods']) ? ($sheets[0]['goods']['goods_name'] . $deng) : '',
+                'order_amount_total' => $row['order_amount_total'],
+                'order_amount_pay' => $row['order_amount_pay'],
+                'pay_paytimes' => !empty($row['payDetail'][0]) ? $row['payDetail'][0]['pay_paytimes'] : "",
+                'order_addtimes' => $row['order_addtimes'],
+            ];
+        }
+        $rows = $data;
+
+        return json_success('', compact('rows', 'page', 'pageSize', 'total'));
+    }
+
     /**
      * @Desc 获取权益使用记录
      * @Author Gorden
@@ -985,37 +1052,37 @@ class MemberController
             // 本金
             if ($memberAccount->member_account_surplus >= $amount) {
                 $memberAccount->member_account_surplus = $memberAccount->member_account_surplus - $amount;
-            }else{
+            } else {
                 $memberAccount->member_account_added = $memberAccount->member_account_added - ($amount - $memberAccount->member_account_surplus);
                 $memberAccount->member_account_surplus = 0;
             }
             $memberAccount->save();
             // 删除会员身份
-            Member::where('member_id',$memberId)
+            Member::where('member_id', $memberId)
                 ->update([
                     'join_member_role_id' => '',
                     'member_role_begintime' => '',
                     'member_role_config_json' => '[]'
                 ]);
             // 没用的优惠券失效
-            CouponDetail::where('join_coupon_detail_member_id',$memberId)
-                ->where('coupon_detail_status','<>','USED')
-                ->whereJsonContains('coupon_detail_extend_json->gettype','ROLE')
+            CouponDetail::where('join_coupon_detail_member_id', $memberId)
+                ->where('coupon_detail_status', '<>', 'USED')
+                ->whereJsonContains('coupon_detail_extend_json->gettype', 'ROLE')
                 ->update([
                     'coupon_detail_status' => 'DISABLED'
                 ]);
 
             // 产生一条退款记录 (pay_detail)
             PayDetail::insert([
-                'join_pay_member_id'=>$memberId,
-                'join_pay_order_id'=>'ROLE_REFUND',
-                'join_pay_object_json'=>'[]',
-                'pay_status'=>'SUCCESS',
+                'join_pay_member_id' => $memberId,
+                'join_pay_order_id' => 'ROLE_REFUND',
+                'join_pay_object_json' => '[]',
+                'pay_status' => 'SUCCESS',
                 'pay_category' => 'ROLE_REFUND',
                 'pay_amount' => $amount,
                 'pay_paytimes' => date('Y-m-d H:i:s'),
-                'pay_prepayid'=> $memberId.'-CASH',
-                'pay_addtimes'=>time()
+                'pay_prepayid' => $memberId . '-CASH',
+                'pay_addtimes' => time()
             ]);
 
             Db::commit();

+ 1 - 1
app/admin/service/goods/MemberRechargeBenefitService.php

@@ -814,7 +814,7 @@ class MemberRechargeBenefitService
                 foreach ($extendJson['coupon'] as $key => $coupon) {
                     $extendJson['coupon'][$key]['icon'] = getenv('STORAGE_DOMAIN') . $coupon['icon'];
                 }
-                $data['coupon_list'] = $extendJson['coupon'];
+                $data['coupon_list'] = array_values($extendJson['coupon']);
             }
 
             $data['express_json'] = [];

+ 11 - 4
app/model/Order.php

@@ -53,11 +53,18 @@ class Order extends Model
         return $this->hasOne(OrderReturn::class, 'join_return_order_id', 'order_id');
     }
 
-    public function express(){
-        return $this->hasOne(OrderExpress::class, 'join_express_order_id','order_id');
+    public function express()
+    {
+        return $this->hasOne(OrderExpress::class, 'join_express_order_id', 'order_id');
     }
 
-    public function benefit(){
-        return $this->hasMany(MemberBenefit::class,'join_benefit_order_id','order_id');
+    public function benefit()
+    {
+        return $this->hasMany(MemberBenefit::class, 'join_benefit_order_id', 'order_id');
+    }
+
+    public function payDetail()
+    {
+        return $this->hasMany(PayDetail::class, 'join_pay_order_id', 'order_groupby');
     }
 }

+ 1 - 0
route/admin.php

@@ -766,6 +766,7 @@ Route::group('/admin', function () {
             Route::get('/commissionList', [\app\admin\controller\member\MemberController::class, 'commissionList']);
             Route::get('/rechargeBackupsList', [\app\admin\controller\member\MemberController::class, 'rechargeBackupsList']);
             Route::get('/roleBenefitUsedList', [\app\admin\controller\member\MemberController::class, 'roleBenefitUsedList']);
+            Route::get('/consumptionList', [\app\admin\controller\member\MemberController::class, 'consumptionList']);
             Route::post('/roleBenefitExport', [\app\admin\controller\member\MemberController::class, 'roleBenefitExport']);
             Route::post('/roleBenefitRefund', [\app\admin\controller\member\MemberController::class, 'roleBenefitRefund']);
         })->middleware([