id); $depositCards = DepositCard::query()->filter($depositCardFilter)->where(AdminMerchant::getMerchantWhere())->orderByDesc('id')->whereIn('area_id', $area_ids); $depositCards = $request->get('all') ? $depositCards->get() : $depositCards->paginate(); return $this->ok(DepositCardResource::collection($depositCards)); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * store * * @param DepositCardRequest $request * @param DepositCard $depositCard * @return \Illuminate\Http\JsonResponse * @author Fx * */ public function store(DepositCardRequest $request, DepositCard $depositCard) { $inputs = $request->validated(); if ($inputs['is_discount'] == DepositCard::DISCOUNT_NO) { // 无折扣设为100 $inputs['discount'] = 100; } $inputs['merchant_id'] = AdminMerchant::putMerchantId(); $depositCard = $depositCard->create($inputs); // return $this->created(DepositCardResource::make($depositCard)); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit(DepositCard $depositCard) { // return $this->ok(DepositCardResource::make($depositCard)); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(DepositCardRequest $request, DepositCard $depositCard) { // $inputs = $request->validated(); if ($inputs['is_discount'] == DepositCard::DISCOUNT_NO) { // 无折扣设为100 $inputs['discount'] = 100; } $depositCard->update($inputs); // return $this->created(DepositCardResource::make($depositCard)); } /** * destroy * * @param DepositCard $depositCard * @return \Illuminate\Http\JsonResponse * @author Fx * */ public function destroy(DepositCard $depositCard) { // $depositCard->delete(); return $this->noContent(); } public function giveDepositCardToUser(Request $request) { $mobile = $request->get('mobile') ?? ''; $card_id = $request->get('card_id') ?? ''; $user_id = $request->get('id', 0); if (empty($mobile) || !$user_id || empty($card_id)) return $this->error('参数错误'); $users = User::query() ->where('id', $user_id) ->where('mobile', $mobile) ->first(); if (empty($users)) return $this->error('找不到该用户'); $depositCard = DepositCard::query() ->where('status', DepositCard::STATUS_OK) ->find($card_id); if (empty($depositCard)) return $this->error('找不到该免押金卡'); if ($depositCard->is_give == DepositCard::GIVE_NO) return $this->error('此卡不能赠送'); DB::beginTransaction(); try { $depositCardOrder = DepositCardOrder::firstOrCreate([ 'no' => DepositCardOrder::makeNo(), 'area_id' => $users->register_area_id, 'user_id' => $users->id, 'deposit_cards_id' => $depositCard->id, 'money' => 0.00, 'effective_days' => $depositCard->effective_days, 'discount' => 100, 'pay_money' => 0.00, 'pay_type' => DepositCardOrder::PAY_TYPE_ADMIN_GIVE, 'pay_status' => DepositCardOrder::PAY_STATUS_OK, 'pay_time' => Carbon::now(), 'merchant_id' => $users->merchant_id, ]); $deposit_expire_time = Carbon::parse($users->deposit_expire_time); if (Carbon::now()->gte($deposit_expire_time)) { $time = Carbon::now(); } else { $time = $deposit_expire_time; } if ($users->deposit_type == User::DEPOSIT_MONEY) { User::where('id', $users->id)->update([ 'deposit_expire_time' => $time->addDays($depositCardOrder->effective_days), // 'deposit_type' => User::DEPOSIT_CARD, 'is_deposit' => User::DEPOSIT_OK ]); } else { User::where('id', $users->id)->update([ 'deposit_expire_time' => $time->addDays($depositCardOrder->effective_days), 'deposit_type' => User::DEPOSIT_CARD, 'is_deposit' => User::DEPOSIT_OK ]); } DB::commit(); return $this->ok('操作成功'); } catch (\Exception $exception) { DB::rollBack(); Log::error($exception->getMessage()); return $this->error('出现错误,请联系管理员'); } } }