23123123123

package com.bbs.qianduan.controller;


import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Timestamp;
import java.text.MessageFormat;
import java.util.Properties;

import javax.mail.Session;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.bbs.bean.UserInfo;
import com.bbs.mail.pojo.Mail;
import com.bbs.service.inter.IUserInfoService;
import com.bbs.utils.Global;
import com.bbs.utils.MD5keyBean;
import com.bbs.utils.MailUtils;

/**
 * 用户的一些基本行为,积分,登录,注册,修改密码,忘记密码等等的一些问题
 * @author wjh
 *
 */
@Controller
@RequestMapping("/userinfo")
public class UserInfoController {
	

	/**
	 * 这里是你要用的的service,
	 * 申明的格式如下:
	 * @Autowired
	 *	private IUserInfoService userInfoService;
	 */
	@Autowired
	private IUserInfoService userInfoService;
	
	
	
	
	/**
	 * 这一块区域是你的方法,需要什么就写什么,写的时候每个人把自己的名字注释到方法前边
	 */
	
	//跳转到基本资料
	@RequestMapping("/toEditPersonal")
	public ModelAndView toEditPersonal(){
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("front/personal");
		return modelAndView;
	}
	
	@RequestMapping("/editPersonal")
	public void editPersonal(HttpServletRequest request, HttpServletResponse response){
		UserInfo user=(UserInfo)request.getSession().getAttribute("user");
		UserInfo userInfo=userInfoService.getUserById(String.valueOf(user.getUId()));
		
		String sign=(String)request.getParameter("shortsig");
		String weibo=(String)request.getParameter("weibo");
		String weiboLink=(String)request.getParameter("weibolink");
		String qq=(String)request.getParameter("qq");
		String weixin=(String)request.getParameter("weixin");
		String blog=(String)request.getParameter("website");
		userInfo.setUSign(sign);
		userInfo.setUWeiBo(weibo);
		userInfo.setUWeiBoLink(weiboLink);
	    userInfo.setUQQ(qq);
		userInfo.setUWeChat(weixin);
		userInfo.setUBlog(blog);
		
		String msg="";
		try {
			boolean result=userInfoService.update(userInfo);
			response.setCharacterEncoding("UTF-8"); 
			PrintWriter out = response.getWriter();
			if(result==true)   
				{userInfo=userInfoService.getUserById(String.valueOf(userInfo.getUId()));
				  msg="1";
				  request.getSession().removeAttribute("user");
				  request.getSession().setAttribute("user", userInfo);
				}
			else msg="2";
			out.print(msg);
	}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
	}
	}
	
	//修改密码
		@RequestMapping("/changeMyPasswd")
		public void changeMyPasswd(HttpServletRequest request, HttpServletResponse response){

			String password=(String)request.getParameter("password");
			UserInfo user=(UserInfo)request.getSession().getAttribute("user");
			UserInfo userInfo=userInfoService.getUserById(String.valueOf(user.getUId()));
			String msg="";
			try {
				response.setCharacterEncoding("UTF-8"); 
				PrintWriter out = response.getWriter();
				if(password.equals(userInfo.getUPwd())){
				    String newPassword=(String)request.getParameter("new_password");
				    String newPasswordAgain=(String)request.getParameter("re_password");
				    if(newPassword.equals(newPasswordAgain)){
				    	userInfo.setUPwd(newPassword);
				        boolean result=userInfoService.update(userInfo);
				        if(result)
				        	msg="1";
				        else 
				        	msg="2";
				        out.print(msg);
				        userInfo=userInfoService.getUserById(String.valueOf(userInfo.getUId()));
				        request.getSession().removeAttribute("user");
				        request.getSession().setAttribute("user", userInfo);
				   }
				}
				else{
					msg="0";
					out.print(msg);

				}
			}catch (IOException e) {
					// TODO Auto-generated catch block
					   e.printStackTrace();
			}
		}

		
		//跳转到账户安全
		@RequestMapping("/toChangeMyInfo")
		public ModelAndView toChangeMyName(){
			ModelAndView modelAndView = new ModelAndView();
			modelAndView.setViewName("front/security");
			return modelAndView;
		}
		
		//修改用户名
		@RequestMapping("/changeMyName")
		public void changeMyName(HttpServletRequest request, HttpServletResponse response){
			String username=(String)request.getParameter("username");
			UserInfo user=(UserInfo)request.getSession().getAttribute("user");
			UserInfo userInfo=userInfoService.getUserById(String.valueOf(user.getUId()));
			userInfo.setUName(username);
			String msg="";
			try {
				boolean result=userInfoService.update(userInfo);
				response.setCharacterEncoding("UTF-8"); 
				PrintWriter out = response.getWriter();
				if(result==true)    msg="1";
				else msg="2";
				out.print(msg);
			}catch (IOException e) {
					// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		//修改邮件
		@RequestMapping("/changeEmail")
		public void changeEmail(HttpServletRequest request, HttpServletResponse response){
			String email=(String)request.getParameter("email");
			UserInfo user=(UserInfo)request.getSession().getAttribute("user");
			UserInfo userInfo=userInfoService.getUserById(String.valueOf(user.getUId()));
			userInfo.setUEmail(email);;
			String msg="";
			try {
				boolean result=userInfoService.update(userInfo);
				response.setCharacterEncoding("UTF-8"); 
				PrintWriter out = response.getWriter();
				if(result==true)    msg="1";
				else msg="2";
				out.print(msg);
			}catch (IOException e) {
					// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	
				
				
	
	//找回密码,发送邮件
	@RequestMapping("/findMyPasswd")
	public void findMyPasswd(){
		//TODO 填写需要的代码
	}
	
	
	
	//跳转到拓展资料
		@RequestMapping("/toEditMyInfo")
		public ModelAndView toEditMyInfo(){
			ModelAndView modelAndView = new ModelAndView();
			modelAndView.setViewName("front/extend");
			return modelAndView;
		}

		//跳转到扩展资料
		//added by zhaojj
		@RequestMapping("/editMyInfo")
		public void editMyInfo(HttpServletRequest request, HttpServletResponse response){
			String url="";
			//获取用户信息
			UserInfo userInfo=(UserInfo)request.getSession().getAttribute("user");
			//通过id重新获取用户信息
		    UserInfo user=userInfoService.getUserById(String.valueOf(userInfo.getUId()));
			//获取内容
			String gender=request.getParameter("sex");
			//生日
			String year=request.getParameter("b_year");
			String month=request.getParameter("b_month");
			String day=request.getParameter("b_days");
			String birthday=null;
			birthday=year+"-"+month+"-"+day+" 00:00:00";
			Timestamp birth = new Timestamp(System.currentTimeMillis());  
			birth=Timestamp.valueOf(birthday);
			
			String industry=request.getParameter("industry");  //学院
			String manager=request.getParameter("company");  //公寓
			String profession=request.getParameter("profession");  //年级
			String school=request.getParameter("school");   //毕业学校
			String personIntro=request.getParameter("profile");  //个人简介
			
			//修改扩展信息
			user.setUGender(gender);
			user.setUBirthday(birth);
			user.setUCollege(industry);
			user.setUAddr(manager);
			user.setUGrade(profession);
			user.setUSchool(school);
			user.setUInfo(personIntro);
			String msg="";
			try {
					boolean result=userInfoService.update(user);
					response.setCharacterEncoding("UTF-8"); 
					PrintWriter out = response.getWriter();
					if(result==true) 
					{
						user=userInfoService.getUserById(String.valueOf(user.getUId()));
					    request.getSession().removeAttribute("user");
					    request.getSession().setAttribute("user", user);
						msg="1";
					}
					else msg="2";
					out.print(msg);
			}catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
			}
		}

		

	//跳转到登录
	@RequestMapping("/toLogin")
	public ModelAndView toLogin(HttpServletRequest request){
		String uid  = request.getParameter("uid");
		UserInfo user = userInfoService.getUserById(uid);
		request.getSession().setAttribute("user", user);
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("front/index");
		return modelAndView;
	}
	
	//登录
	@RequestMapping("/ulogin")
	public void login(HttpServletRequest request, HttpServletResponse response){
		String msg = "";
		//创建modelAndView
		//ModelAndView modelAndView = new ModelAndView();
		String url=(String) request.getSession().getAttribute("URL");
		//获取登录的类型
		//String type = request.getParameter("type");
		//获取登录名和密码
		String username = request.getParameter("username");
		String password = request.getParameter("password"); 
		//密码加密
		//password = new MD5keyBean().getkeyBeanofStr(password);
		 //这下面应该传递给ajax的是json数据
		response.setCharacterEncoding("UTF-8");  
	//    response.setContentType("application/json; charset=utf-8");
	    try {
			PrintWriter out = response.getWriter();
			//if("0".equals(type)){
				UserInfo user = userInfoService.login(username,password);
			//    System.out.println("------------------fuck:"+userflag);
				if(null!=user){
					//登录成功,跳转到上一次操作的页面
					//保存在线 
					request.getSession().setAttribute("user", user);
				//	request.getSession().setAttribute("state", 0);
					msg="1";
						//url="/userinfo/index";
				}
				else{
					msg="2";
						//登录失败,提醒重新登陆
						//url="/userinfo/toLogin";
				}
				out.print(msg);
	    }catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	//登录
	@RequestMapping("/logout")
	public String logout(HttpServletRequest request){
		String url = "/userinfo/toIndex";
		request.getSession().setAttribute("user", null);
		request.getSession().setAttribute("URL", null);
		request.getSession().setAttribute("state", null);
		return "forward:"+url;
	}
	
	//注册----验证username
	@RequestMapping("/reg_uname")
	public void reg_uname(HttpServletRequest request, HttpServletResponse response){
		String msg = "";

	    //get parameter:name\password\email
	    String username=request.getParameter("username");
	    boolean isValid=userInfoService.reg_uname(username);
		response.setCharacterEncoding("UTF-8");
		response.setContentType("application/json; charset=utf-8");
		try {
	PrintWriter out = response.getWriter();
			if(isValid){
				msg = "{\"success\":\"" + 1 + "\"}";
			}else{
				msg = "{\"success\":\"" + 2 + "\"}";
			}
			//return msg;
			out.print(msg);
			//System.out.println(msg);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//return null;
	}
	
	//注册---保存到数据库
		@RequestMapping("/register")
		public void register(HttpServletRequest request, HttpServletResponse response){
				String url="";
				String msg="";
			    //get parameter:name\password\email
				String username=request.getParameter("username");
			    String password=request.getParameter("password");
			    String rePassword=request.getParameter("password2");
			    String email=request.getParameter("email");
			    UserInfo user = userInfoService.register(username,password,rePassword,email);
			  //这下面应该传递给ajax的是json数据
				response.setCharacterEncoding("UTF-8");  
			    response.setContentType("application/json; charset=utf-8");
				System.out.println("----------------------1");
			    try {
					PrintWriter out = response.getWriter();
					System.out.println("----------------------2");
					if(user !=null){
						System.out.println("----------------------3");
						msg = "{\"success\":\"" + 1 + "\"}";
					}else{
						System.out.println("----------------------4");
						msg = "{\"success\":\"" + 2 + "\"}";
					}
					System.out.println("----------------------5");
					out.write(msg);
					out.flush();
					out.close();
				} catch (IOException e) {
					System.out.println("----------------------6");
					e.printStackTrace();
				}
			    
			    /**
			     * 发送邮件
			     */
			    Properties prop = new Properties();
				try {
					prop.load(this.getClass().getClassLoader().getResourceAsStream("email_template.properties"));
				} catch (IOException e1) {
					throw new RuntimeException(e1);
				}
				
				// * 登录邮件服务器,得到session
				 
				String host = prop.getProperty("host");//服务器主机名
				String name = prop.getProperty("username");//登录名
				String pass = prop.getProperty("password");//登录密码
				Session session = MailUtils.createSession(host, name, pass);
				
				 //* 创建Mail对象
				String from = prop.getProperty("from");
				String to = user.getUEmail();
				String subject = prop.getProperty("subject");
				// MessageForm.format方法会把第一个参数中的{0},使用第二个参数来替换。
				// 例如MessageFormat.format("你好{0}, 你{1}!", "张三", "去死吧"); 返回“你好张三,你去死吧!”
				String content = MessageFormat.format(prop.getProperty("content"), user.getUActiveCode());
				Mail mail = new Mail(from, to, subject, content);
				 //* 发送邮件
				try {
					MailUtils.send(session, mail);
				} catch (Exception e) {
					e.printStackTrace();
				} 
		}
		
	/**
	 * 激活
	 * @param code
	 * @throws UserException
	 */
	@RequestMapping("/activatioin")
	public ModelAndView activatioin(HttpServletRequest request){
		/*
		 * 1. 通过激活码查询用户
		 * 2. 如果User为null,说明是无效激活码,抛出异常,给出异常信息(无效激活码)
		 * 3. 查看用户状态是否为true,如果为true,抛出异常,给出异常信息(请不要二次激活)
		 * 4. 修改用户状态为true
		 */
		ModelAndView modelAndView = new ModelAndView();
		try {
			String code = request.getParameter("code");
			UserInfo user = userInfoService.findUserByCode(code);
			if(user == null){
				modelAndView.addObject("info", "无效的激活码!");
				modelAndView.setViewName("/front/active");
				return modelAndView;
			} 
			if(user.getUState() == Global.HAVE_ACTIVE){
				modelAndView.addObject("info", "您已经激活过了,不要二次激活!");
				modelAndView.setViewName("/front/active");
				return modelAndView;
			}
			//激活
			user.setUState(Global.HAVE_ACTIVE);
			//保存激活后的用户
			userInfoService.update(user);
			modelAndView.addObject("info", "ok");
			modelAndView.setViewName("/front/active");
			return modelAndView;
			
		} catch(Exception e) {
			modelAndView.addObject("info", "未知错误!");
			modelAndView.setViewName("/front/active");
			return modelAndView;
		}
		
	}
	
	//跳转到注册
	@RequestMapping("/toRegister")
	public ModelAndView toRegister(){
		//TODO 填写需要的代码
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("front/reg");
		return modelAndView;
	}
	
	
	//跳转到首页
	@RequestMapping("/toIndex")
	public ModelAndView toIndex(HttpServletRequest request){
		Integer statepanduan = 1; 
		if(statepanduan == request.getSession().getAttribute("state")){
			request.getSession().setAttribute("user", null);
			request.getSession().setAttribute("URL", null);
			request.getSession().setAttribute("state", null);
		}
		//创建modelAndView对象
		ModelAndView modelAndView = new ModelAndView();
		//获取对象
		//TODO:做一些必要的操作
		//返回modelAndView
		modelAndView.setViewName("front/index");
		return modelAndView;
	}
	@RequestMapping("/reg_email")
	public void reg_email(HttpServletRequest request, HttpServletResponse response){
		String msg = "";
	    String email=request.getParameter("email");
	    boolean isValid=userInfoService.reg_email(email);
		response.setCharacterEncoding("UTF-8");
		try {
	PrintWriter out = response.getWriter();
			if(isValid){
				msg = "{\"success\":\"" + 1 + "\"}";
			}else{
				msg = "{\"success\":\"" + 2 + "\"}";
			}
			out.print(msg);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值