package com.atgguigu.atcrowdfunding.service.impl;
import java.util.List;
import java.util.Map;
import javax.security.auth.login.LoginException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.atguigu.atcrowdfunding.bean.TAdmin;
import com.atguigu.atcrowdfunding.bean.TAdminExample;
import com.atguigu.atcrowdfunding.mapper.TAdminMapper;
import com.atguigu.atcrowdfunding.service.TAdminService;
import com.atguigu.atcrowdfunding.util.Const;
@Service
public class TAdminServiceImpl implements TAdminService {
@Autowired
TAdminMapper adminMapper;
/**
* 1,密码加密
* 2,查询用户
* 3,判断密码是否合法(为空)
* 4,判断密码是否一致
* 5,返回结果
*
* 这里改成顺序结构,没有用if嵌套判断增强可读性;
* @throws LoginException
*/
@Override
public TAdmin getTAdminByLogin(Map<String, Object> paramMap) throws LoginException {
//0,密码加密后续补上
//1,获取用户名和密码
String loginacct=(String) paramMap.get("loginacct");
String userpassword=(String) paramMap.get("userpassword");
//判断是否为空
//获取数据库中该用户名的信息
TAdminExample example=new TAdminExample();
example.createCriteria().andLoginacctEqualTo(loginacct);
List<TAdmin> list = adminMapper.selectByExample(example);
if(list==null||list.size()==0) {
//这里要抛异常,创建一个自定义异常
//因为接口限定了返回值只能为用户信息,不能返回false。所以只能抛异常
throw new LoginException(Const.LOGIN_LOGINACCT_ERROR);
}
TAdmin admin=list.get(0);
if(!admin.getUserpswd().equals(userpassword)) {
throw new LoginException(Const.LOGIN_USERPSWD_ERROR);
}
return admin;
}
}
该博客介绍了一个Spring Boot服务实现用户登录验证的过程。通过@Autowired注解注入TAdminMapper,根据用户输入的用户名和密码查询数据库。代码避免了if嵌套,提高了可读性。在查询到用户信息后,对密码进行比较,如果匹配则返回用户信息,否则抛出自定义的LoginException,分别对应用户名错误和密码错误的情况。
6432

被折叠的 条评论
为什么被折叠?



