package com.wms_admin.sys.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.wms_admin.clients.UserLoginUtils;
import com.wms_admin.shiro.realm.ShiroRealm;
import com.wms_admin.sys.entity.User;
import com.wms_admin.sys.mapper.UserMapper;
import com.wms_admin.sys.service.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms_admin.utils.*;
import io.swagger.models.auth.In;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.IncorrectCredentialsException;
import org.apache.shiro.authc.LockedAccountException;
import org.apache.shiro.authc.UnknownAccountException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.crypto.hash.Md5Hash;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.FileSystemUtils;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
*
* 服务实现类
*
*
* @author 江苏鵷雏网络科技有限公司
* @since 2023-05-24
*/
@Service
public class UserServiceImpl extends ServiceImpl implements UserService {
@Resource
private UserMapper mapper;
@Value("${file.path}")
private String FILE_PATH;
@Value("${avatar}")
private String avatar;
@Override
public User accordingUsernameSelectAll(String account) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getAccount,account);
return mapper.selectOne(wrapper);
}
@Override
public Boolean AddUser(User user) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getAccount, user.getAccount());
User userIsNull = mapper.selectOne(wrapper);
if (!ObjectUtils.isEmpty(userIsNull)){ // 如果查询数据返回false
return false;
} else { // 没有查询到则进行添加操作
//1.获取随机盐
String salt = MyUtils.getSalt(10);
user.setSalt(salt);
//3.明文密码进行md5 + salt + hash散列
Md5Hash MD5 = new Md5Hash(user.getPassword(),salt,1024);
user.setPassword(MD5.toString());
user.setAvatar(avatar);
mapper.insert(user);
return true;
}
}
@Override
public Result