init
This commit is contained in:
105
ruoyi-cai/src/main/java/com/ruoyi/cai/auth/CaiLoginManager.java
Normal file
105
ruoyi-cai/src/main/java/com/ruoyi/cai/auth/CaiLoginManager.java
Normal file
@@ -0,0 +1,105 @@
|
||||
package com.ruoyi.cai.auth;
|
||||
|
||||
import cn.dev33.satoken.exception.NotLoginException;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.ruoyi.cai.domain.CaiUser;
|
||||
import com.ruoyi.cai.domain.CaiUserInfo;
|
||||
import com.ruoyi.cai.executor.ExecutorConstant;
|
||||
import com.ruoyi.cai.service.CaiUserInfoService;
|
||||
import com.ruoyi.cai.service.CaiUserService;
|
||||
import com.ruoyi.common.constant.Constants;
|
||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||
import com.ruoyi.common.enums.UserType;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import com.ruoyi.common.utils.MessageUtils;
|
||||
import com.ruoyi.common.utils.ServletUtils;
|
||||
import com.ruoyi.common.utils.ip.AddressUtils;
|
||||
import com.ruoyi.system.service.SysLoginService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collections;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class CaiLoginManager {
|
||||
|
||||
@Autowired
|
||||
private CaiUserService caiUserService;
|
||||
@Autowired
|
||||
private SysLoginService sysLoginService;
|
||||
|
||||
|
||||
public String login(String username,String password){
|
||||
CaiUser caiUser = caiUserService.getByUsername(username);
|
||||
if(caiUser == null){
|
||||
throw new ServiceException("用户不存在或密码错误");
|
||||
}
|
||||
if(caiUser.getStatus() != 0){
|
||||
throw new ServiceException("用户已封禁,请联系客服");
|
||||
}
|
||||
/*if(!BCrypt.checkpw(password, caiUser.getPassword())){
|
||||
throw new ServiceException("用户不存在或密码错误");
|
||||
}*/
|
||||
LoginUser loginUser = new LoginUser();
|
||||
loginUser.setDeptId(null);
|
||||
loginUser.setDeptName(null);
|
||||
// loginUser.setToken(caiUser.getToken());
|
||||
// loginUser.setLoginTime();
|
||||
// loginUser.setExpireTime();
|
||||
// loginUser.setIpaddr();
|
||||
// loginUser.setLoginLocation();
|
||||
// loginUser.setBrowser();
|
||||
// loginUser.setOs();
|
||||
loginUser.setMenuPermission(Collections.emptySet());
|
||||
loginUser.setRolePermission(Collections.emptySet());
|
||||
loginUser.setUsername(caiUser.getMobile());
|
||||
loginUser.setRoles(Collections.emptyList());
|
||||
loginUser.setRoleId(null);
|
||||
loginUser.setUserId(caiUser.getId());
|
||||
loginUser.setUserType(UserType.APP_USER.getUserType());
|
||||
LoginHelper.login(loginUser);
|
||||
sysLoginService.recordLogininfor(loginUser.getUsername(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
|
||||
String clientIP = ServletUtils.getClientIP();
|
||||
ExecutorConstant.COMMON_EXECUTOR.execute(() -> recordLoginInfo(caiUser,clientIP));
|
||||
return StpUtil.getTokenValue();
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private CaiUserInfoService caiUserInfoService;
|
||||
|
||||
public void recordLoginInfo(CaiUser caiUser,String ip) {
|
||||
String address = AddressUtils.getRealAddressByIP(ip);
|
||||
CaiUserInfo caiUserInfo = caiUserInfoService.getById(caiUser.getId());
|
||||
CaiUserInfo update = new CaiUserInfo();
|
||||
update.setUserId(caiUser.getId());
|
||||
update.setLoginCount(caiUserInfo.getLoginCount()+1);
|
||||
update.setPrevLoginTime(caiUserInfo.getLastLoginTime());
|
||||
update.setLastLoginIp(ip);
|
||||
update.setLastLoginTime(LocalDateTime.now());
|
||||
update.setLastLocation(address);
|
||||
caiUserInfoService.updateById(update);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 退出登录
|
||||
*/
|
||||
public void logout() {
|
||||
try {
|
||||
LoginUser loginUser = LoginHelper.getLoginUser();
|
||||
sysLoginService.recordLogininfor(loginUser.getUsername(), Constants.LOGOUT, MessageUtils.message("user.logout.success"));
|
||||
} catch (NotLoginException ignored) {
|
||||
} finally {
|
||||
try {
|
||||
StpUtil.logout();
|
||||
} catch (NotLoginException ignored) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user