method()=='GET'){ return View::make('user.login'); }else{ $input = $request->all(); $user = User::where('username',$input['username'])->first(); if($user!=NULL&&sha1($input['password'])==$user->password&&(!$user->baned)) { if(!$user->havecheckedemail) return Redirect::back()->withInput()->withErrors('未验证您的邮箱,请查收您的电子邮箱或忘记密码?'); } } } public function register(RegisterRequest $request) { if($request->method()=='GET'){ return View::make('user.register'); }else{ $input = $request->all(); $user = new User; $user->username = $input['username']; $user->password = sha1($input['password']); $user->email = $input['email']; $user->nickname = $input['nickname']; $user->havecheckedemail = false; $user->save(); $userinfo=new UserInfo; $userinfo->save(); $new_user = User::where('username', $user->username)->first(); return Redirect::to('/user/'.$new_user->id.'/sendCheckLetter'); } } public function getList(Request $request, $user_id) { $data = []; $data['user'] = UserInfo::find($user_id); return View::make('user.userinfo')->with($data); } public function logOut(Request $request) { $request->session()->forget('user_id'); $request->session()->forget('username'); $request->session()->forget('nickname'); $request->session()->forget('is_admin'); return Redirect::to('/'); } public function editList(Request $request, $user_id) { $input = $request->all(); $user = UserInfo::find($user_id); $user->gender = $input['gender']; $user->realname = $input['realname']; $user->tel_num = $input['tel_num']; $user->address = $input['address']; $user->update(); Storage::put( 'avatar/'.$user_id, Image::make($request->file('avatarPic'))->crop(round($input['crop_width']),round($input['crop_height']),round($input['crop_x']),round($input['crop_y']))->resize(800, 450)->encode('data-url') ); return Redirect::to('/user/'.$user_id); } public function showEditPage(Request $request, $user_id) { $data = []; $data['user'] = UserInfo::find($user_id); return View::make('user.editinfo')->with($data); } public function sendCheckLetter(Request $request, $user_id) { $data = []; $user = User::where('id',$user_id)->first(); if($user->havecheckedemail) return Redirect::to('/')->withErrors('该用户已经验证过邮箱。'); $check_email = CheckEmail::where('user_id',$user_id)->first(); $email = $user->email; $token = sha1($email.time()); if($check_email!=NULL){ $token = $check_email->token; }else{ $new_check_email = new CheckEmail; $new_check_email->user_id = $user_id; $new_check_email->token = $token; $new_check_email->save(); } $data['token'] = $token; $data['host'] = $request->server("HTTP_HOST"); Mail::send('user.checkLetter', $data, function ($m) use ($user, $email) { $m->from('519418441@qq.com', 'Catsworld'); $m->to($email, $user->username)->subject(''); }); return Redirect::to('/login')->withErrors('已向您的邮箱发送一封验证邮件,请查收。验证完成后即可登录先锋市场。'); } public function haveSentCheckLetter(Request $request) { return View::make('user.haveSentCheckLetter'); } public function checkEmail(Request $request, $token) { $check_email = CheckEmail::where('token', $token)->first(); if($check_email==NULL) return Redirect::to('/login')->withErrors('未知的Token。'); $user = User::find($check_email->user_id); $user->havecheckedemail = true; $user->update(); $check_email->delete(); return Redirect::to('/login')->withErrors('已向验证您的邮箱!现在你可以登录并完善更多信息啦!'); } public function passwordReset(Request $request) { if($request->method() == 'GET'){ $data['method']='GET'; return View::make('user.passwordReset')->with($data); }else{ $data['method']='POST'; $data['sentence']=''; $input = $request->all(); $user = User::where('username', $input['username'])->first(); if($user==NULL||$user->email!=$input['email']){ $data['sentence']='无法验证你的身份,请检查用户名与邮箱是否有误'; }else{ $data['sentence']='已向你的邮箱发送一份包含重置密码的链接的邮件。'; $password_reset = PasswordReset::where('user_id',$user->id)->first(); $email = $user->email; $token = sha1($email.time()); if($password_reset!=NULL){ $token = $password_reset->token; }else{ $new_password_reset = new PasswordReset; $new_password_reset->user_id = $user->id; $new_password_reset->token = $token; $new_password_reset->save(); } $data['token'] = $token; $data['host'] = $request->server("HTTP_HOST"); Mail::send('user.resetLetter', $data, function ($m) use ($user, $email) { $m->from('519418441@qq.com', 'Catsworld'); $m->to($email, $user->username)->subject(''); }); } return View::make('user.passwordReset')->with($data); } } public function resetPassword(Request $request, $token) { if($request->method() == 'GET'){ $data['method'] = 'GET'; $data['token'] = $token; return view::make('user.resetPassword')->with($data); }else{ $data['method'] = 'POST'; $data['sentence'] = ''; $password_reset = PasswordReset::where('token', $token)->first(); if($password_reset==NULL){ $data['sentence'] = '未知的Token'; return View::make('user.resetPassword')->with($data); } $input = $request->all(); $user = User::find($password_reset->user_id); $user->password = sha1($input['password']); $user->update(); $password_reset->delete(); $data['sentence'] = '成功重置密码!'; return View::make('user.resetPassword')->with($data); } } public function getFavlist(Request $request) { $data = []; $data['user_id'] = $request->session()->get('user_id'); $data['goods'] = FavList::orderby('id', 'asc')->where('user_id', $data['user_id'])->get(); $data['good_info'] = GoodInfo::orderBy('id', 'asc')->get()->keyBy('id'); return view::make('user.favlist')->with($data); } public function editFavlist(Request $request) { $data = []; $data['user_id'] = $request->session()->get('user_id'); $data['goods'] = FavList::orderBy('id', 'asc')->where('user_id', $data['user_id'])->get(); $data['good_info'] = GoodInfo::orderBy('id', 'asc')->get()->keyBy('id'); return view::make('user.editFavlist')->with($data); } public function delFavlist(Request $request) { $user_id = $request->session()->get('user_id'); $input = $request->all(); if(!isset($input['del_goods'])) return Redirect::to('/user/edit_favlist'); foreach($input['del_goods'] as $del_good) { $item = FavList::where('user_id', $user_id)->where('good_id', $del_good)->get(); foreach($item as $it) { $del_id = FavList::find($it->id); } $del_id->delete(); } return Redirect::to('/user/edit_favlist'); } public function getSimpleAvatar(Request $request, $user_id) { if(!Storage::exists('avatar/'.$user_id)) $file = Storage::get('public/avatar.jpg'); else $file = Storage::get('avatar/'.$user_id); $image = Image::make($file)->resize(600, 600); return $image->response('jpg'); } public function getAvatar(Request $request, $user_id, $width, $height) { if(!Storage::exists('avatar/'.$user_id)) $file = Storage::get('public/avatar.jpg'); else $file = Storage::get('avatar/'.$user_id); $image = Image::make($file)->resize($width, $height); return $image->response('jpg'); } }