目录
1.登录
1.1 顺序图
1.2 参数要求
1.3 接口规范
1.4 实现流程
1.编写SQL
2.dao层接口
3.定义Service接口
4.实现Service接口
5.单元测试
6. Controller实现方法对外提供API接口
7.测试API接口
8.实现前端逻辑,完成前后端交互
编辑
1.登录
1.1 顺序图
1.2 参数要求
1.3 接口规范
1.4 实现流程
1.编写SQL
2.dao层接口
3.定义Service接口
/*** 根据用户名查询用户信息* @param username 用户名* @return 用户信息*/User selectByUserName(String username);/*** 处理用户登录* @param username 用户名* @param password 密码* @return 用户信息*/User login(String username,String password);
4.实现Service接口
/*** 根据用户名查询用户信息** @param username 用户名* @return 用户信息*/@Overridepublic User selectByUserName(String username) {// 1.非空校验if(StringUtils.isEmpty(username)) {// 打印日志log.warn(ResultCode.FAILED_PARAMS_VALIDATE.toString());// 抛出异常, 统一抛出 ApplicationExceptionthrow new ApplicationException(AppResult.failed(ResultCode.FAILED_PARAMS_VALIDATE));}// 返回查询结果return userMapper.selectByUserName(username);}/*** 处理用户登录** @param username 用户名* @param password 密码* @return 用户信息*/@Overridepublic User login(String username, String password) {// 1.非空校验if(StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {// 打印日志log.warn(ResultCode.FAILED_PARAMS_VALIDATE.toString());// 抛出异常, 统一抛出 ApplicationExceptionthrow new ApplicationException(AppResult.failed(ResultCode.FAILED_LOGIN));}// 2.按用户名查询用户信息User user = selectByUserName(username);// 3.对查询结果进行非空校验if (user == null) {// 打印日志log.warn(ResultCode.FAILED_LOGIN.toString() + ", username = " + username);// 抛出异常, 统一抛出 ApplicationExceptionthrow new ApplicationException(AppResult.failed(ResultCode.FAILED_LOGIN));}// 4.对密码校验String encryptPassword = MD5Util.md5Salt(password, user.getSalt());// 5.用密文和数据库中存的用户密码进行比较if(!encryptPassword.equals(user.getPassword())) {// 打印日志log.warn(ResultCode.FAILED_LOGIN.toString() + ", 密码错误, username = " + username);// 抛出异常, 统一抛出 ApplicationExceptionthrow new ApplicationException(AppResult.failed(ResultCode.FAILED_LOGIN));}// 打印登录成功的日志log.info("[UserServiceImpl.login()]: " + username + " 登录成功");return user;}
5.单元测试
@Testvoid selectByUserName() {System.out.println(userService.selectByUserName("boy"));}@Testvoid login() {System.out.println(userService.login("wj", "123456"));}