whereHas('user', function($sql){ $sql->where('id', '>', 0); }); $keyword = $request->input('keyword'); if ($keyword) { $cards = $cards->where('name',"like", "%$keyword%"); } $cards = $cards->orderBy('id', 'desc')->paginate(); return $this->success('ok', $cards); } /** * 团契会员详情 * @param Request $request [description] * @param [type] $card_id [description] * @return [type] [description] */ public function fellowingCard(Request $request, $card_id) { $card = Card::with('user', 'shareUSer')->findOrFail($card_id); $card->userd_num = $card->num - $card->remain_num; //会员记录 $histories = FellowingCardHistory::where('card_id', $card_id)->paginate(); foreach ($histories as $history) { $user = User::where('id', $history->user_id)->first(); $circle_avatar = ''; $name = ''; if (!empty($user)) { $circle_avatar = $user->circle_avatar; $name = $user->name; } $history->circle_avatar = $circle_avatar; $history->name = $name; } return $this->success('ok', compact('card', 'histories')); } /** * 添加团契会员卡 * @param Request $request [description] */ public function addFellowingCard(Request $request) { $share_user_id = $request->input('share_user_id', 0); $name = $request->input("name"); if (empty($name)) { return $this->failure('请输入团契会员卡名称'); } $user_id = $request->input('user_id'); if (empty($user_id)) { return $this->failure('请输入拥有人信息'); } $num = $request->input("num", 0); if (empty($num)) { return $this->failure('请输入团契会员卡数量'); } $remain_num = $num; $rank_id = $request->input('rank_id', 0); if (empty($rank_id)) { return $this->failure('请选择会员级别'); } $month = $request->input('month', 0); $day = $request->input('day', 0); if (empty($month) && empty($day)) { return $this->failure('请选择会员期限'); } $card = new Card(); $card->share_user_id = $share_user_id; $card->user_id = $user_id; $card->name = $name; $card->num = $num; $card->remain_num = $remain_num; $card->rank_id = $rank_id; $card->month = $month; $card->day = $day; $card->save(); $app = EasyWechat::miniProgram(); $optional = [ 'page' => 'pages/users/groupMember', 'width' => 260, 'is_hyaline'=>true, 'auto_color'=>true, ]; $response = $app->app_code->getUnlimit('id='.$card->id.'&from_user_id='.$card->user_id, $optional); $qrcode_path = storage_path('qrcode'); $file_name = time().$card->id.'fellow_card_qrcode.png'; // 保存小程序码到文件 if ($response instanceof \EasyWeChat\Kernel\Http\StreamResponse) { $response->saveAs($qrcode_path, $file_name); } $qrcode_path = storage_path()."/qrcode/".$file_name; $qrcode = $this->uploadFile($qrcode_path); $card->qrcode = $qrcode; $card->save(); return $this->success('ok', $card); } /** * 修改团契会员卡 * @param Request $request [description] * @param [type] $card_id [description] * @return [type] [description] */ public function updateFellowingCard(Request $request, $card_id) { $card = Card::findOrFail($card_id); if ($request->has('user_id') && $request->input('user_id') != $card->user_id) { $card->user_id = $request->user_id; } if ($request->has('share_user_id') && $request->input('share_user_id') != $card->share_user_id) { $card->share_user_id = $request->share_user_id; } if ($request->has('name') && $request->input('name') != $card->name) { $card->name = $request->name; } if ($request->has('num') && $request->input('num') != $card->num) { $card->num = $request->num; } if ($request->has('rank_id') && $request->input('rank_id') != $card->rank_id) { $card->rank_id = $request->rank_id; } if ($request->has('month') && $request->input('month') != $card->month) { $card->month = $request->month; $card->day = 0; } if ($request->has('day') && $request->input('day') != $card->day) { $card->day = $request->day; $card->month = 0; } $card->save(); return $this->success('ok', $card); } /** * 删除团契会员卡 * @param Request $request [description] * @param [type] $card_id [description] * @return [type] [description] */ public function deleteFellowingCard(Request $request, $card_id) { $card = Card::findOrFail($card_id); $card->delete(); return $this->success('ok'); } /** * 团契卡成员 * @param Request $request [description] * @param Card $card [description] * @return [type] [description] */ public function cardMemebrs(Request $request, Card $card) { $members = $card->members()->with('user')->orderBy('id', 'desc')->paginate(); return $this->success('ok', $members); } }