package top.awinx.stu01.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import org.springframework.stereotype.Service;
import top.awinx.stu01.entity.SysUser;
import top.awinx.stu01.mapper.SysUserMapper;
import top.awinx.stu01.service.SysUserService;

/**
 * 用户服务实现类（核心业务逻辑）
 */
@Service // 标识为Spring服务Bean
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService {

    /**
     * 登录校验逻辑：
     * 1. 校验账号非空
     * 2. 校验密码非空
     * 3. 查询数据库是否存在该账号
     * 4. 校验密码是否匹配
     */
    @Override
    public SysUser loginCheck(String username, String password) {
        // 1. 空值校验
        if (username == null || username.isEmpty()) {
            return null;
        }
        if (password == null || password.isEmpty()) {
            return null;
        }

        // 2. 根据账号查询用户（LambdaQueryWrapper避免SQL注入）
        LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(SysUser::getUsername, username); // 等值查询username
        SysUser sysUser = this.baseMapper.selectOne(queryWrapper);

        // 3. 校验用户存在且密码匹配（测试用明文对比）
        if (sysUser == null || !password.equals(sysUser.getPassword())) {
            return null;
        }

        // 4. 校验通过，返回用户信息（后续生成JWT用）
        return sysUser;
    }
}
