Java tutorial
/* * Copyright 2015-2020 Fengduo.com All right reserved. This software is the confidential and proprietary information of * Fengduo.com ("Confidential Information"). You shall not disclose such Confidential Information and shall use it only * in accordance with the terms of the license agreement you entered into with Fengduo.com. */ package com.fengduo.bee.web.controller.account; import java.util.List; import javax.validation.Valid; import org.apache.commons.lang.StringUtils; import org.apache.commons.validator.EmailValidator; import org.apache.shiro.SecurityUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.fengduo.bee.commons.persistence.Parameter; import com.fengduo.bee.commons.result.JsonResultUtils; import com.fengduo.bee.commons.result.JsonResultUtils.JsonResult; import com.fengduo.bee.commons.util.IDCardUtils; import com.fengduo.bee.commons.util.ObjectUtils; import com.fengduo.bee.model.cons.AttentionSphereEnum; import com.fengduo.bee.model.cons.DelFlagEnum; import com.fengduo.bee.model.entity.IdentityInfo; import com.fengduo.bee.model.entity.User; import com.fengduo.bee.web.controller.BaseController; import com.fengduo.bee.web.shiro.ShiroDbRealm.ShiroUser; /** * ?? * * @author jie.xu */ @Controller @RequestMapping("/user") public class UserController extends BaseController { @InitBinder({ "user" }) public void initBinder1(WebDataBinder binder) { binder.setFieldDefaultPrefix("user."); } @InitBinder({ "identityInfo" }) public void initBinder2(WebDataBinder binder) { binder.setFieldDefaultPrefix("identityInfo."); } /** * ? * * @return */ @RequestMapping(value = "/resetpwd", method = RequestMethod.GET) public ModelAndView resetpwd() { ModelAndView mav = new ModelAndView("account/myresetpwd"); return mav; } /** * ?? * * @return */ @RequestMapping(value = "/savepwd", method = RequestMethod.POST) @ResponseBody public JsonResult savepwd(String oldPassword, String password, String confirmPwd) { password = StringUtils.trim(password); confirmPwd = StringUtils.trim(confirmPwd); oldPassword = StringUtils.trim(oldPassword); if (StringUtils.isEmpty(password) || StringUtils.isEmpty(confirmPwd) || StringUtils.isEmpty(oldPassword)) { return JsonResultUtils.error("?!"); } if (!StringUtils.equals(password, confirmPwd)) { return JsonResultUtils.error("??,?!"); } if (!StringUtils.equals(oldPassword, getCurrentUser().getPasswordDesc())) { return JsonResultUtils.error("??!"); } Long userId = getCurrentUserId(); User userById = userService.getUserById(userId); if (null == userById) { return JsonResultUtils.error(""); } userService.updateUserPwd(userId, password); // ?? SecurityUtils.getSubject().logout(); return JsonResultUtils.error("??"); } /** * ? */ @RequestMapping(value = "/setting", method = RequestMethod.GET) public String profile(Model model) { List<String> attentionValueList = AttentionSphereEnum.getAllValues(); model.addAttribute("attentionValueList", attentionValueList); Long userId = getCurrentUserId(); User user = userService.getUserById(userId); getCurrentUser().setUser(user); model.addAttribute("u", user); return "account/profile"; } /** * <pre> * ?? * ? * </pre> */ @RequestMapping(value = "/saveUserInfo", method = RequestMethod.POST) @ResponseBody public JsonResult saveUserInfo(User user) { ObjectUtils.trim(user); Long userId = getCurrentUserId(); User u = userService.getUserById(userId); String email = user.getEmail(); String nick = user.getNick(); if (StringUtils.isNotEmpty(email)) { if (!EmailValidator.getInstance().isValid(email)) { return JsonResultUtils.error("?"); } if (!StringUtils.equals(u.getEmail(), email)) { Parameter query = Parameter.newParameter()// .pu("email", email)// .pu("delFlag", DelFlagEnum.UN_DELETE.getValue()); User existU = userService.queryUser(query); if (existU != null) { return JsonResultUtils.error("?"); } } } if (StringUtils.isNotEmpty(nick) && !StringUtils.equals(nick, u.getNick())) { Parameter query = Parameter.newParameter()// .pu("nick", nick)// .pu("delFlag", DelFlagEnum.UN_DELETE.getValue()); User existU = userService.queryUser(query); if (existU != null) { return JsonResultUtils.error("?"); } } user.setId(userId); userService.updateUserById(user); updateShiroUser(getCurrentUser().getPhone(), String.valueOf(getCurrentUser().getPassword())); userCacheService.clearUserCache(userId); return JsonResultUtils.success(null, "???"); } /** * ??? * * @return */ @RequestMapping(value = "/identity") public ModelAndView identity() { ModelAndView mav = new ModelAndView("account/identity"); Long userId = getCurrentUserId(); IdentityInfo info = userService.getIdentityInfo(userId); mav.addObject("identityInfo", info); return mav; } /** * <pre> * ????? * * </pre> */ @RequestMapping(value = "/saveIdentityInfo") @ResponseBody public JsonResult saveIdentityInfo(@Valid IdentityInfo identityInfo, BindingResult result) { ObjectUtils.trim(identityInfo); Long userId = getCurrentUserId(); identityInfo.setUserId(userId); if (identityInfo.getId() != null) { userService.updateIdentityInfoById(identityInfo); } else { if (result.hasErrors()) { return JsonResultUtils.error(showFirstErrors(result)); } // ?? if (!IDCardUtils.validateCard(identityInfo.getIdCard())) { return JsonResultUtils.error("???"); } // ? ShiroUser shiroUser = getCurrentUser(); if (StringUtils.isEmpty(shiroUser.getEmail())) { return JsonResultUtils.error("??"); } if (identityInfo.getInvestorCase() != null && identityInfo.getInvestorCase() > 4) { return JsonResultUtils.error("??"); } userService.insertIdentityInfo(identityInfo); } return JsonResultUtils.success(null, "???????"); } }