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();
}
}
}
23123123123
最新推荐文章于 2022-11-08 10:30:49 发布