|
@@ -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();
|