实现登录验证功能Service的实现类

该博客介绍了一个Spring Boot服务实现用户登录验证的过程。通过@Autowired注解注入TAdminMapper,根据用户输入的用户名和密码查询数据库。代码避免了if嵌套,提高了可读性。在查询到用户信息后,对密码进行比较,如果匹配则返回用户信息,否则抛出自定义的LoginException,分别对应用户名错误和密码错误的情况。

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;

}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值