|
@@ -245,14 +245,15 @@ public class KwsUserService {
|
|
|
kwsMenus = kwsMenus.stream().filter(item -> item.getClientType().equals(Global.NUMERICAL_TWO)).collect(Collectors.toList());
|
|
kwsMenus = kwsMenus.stream().filter(item -> item.getClientType().equals(Global.NUMERICAL_TWO)).collect(Collectors.toList());
|
|
|
|
|
|
|
|
//企业属性 (1供应商,2采购商,34PL物流,43PL物流)
|
|
//企业属性 (1供应商,2采购商,34PL物流,43PL物流)
|
|
|
- if (org.apache.commons.lang3.StringUtils.equals("1",reqDto.getEntTypes())){
|
|
|
|
|
|
|
+ if (org.apache.commons.lang3.StringUtils.equals("1", reqDto.getEntTypes())) {
|
|
|
editRoleReqVo.setName("供应商管理员");
|
|
editRoleReqVo.setName("供应商管理员");
|
|
|
- }else if (org.apache.commons.lang3.StringUtils.equals("2",reqDto.getEntTypes())){
|
|
|
|
|
|
|
+ } else if (org.apache.commons.lang3.StringUtils.equals("2", reqDto.getEntTypes())) {
|
|
|
editRoleReqVo.setName("采购商管理员");
|
|
editRoleReqVo.setName("采购商管理员");
|
|
|
- }else if (org.apache.commons.lang3.StringUtils.equals("3",reqDto.getEntTypes())){
|
|
|
|
|
|
|
+ } else if (org.apache.commons.lang3.StringUtils.equals("3", reqDto.getEntTypes())) {
|
|
|
editRoleReqVo.setName("物流商管理员");
|
|
editRoleReqVo.setName("物流商管理员");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ editRoleReqVo.setName(Global.MANAGE_NAME);
|
|
|
}
|
|
}
|
|
|
- // editRoleReqVo.setName(Global.MANAGE_NAME);
|
|
|
|
|
editRoleReqVo.setCurrentUnitId(null);
|
|
editRoleReqVo.setCurrentUnitId(null);
|
|
|
editRoleReqVo.setMenuIds(String.join(Global.COMMA, kwsMenus.stream().map(KwsMenu::getId).map(String::valueOf).toList()));
|
|
editRoleReqVo.setMenuIds(String.join(Global.COMMA, kwsMenus.stream().map(KwsMenu::getId).map(String::valueOf).toList()));
|
|
|
editRoleReqVo.setVisiblePersonal(false);
|
|
editRoleReqVo.setVisiblePersonal(false);
|
|
@@ -870,7 +871,7 @@ public class KwsUserService {
|
|
|
*/
|
|
*/
|
|
|
public UserInfoResVo getUserInfoById(Long userId) {
|
|
public UserInfoResVo getUserInfoById(Long userId) {
|
|
|
log.info("查询用户信息,用户ID: {}", userId);
|
|
log.info("查询用户信息,用户ID: {}", userId);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 1. 查询用户基本信息
|
|
// 1. 查询用户基本信息
|
|
|
KwsUser kwsUser = kwsUserRepository.getById(userId);
|
|
KwsUser kwsUser = kwsUserRepository.getById(userId);
|
|
|
if (Objects.isNull(kwsUser) || kwsUser.getDelFlag() != Global.NO) {
|
|
if (Objects.isNull(kwsUser) || kwsUser.getDelFlag() != Global.NO) {
|
|
@@ -889,7 +890,7 @@ public class KwsUserService {
|
|
|
|
|
|
|
|
// 3. 组装返回结果
|
|
// 3. 组装返回结果
|
|
|
String statusDesc = kwsUser.getStatus() != null && kwsUser.getStatus() == Global.YES ? "锁定" : "正常";
|
|
String statusDesc = kwsUser.getStatus() != null && kwsUser.getStatus() == Global.YES ? "锁定" : "正常";
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
return UserInfoResVo.builder()
|
|
return UserInfoResVo.builder()
|
|
|
.userId(kwsUser.getId())
|
|
.userId(kwsUser.getId())
|
|
|
.photo(kwsUser.getPhoto())
|
|
.photo(kwsUser.getPhoto())
|
|
@@ -904,14 +905,14 @@ public class KwsUserService {
|
|
|
/**
|
|
/**
|
|
|
* 修改密码(叉车APP)
|
|
* 修改密码(叉车APP)
|
|
|
*
|
|
*
|
|
|
- * @param userId 用户ID
|
|
|
|
|
|
|
+ * @param userId 用户ID
|
|
|
* @param oldPassword 旧密码
|
|
* @param oldPassword 旧密码
|
|
|
* @param newPassword 新密码
|
|
* @param newPassword 新密码
|
|
|
*/
|
|
*/
|
|
|
public void updatePasswordForApp(Long userId, String oldPassword, String newPassword,
|
|
public void updatePasswordForApp(Long userId, String oldPassword, String newPassword,
|
|
|
String clientType, Integer systemType, String deviceId) {
|
|
String clientType, Integer systemType, String deviceId) {
|
|
|
log.info("修改密码,用户ID: {}", userId);
|
|
log.info("修改密码,用户ID: {}", userId);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 1. 查询用户信息
|
|
// 1. 查询用户信息
|
|
|
KwsUser kwsUser = checkUserBase(userId);
|
|
KwsUser kwsUser = checkUserBase(userId);
|
|
|
|
|
|
|
@@ -919,7 +920,7 @@ public class KwsUserService {
|
|
|
String account = kwsUser.getAccount();
|
|
String account = kwsUser.getAccount();
|
|
|
String currentPwd = kwsUser.getPassword();
|
|
String currentPwd = kwsUser.getPassword();
|
|
|
String salt = kwsUser.getSalt();
|
|
String salt = kwsUser.getSalt();
|
|
|
- oldPassword = PasswordUtils.md5(oldPassword);
|
|
|
|
|
|
|
+ oldPassword = PasswordUtils.md5(oldPassword);
|
|
|
checkPassword(account, oldPassword, currentPwd, salt);
|
|
checkPassword(account, oldPassword, currentPwd, salt);
|
|
|
|
|
|
|
|
// 3. 校验新密码是否与旧密码相同
|
|
// 3. 校验新密码是否与旧密码相同
|
|
@@ -930,12 +931,13 @@ public class KwsUserService {
|
|
|
// 4. 修改密码
|
|
// 4. 修改密码
|
|
|
updatePwd(newPassword, kwsUser);
|
|
updatePwd(newPassword, kwsUser);
|
|
|
// 5. 清除当前登录用户的token缓存
|
|
// 5. 清除当前登录用户的token缓存
|
|
|
- clearCurrentUserToken(deviceId,kwsUser);
|
|
|
|
|
|
|
+ clearCurrentUserToken(deviceId, kwsUser);
|
|
|
log.info("密码修改成功,用户ID: {}", userId);
|
|
log.info("密码修改成功,用户ID: {}", userId);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
private void clearCurrentUserToken(String deviceId, KwsUser kwsUser) {
|
|
private void clearCurrentUserToken(String deviceId, KwsUser kwsUser) {
|
|
|
try {
|
|
try {
|
|
|
- if (kwsUser.getId()!= null) {
|
|
|
|
|
|
|
+ if (kwsUser.getId() != null) {
|
|
|
for (ClientTypeEnum clientTypeEnum : ClientTypeEnum.values()) {
|
|
for (ClientTypeEnum clientTypeEnum : ClientTypeEnum.values()) {
|
|
|
// 清除当前用户的refreshToken
|
|
// 清除当前用户的refreshToken
|
|
|
String refreshTokenKey = Global.getFullRefreshTokenKey(clientTypeEnum.getValue(), kwsUser.getId(), deviceId);
|
|
String refreshTokenKey = Global.getFullRefreshTokenKey(clientTypeEnum.getValue(), kwsUser.getId(), deviceId);
|
|
@@ -953,13 +955,14 @@ public class KwsUserService {
|
|
|
log.warn("清除当前用户token缓存失败", e);
|
|
log.warn("清除当前用户token缓存失败", e);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 用户登录(叉车APP)
|
|
* 用户登录(叉车APP)
|
|
|
*
|
|
*
|
|
|
- * @param account 账号
|
|
|
|
|
- * @param password 密码
|
|
|
|
|
|
|
+ * @param account 账号
|
|
|
|
|
+ * @param password 密码
|
|
|
* @param systemType 系统类型
|
|
* @param systemType 系统类型
|
|
|
- * @param request HTTP请求(用于记录登录日志)
|
|
|
|
|
|
|
+ * @param request HTTP请求(用于记录登录日志)
|
|
|
* @return LoginResVo
|
|
* @return LoginResVo
|
|
|
*/
|
|
*/
|
|
|
public LoginResVo login(String account, String password, Integer systemType, HttpServletRequest request) {
|
|
public LoginResVo login(String account, String password, Integer systemType, HttpServletRequest request) {
|
|
@@ -967,13 +970,13 @@ public class KwsUserService {
|
|
|
|
|
|
|
|
// 1. 查询用户信息
|
|
// 1. 查询用户信息
|
|
|
KwsUser kwsUser = getKwsUser(account, systemType);
|
|
KwsUser kwsUser = getKwsUser(account, systemType);
|
|
|
- password= PasswordUtils.md5(password);
|
|
|
|
|
|
|
+ password = PasswordUtils.md5(password);
|
|
|
// 3. 校验密码
|
|
// 3. 校验密码
|
|
|
checkPassword(account, password, kwsUser.getPassword(), kwsUser.getSalt());
|
|
checkPassword(account, password, kwsUser.getPassword(), kwsUser.getSalt());
|
|
|
|
|
|
|
|
// 4. 查询用户角色
|
|
// 4. 查询用户角色
|
|
|
List<RoleInfoDto> roleInfoList = kwsUserRoleDao.queryRoleList(kwsUser.getId());
|
|
List<RoleInfoDto> roleInfoList = kwsUserRoleDao.queryRoleList(kwsUser.getId());
|
|
|
- if (CollUtil.isEmpty(roleInfoList)){
|
|
|
|
|
|
|
+ if (CollUtil.isEmpty(roleInfoList)) {
|
|
|
throw new SystemException(HttpStatus.CODE_60603, "该用户没有分配角色");
|
|
throw new SystemException(HttpStatus.CODE_60603, "该用户没有分配角色");
|
|
|
}
|
|
}
|
|
|
List<String> roleNames = Arrays.asList("铲车司机", "门卫");
|
|
List<String> roleNames = Arrays.asList("铲车司机", "门卫");
|
|
@@ -1003,12 +1006,12 @@ public class KwsUserService {
|
|
|
|
|
|
|
|
// 8. 缓存企业信息
|
|
// 8. 缓存企业信息
|
|
|
KwsEnterprise kwsEnterprise = null;
|
|
KwsEnterprise kwsEnterprise = null;
|
|
|
- if ( kwsUser.getEntId() != null) {
|
|
|
|
|
|
|
+ if (kwsUser.getEntId() != null) {
|
|
|
kwsEnterprise = saveEntToCache(kwsUser.getEntId());
|
|
kwsEnterprise = saveEntToCache(kwsUser.getEntId());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 9. 缓存菜单权限
|
|
// 9. 缓存菜单权限
|
|
|
- List<KwsMenuResVo> kwsMenuResVos = saveMenusToCache(kwsUser.getId(), systemType, roleId);
|
|
|
|
|
|
|
+ List<KwsMenuResVo> kwsMenuResVos = saveMenusToCache(kwsUser.getId(), systemType, roleId);
|
|
|
|
|
|
|
|
// 10. 组装返回结果
|
|
// 10. 组装返回结果
|
|
|
LoginResVo result = LoginResVo.builder()
|
|
LoginResVo result = LoginResVo.builder()
|
|
@@ -1038,15 +1041,15 @@ public class KwsUserService {
|
|
|
/**
|
|
/**
|
|
|
* 切换账号(叉车APP)
|
|
* 切换账号(叉车APP)
|
|
|
*
|
|
*
|
|
|
- * @param account 账号
|
|
|
|
|
- * @param password 密码
|
|
|
|
|
|
|
+ * @param account 账号
|
|
|
|
|
+ * @param password 密码
|
|
|
* @param systemType 系统类型
|
|
* @param systemType 系统类型
|
|
|
- * @param request HTTP请求(可选,用于记录登录日志)
|
|
|
|
|
|
|
+ * @param request HTTP请求(可选,用于记录登录日志)
|
|
|
* @return SwitchAccountResVo
|
|
* @return SwitchAccountResVo
|
|
|
*/
|
|
*/
|
|
|
public SwitchAccountResVo switchAccount(String account, String password, Integer systemType, HttpServletRequest request) {
|
|
public SwitchAccountResVo switchAccount(String account, String password, Integer systemType, HttpServletRequest request) {
|
|
|
log.info("切换账号,账号: {}, 系统类型: {}", account, systemType);
|
|
log.info("切换账号,账号: {}, 系统类型: {}", account, systemType);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 1. 查询用户信息
|
|
// 1. 查询用户信息
|
|
|
KwsUser kwsUser = getKwsUser(account, systemType);
|
|
KwsUser kwsUser = getKwsUser(account, systemType);
|
|
|
|
|
|
|
@@ -1056,7 +1059,7 @@ public class KwsUserService {
|
|
|
|
|
|
|
|
// 4. 查询用户角色
|
|
// 4. 查询用户角色
|
|
|
List<RoleInfoDto> roleInfoList = kwsUserRoleDao.queryRoleList(kwsUser.getId());
|
|
List<RoleInfoDto> roleInfoList = kwsUserRoleDao.queryRoleList(kwsUser.getId());
|
|
|
- if (CollUtil.isEmpty(roleInfoList)){
|
|
|
|
|
|
|
+ if (CollUtil.isEmpty(roleInfoList)) {
|
|
|
throw new SystemException(HttpStatus.CODE_60603, "该用户没有分配角色");
|
|
throw new SystemException(HttpStatus.CODE_60603, "该用户没有分配角色");
|
|
|
}
|
|
}
|
|
|
List<String> roleNames = Arrays.asList("铲车司机", "门卫");
|
|
List<String> roleNames = Arrays.asList("铲车司机", "门卫");
|
|
@@ -1088,7 +1091,7 @@ public class KwsUserService {
|
|
|
|
|
|
|
|
// 8. 缓存企业信息
|
|
// 8. 缓存企业信息
|
|
|
KwsEnterprise kwsEnterprise = null;
|
|
KwsEnterprise kwsEnterprise = null;
|
|
|
- if ( kwsUser.getEntId() != null) {
|
|
|
|
|
|
|
+ if (kwsUser.getEntId() != null) {
|
|
|
kwsEnterprise = saveEntToCache(kwsUser.getEntId());
|
|
kwsEnterprise = saveEntToCache(kwsUser.getEntId());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1141,7 +1144,7 @@ public class KwsUserService {
|
|
|
*/
|
|
*/
|
|
|
public void logout(Long userId) {
|
|
public void logout(Long userId) {
|
|
|
log.info("退出登录,用户ID: {}", userId);
|
|
log.info("退出登录,用户ID: {}", userId);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 1. 校验用户是否存在
|
|
// 1. 校验用户是否存在
|
|
|
KwsUser kwsUser = kwsUserRepository.getById(userId);
|
|
KwsUser kwsUser = kwsUserRepository.getById(userId);
|
|
|
if (Objects.isNull(kwsUser)) {
|
|
if (Objects.isNull(kwsUser)) {
|
|
@@ -1193,10 +1196,11 @@ public class KwsUserService {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 缓存用户登录信息
|
|
* 缓存用户登录信息
|
|
|
- * @param kwsUser 用户信息
|
|
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param kwsUser 用户信息
|
|
|
* @param systemType 系统类型
|
|
* @param systemType 系统类型
|
|
|
* @param clientType 客户端类型
|
|
* @param clientType 客户端类型
|
|
|
- * @param roleId 角色ID
|
|
|
|
|
|
|
+ * @param roleId 角色ID
|
|
|
*/
|
|
*/
|
|
|
private void saveUserToCache(KwsUser kwsUser, Integer systemType, String clientType, Long roleId) {
|
|
private void saveUserToCache(KwsUser kwsUser, Integer systemType, String clientType, Long roleId) {
|
|
|
try {
|
|
try {
|
|
@@ -1233,6 +1237,7 @@ public class KwsUserService {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 缓存企业信息
|
|
* 缓存企业信息
|
|
|
|
|
+ *
|
|
|
* @param entId 企业ID
|
|
* @param entId 企业ID
|
|
|
*/
|
|
*/
|
|
|
private KwsEnterprise saveEntToCache(Long entId) {
|
|
private KwsEnterprise saveEntToCache(Long entId) {
|
|
@@ -1247,24 +1252,25 @@ public class KwsUserService {
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
log.error("缓存企业信息失败,企业ID: {}", entId, e);
|
|
log.error("缓存企业信息失败,企业ID: {}", entId, e);
|
|
|
}
|
|
}
|
|
|
- return null;
|
|
|
|
|
|
|
+ return null;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 缓存菜单权限
|
|
* 缓存菜单权限
|
|
|
- * @param userId 用户ID
|
|
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param userId 用户ID
|
|
|
* @param systemType 系统类型
|
|
* @param systemType 系统类型
|
|
|
- * @param roleId 角色ID
|
|
|
|
|
|
|
+ * @param roleId 角色ID
|
|
|
*/
|
|
*/
|
|
|
private List<KwsMenuResVo> saveMenusToCache(Long userId, Integer systemType, Long roleId) {
|
|
private List<KwsMenuResVo> saveMenusToCache(Long userId, Integer systemType, Long roleId) {
|
|
|
- if (Objects.isNull(roleId)){
|
|
|
|
|
|
|
+ if (Objects.isNull(roleId)) {
|
|
|
return List.of();
|
|
return List.of();
|
|
|
}
|
|
}
|
|
|
try {
|
|
try {
|
|
|
// 使用本地服务查询菜单
|
|
// 使用本地服务查询菜单
|
|
|
com.sckw.system.model.pojo.FindMenuTreePojo findMenuTreePojo = new com.sckw.system.model.pojo.FindMenuTreePojo();
|
|
com.sckw.system.model.pojo.FindMenuTreePojo findMenuTreePojo = new com.sckw.system.model.pojo.FindMenuTreePojo();
|
|
|
findMenuTreePojo.setRoleIds(Collections.singletonList(roleId));
|
|
findMenuTreePojo.setRoleIds(Collections.singletonList(roleId));
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
List<KwsMenuResVo> kwsMenuResVos = kwsMenuService.findList(findMenuTreePojo);
|
|
List<KwsMenuResVo> kwsMenuResVos = kwsMenuService.findList(findMenuTreePojo);
|
|
|
if (CollectionUtils.isEmpty(kwsMenuResVos)) {
|
|
if (CollectionUtils.isEmpty(kwsMenuResVos)) {
|
|
|
RedissonUtils.delete(Global.REDIS_SYS_MENU_PREFIX + systemType + Global.COLON + userId);
|
|
RedissonUtils.delete(Global.REDIS_SYS_MENU_PREFIX + systemType + Global.COLON + userId);
|
|
@@ -1289,15 +1295,16 @@ public class KwsUserService {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 保存登录日志
|
|
* 保存登录日志
|
|
|
- * @param userId 用户ID
|
|
|
|
|
- * @param request HTTP请求
|
|
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param userId 用户ID
|
|
|
|
|
+ * @param request HTTP请求
|
|
|
* @param loginType 登录类型: 1-首次登录, 2-切换账号登录
|
|
* @param loginType 登录类型: 1-首次登录, 2-切换账号登录
|
|
|
*/
|
|
*/
|
|
|
public void saveLoginLogs(Long userId, HttpServletRequest request, Integer loginType) {
|
|
public void saveLoginLogs(Long userId, HttpServletRequest request, Integer loginType) {
|
|
|
try {
|
|
try {
|
|
|
// 获取登录IP
|
|
// 获取登录IP
|
|
|
String loginIp = RequestUtil.getClientIp(request);
|
|
String loginIp = RequestUtil.getClientIp(request);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 获取设备信息
|
|
// 获取设备信息
|
|
|
String userAgentStr = request.getHeader("User-Agent");
|
|
String userAgentStr = request.getHeader("User-Agent");
|
|
|
String deviceInfo = "";
|
|
String deviceInfo = "";
|