ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

用户注册功能实现

2021-12-07 10:02:15  阅读:192  来源: 互联网

标签:功能 用户注册 实现 springframework user org import com itheima


目录

核心注册功能实现


核心注册功能实现

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有