diff --git a/src/main/java/com/yingjun/ssm/dao/UserDao.java b/src/main/java/com/yingjun/ssm/dao/UserDao.java index 0560f14915e41d71a0fcc599bc0d4cdb3a87a1bd..d5f0864d65bef9b7eb794290289d495937464a15 100644 --- a/src/main/java/com/yingjun/ssm/dao/UserDao.java +++ b/src/main/java/com/yingjun/ssm/dao/UserDao.java @@ -71,4 +71,11 @@ public interface UserDao { * @return */ public User checkUserLogin(User user); + + /** + * 根据邮箱查询当前登录用户 + * @param email + * @return + */ + public User queryUserByEmail(String email); } \ No newline at end of file diff --git a/src/main/java/com/yingjun/ssm/service/UserService.java b/src/main/java/com/yingjun/ssm/service/UserService.java index ec88520bf644a0c78680cfb3eca42c906aab1430..c9da45a442c52cbc9c718eaad50cc363116d9a09 100644 --- a/src/main/java/com/yingjun/ssm/service/UserService.java +++ b/src/main/java/com/yingjun/ssm/service/UserService.java @@ -81,4 +81,11 @@ public interface UserService { * @param user */ public void userRegister(User user, String code, HttpSession session); + + /** + * 检查用户是否已经注册 + * @param email + * @return + */ + public User queryUserByEmail(String email); } \ No newline at end of file diff --git a/src/main/java/com/yingjun/ssm/service/impl/UserServiceImpl.java b/src/main/java/com/yingjun/ssm/service/impl/UserServiceImpl.java index 32cc36f2a1fbf7ab5356fd3aa15c01c95658acac..9260f78ac4337e971dbfd458f858c6f2a44f4cef 100644 --- a/src/main/java/com/yingjun/ssm/service/impl/UserServiceImpl.java +++ b/src/main/java/com/yingjun/ssm/service/impl/UserServiceImpl.java @@ -4,6 +4,7 @@ import com.yingjun.ssm.dao.UserDao; import com.yingjun.ssm.entity.User; import com.yingjun.ssm.exception.BizException; import com.yingjun.ssm.service.UserService; +import com.yingjun.ssm.util.Md5Util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -71,6 +72,8 @@ public class UserServiceImpl implements UserService { @Override public User checkUserLogin(User user) { try{ + //加密密码 + user.setPassword(Md5Util.md5Password(user.getPassword())); User loginUser = userDao.checkUserLogin(user); if(loginUser == null){ throw new BizException("用户不存在"); @@ -94,19 +97,27 @@ public class UserServiceImpl implements UserService { @Override public void userRegister(User user, String code,HttpSession session) { try{ + User user1 = queryUserByEmail(user.getEmail()); + if(user1 != null){ + throw new BizException("用户已经注册"); + } String emailCode = (String)session.getAttribute("code"); if(!emailCode.equals(code)){ throw new BizException("验证码错误"); } + //加密密码 + if(user!=null){ + user.setPassword(Md5Util.md5Password(user.getPassword())); + }else{ + return; + } if(1 != userDao.insertTUser(user)){ throw new Exception("插入数据影响函数不唯一"); } }catch (BizException biz){ - LOG.error("验证码错误",biz); - throw new BizException("验证码错误"); + throw new BizException(biz.getMessage(),biz); }catch (Exception e){ - LOG.error("插入数据影响函数不唯一",e); - throw new BizException("插入数据影响函数不唯一"); + throw new RuntimeException("插入数据影响函数不唯一",e); } } @@ -118,4 +129,14 @@ public class UserServiceImpl implements UserService { this.userDao = userDao; } + /** + * 检查用户是否已经注册 + * @param email + * @return + */ + @Override + public User queryUserByEmail(String email){ + return userDao.queryUserByEmail(email); + } + } \ No newline at end of file diff --git a/src/main/java/com/yingjun/ssm/util/Md5Util.java b/src/main/java/com/yingjun/ssm/util/Md5Util.java new file mode 100644 index 0000000000000000000000000000000000000000..7f82e9ec2f8c43273013de4140cd230671e2e730 --- /dev/null +++ b/src/main/java/com/yingjun/ssm/util/Md5Util.java @@ -0,0 +1,42 @@ +package com.yingjun.ssm.util; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + + +/** + * md5加密实现 + * @author liyunfeng + */ +public class Md5Util { + /** + * 生成32位md5码 + * @param password + * @return + */ + public static String md5Password(String password) { + + try { + // 得到一个信息摘要器 + MessageDigest digest = MessageDigest.getInstance("md5"); + byte[] result = digest.digest(password.getBytes()); + StringBuffer buffer = new StringBuffer(); + // 把每一个byte 做一个与运算 0xff; + for (byte b : result) { + // 与运算 + int number = b & 0xff; + String str = Integer.toHexString(number); + if (str.length() == 1) { + buffer.append("0"); + } + buffer.append(str); + } + + // 标准的md5加密后的结果 + return buffer.toString(); + } catch (NoSuchAlgorithmException e) { + return ""; + } + + } +} diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml index a7621bb397d5fe18cad2e66b6d138f939749bb67..f3d9812c946342223f141906ba7212a65a802530 100644 --- a/src/main/resources/mapper/UserMapper.xml +++ b/src/main/resources/mapper/UserMapper.xml @@ -123,4 +123,13 @@ and t_user.password = #{password} + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/user/userResgiter.jsp b/src/main/webapp/WEB-INF/jsp/user/userResgiter.jsp index 9b5b8a57527f2f46d6b938d1084c406328720d47..eceb43aa691dde716b2fb87277a4e4e96d47f2c0 100644 --- a/src/main/webapp/WEB-INF/jsp/user/userResgiter.jsp +++ b/src/main/webapp/WEB-INF/jsp/user/userResgiter.jsp @@ -106,7 +106,7 @@ alert("注册成功"); window.location.href="/user/login"; }else{ - alert("注册失败"); + alert(data.error); } } });