package com.example.onlinejudge.service.impl;

import cn.dev33.satoken.stp.SaTokenInfo;
import cn.dev33.satoken.stp.StpUtil;
import cn.dev33.satoken.util.SaResult;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.onlinejudge.model.entity.User;
import com.example.onlinejudge.mapper.UserMapper;
import com.example.onlinejudge.model.entity.result.Result;
import com.example.onlinejudge.model.entity.result.ResultCode;
import com.example.onlinejudge.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import sun.security.krb5.internal.PAData;

import java.util.LinkedHashMap;

/**
 * 实现用户服务
 */
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    /**
     * 用户登录服务
     *
     * @param username 用户名
     * @param password 密码
     * @return 登录结果
     */
    @Override
    public Result login(String username, String password) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("username", username).eq("password", password);
        User user = userMapper.selectOne(queryWrapper);
        if (user != null) {
            StpUtil.login(user.getId());
            return Result.success();
        }
        return Result.error(ResultCode.USER_LOGIN_ERROR);
    }

    @Override
    public String getLoginUser() {
        return StpUtil.getLoginId().toString();
    }

}