首页>代码>spring mvc开发简单sns系统,实现了feed,上传,分享,评论,关注,好友等功能>/src/main/java/com/lvwang/osf/control/AccountController.java
package com.lvwang.osf.control; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.lvwang.osf.model.User; import com.lvwang.osf.service.MailService; import com.lvwang.osf.service.UserService; import com.lvwang.osf.util.Property; @Controller @RequestMapping("/account") public class AccountController { @Autowired private UserService userService; @Autowired @Qualifier("mailService") private MailService mailService; @RequestMapping(value="/login", method=RequestMethod.GET) public String login(HttpSession session) { if(session.getAttribute("user") != null) return "redirect:/"; return "account/login"; } @RequestMapping(value="/setting/info", method=RequestMethod.GET) public String settingInfoPage(HttpSession session){ return "account/setting/info"; } @ResponseBody @RequestMapping(value="/setting/info", method=RequestMethod.POST) public Map<String, Object> settingInfo(@RequestParam("user_name") String user_name, @RequestParam("user_desc") String user_desc, HttpSession session){ User me = (User)session.getAttribute("user"); Map<String, Object> map = new HashMap<String, Object>(); String status = null; if(user_name == null || user_name.length() == 0){ user_name = me.getUser_name(); } else { User user = userService.findByUsername(user_name); if(user != null){ status = Property.ERROR_USERNAME_EXIST; map.put("status", status); return map; } } //username is ok, but return a error status status = Property.ERROR_USERNAME_NOTEXIST; userService.updateUsernameAndDesc(me.getId(), user_name, user_desc); //update session me.setUser_name(user_name); me.setUser_desc(user_desc); map.put("status", status); return map; } @RequestMapping(value="/setting/avatar") public ModelAndView settingAvatar(HttpSession session){ ModelAndView mav = new ModelAndView(); mav.setViewName("account/setting/avatar"); return mav; } @RequestMapping(value="/setting/security") public String settingSecurity(HttpSession session){ return "account/setting/security"; } @RequestMapping(value="/resetpwd", method=RequestMethod.GET) public ModelAndView resetpwdPage(@RequestParam("key") String key, @RequestParam("email") String email, HttpSession session){ ModelAndView mav = new ModelAndView(); //set user login User user = userService.findByEmail(email); session.setAttribute("user", user); String status = null; if(userService.isAllowedResetPwd(email, key)){ status = Property.SUCCESS_PWD_RESET_ALLOWED; } else { status = Property.ERROR_PWD_RESET_NOTALLOWED; } mav.addObject("status", status); mav.addObject("SUCCESS_PWD_RESET_ALLOWED", Property.SUCCESS_PWD_RESET_ALLOWED); mav.addObject("ERROR_PWD_RESET_NOTALLOWED", Property.ERROR_PWD_RESET_NOTALLOWED); mav.setViewName("account/resetpwd"); return mav; } @ResponseBody @RequestMapping(value="/resetpwd", method=RequestMethod.POST) public Map<String, Object> resetpwd(@RequestParam("password") String password, @RequestParam("cfm_pwd") String cfm_pwd, HttpSession session){ Map<String, Object> map = new HashMap<String, Object>(); User user = (User)session.getAttribute("user"); map.put("status", userService.resetPassword(user.getUser_email(), password, cfm_pwd)); return map; } @ResponseBody @RequestMapping(value="/changepwd", method=RequestMethod.POST) public Map<String, Object> changepwd(@RequestParam("old_pwd") String old_pwd, @RequestParam("new_pwd") String new_pwd, HttpSession session){ Map<String, Object> map = new HashMap<String, Object>(); User user = (User)session.getAttribute("user"); map.put("status", userService.changePassword(user.getUser_email(), old_pwd, new_pwd)); return map; } @ResponseBody @RequestMapping(value="/send_resetpwd_email") public Map<String, Object> sendResetPwdEmail(HttpSession session){ Map<String, Object> map = new HashMap<String, Object>(); User user = (User) session.getAttribute("user"); mailService.sendResetPwdEmail(user.getUser_email(), userService.updateResetPwdKey(user.getUser_email())); map.put("status", Property.SUCCESS_EMAIL_RESETPWD_SEND); return map; } @ResponseBody @RequestMapping(value="/login", method=RequestMethod.POST) public Map<String, Object> login(@RequestParam("email") String email, @RequestParam("password") String password, HttpSession session) { /* String status = userService.login(email, password); if(Property.SUCCESS_ACCOUNT_LOGIN.equals(status)) { User user = userService.findByEmail(email); session.setAttribute("user", user); } */ Map<String, Object> ret = userService.login(email, password); String status = (String) ret.get("status"); if(Property.SUCCESS_ACCOUNT_LOGIN.equals(status)) { session.setAttribute("user", (User)ret.get("user")); } return ret; } @RequestMapping(value="/register", method=RequestMethod.GET) public String register() { return "account/register"; } @ResponseBody @RequestMapping(value="/register", method=RequestMethod.POST) public Map<String, String> register(@RequestParam("username") String username, @RequestParam("email") String email, @RequestParam("password") String password, @RequestParam("cfmPwd") String cfmPwd) { System.out.println("resister...."); Map<String, String> map = new HashMap<String, String>(); String status = userService.register(username, email, password, cfmPwd, map); if(Property.SUCCESS_ACCOUNT_REG.equals(status)){ mailService.sendAccountActivationEmail(email, map.get("activationKey")); } map.put("status", status); return map; } private void initStatus(ModelAndView mav) { mav.addObject("ERROR_ACCOUNT_ACTIVATION_NOTEXIST", Property.ERROR_ACCOUNT_ACTIVATION_NOTEXIST); mav.addObject("ERROR_ACCOUNT_ACTIVATION_EXPIRED", Property.ERROR_ACCOUNT_ACTIVATION_EXPIRED); mav.addObject("ERROR_ACCOUNT_ACTIVATION", Property.ERROR_ACCOUNT_ACTIVATION); } @RequestMapping("/activation/mail/send") public ModelAndView actication(@RequestParam("email") String email) { ModelAndView mav = new ModelAndView(); mav.setViewName("account/activation"); initStatus(mav); mav.addObject("email", email); return mav; } @ResponseBody @RequestMapping("/activation/mail/resend") public Map<String, String> acticationMailResend(@RequestParam("email") String email) { Map<String, String> ret = new HashMap<String, String>(); Map<String, Object> map = userService.updateActivationKey(email); ret.put("status", (String)map.get("status")); if(Property.SUCCESS_ACCOUNT_ACTIVATION_KEY_UPD.equals((String)map.get("status"))){ mailService.sendAccountActivationEmail(email, (String)map.get("activationKey")); ret.put("status", Property.SUCCESS_ACCOUNT_ACTIVATION_EMAIL_RESEND); } return ret; } @RequestMapping("/activation/{key}") public ModelAndView activation(@PathVariable("key") String key, @RequestParam("email") String email, HttpSession session) { ModelAndView mav = new ModelAndView(); String status = null; try { status = userService.activateUser(email, URLDecoder.decode(key, "utf-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } if(Property.SUCCESS_ACCOUNT_ACTIVATION.equals(status) || Property.ERROR_ACCOUNT_EXIST.equals(status)){ mav.setViewName("redirect:/guide"); session.setAttribute("user", userService.findByEmail(email)); } else { mav.setViewName("account/activation"); mav.addObject("status", status); mav.addObject("email", email); mav.addObject("ERROR_ACCOUNT_ACTIVATION_NOTEXIST", Property.ERROR_ACCOUNT_ACTIVATION_NOTEXIST); mav.addObject("ERROR_ACCOUNT_ACTIVATION_EXPIRED", Property.ERROR_ACCOUNT_ACTIVATION_EXPIRED); mav.addObject("ERROR_ACCOUNT_ACTIVATION", Property.ERROR_ACCOUNT_ACTIVATION); } return mav; } @RequestMapping("/completeinfo") public void completeUserInfo(HttpSession session) { } @RequestMapping("/logout") public String logout(HttpSession session) { session.invalidate(); return "account/login"; } }
最近下载更多
烟橙沐雨 LV1
3月21日
hosinvm LV7
2022年11月18日
dfsfvsr LV2
2022年11月8日
疯子庭 LV8
2022年10月10日
1140215796 LV6
2022年8月28日
是anan呀 LV2
2022年7月7日
wbg_TS LV1
2022年7月7日
wei_471416461 LV1
2022年6月25日
shen14755 LV3
2022年6月7日
testuser1234567 LV24
2022年5月23日
最近浏览更多
烟橙沐雨 LV1
3月21日
3334004690 LV3
3月6日
2890892945 LV2
2023年12月31日
空中飞尘 LV13
2023年11月25日
chenlie LV2
2023年11月21日
微信网友_6743761691316224
2023年11月20日
暂无贡献等级
微信网友_6641066057273344 LV1
2023年10月27日
irivn007 LV15
2023年10月19日
新工艺 LV7
2023年6月12日
1455384106 LV2
2023年5月8日