其他分享
首页 > 其他分享> > 用户注册功能实现

用户注册功能实现

作者:互联网

目录

核心注册功能实现


核心注册功能实现

UserController.java

package com.itheima.travel.controller;

import com.itheima.travel.pojo.User;
import com.itheima.travel.service.UserService;
import com.itheima.travel.vo.ResultInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 * 定义用户的处理器类
 */
@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    /**
     * 定义注册的功能
     * @param user 用户信息
     * @param checkCode  验证码
     * @param session 当前回话对象
     * @return
     */
    @PostMapping("/register")
    @ResponseBody
    public ResultInfo userRegister(User user, @RequestParam("check") String checkCode, HttpSession session){
        //1.获取验证码
        String sessionCheckCode = (String) session.getAttribute("CHECK_CODER");
       return  this.userService.registerUser(user,checkCode,sessionCheckCode);
    }
}   

UserServiceImpl.java

package com.itheima.travel.service.impl;

import com.itheima.travel.dao.UserDao;
import com.itheima.travel.pojo.User;
import com.itheima.travel.service.UserService;
import com.itheima.travel.utils.MailUtil;
import com.itheima.travel.utils.Md5Util;
import com.itheima.travel.utils.UuidUtil;
import com.itheima.travel.vo.ResultInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;


@Service("userService")
@Transactional(propagation = Propagation.SUPPORTS,readOnly = true)
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    @Override
    @Transactional(propagation = Propagation.REQUIRED,readOnly = false)
    public ResultInfo registerUser(User user, String checkCode, String sessionCheckCode) {
        //1.校验验证码
        if (sessionCheckCode==null|| !sessionCheckCode.equalsIgnoreCase(checkCode)) {
            return new ResultInfo(false,null,"验证码错误");
        }
        //2.判断用户信息是否合法
        if (StringUtils.isEmpty(user.getUsername())|| StringUtils.isEmpty(user.getPassword())) {
            return new ResultInfo(false,null,"用户名或者密码不为空");
        }
        //3.校验当前用户名称是否被注册
        User dbUser= this.userDao.findUserByUserName(user.getUsername());
        if (dbUser!=null){
            return new ResultInfo(false,null,"当前用户已被注册");
        }
        //4.生成激活码
        String activeCode = UuidUtil.getUuid();
        user.setCode(activeCode);
        //5.插入用户信息
        user.setStatus("N");
        user.setPassword(Md5Util.encodeByMd5(user.getPassword()));
        Integer count= this.userDao.insertUser(user);
        if (count<1) {
            return new ResultInfo(false,null,"用户注册失败");
        }
        //6.邮箱发送激活信息
        String mailContent="<a href='http://localhost:8080/user/active?activeCode="+user.getCode()+"'>点击激活账户</a>";
        MailUtil.sendMail(user.getEmail(),mailContent);
        return new ResultInfo(true,null,null);
    }
}    

UserDao.java

package com.itheima.travel.dao;

import com.itheima.travel.pojo.User;
import org.apache.ibatis.annotations.Param;

/**
 * 定义操纵用户信息的mapper接口
 */
public interface UserDao {
    /**
     * 根据用户名查询用户信息
     * @param username
     * @return
     */
    User findUserByUserName(@Param("name") String username);

    /**
     * 插入用户信息
     * @param user
     * @return
     */
    Integer insertUser(User user);
}   

UserDao.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.travel.dao.UserDao">

    <select id="findUserByUserName" resultType="com.itheima.travel.pojo.User">
        select * from tab_user where username=#{name}
    </select>
    <insert id="insertUser">
        insert into tab_user values(null,#{username},#{password},#{name},#{birthday},#{sex},#{telephone},#{email},
        #{status},#{code})
    </insert>
</mapper>   

 

 

 

标签:功能,用户注册,实现,springframework,user,org,import,com,itheima
来源: https://blog.csdn.net/zuimeng2226/article/details/121761799