mirror of https://gitee.com/stylefeng/roses
【system】修复loginUser的字段
parent
8e19ef6257
commit
19e1ff039a
|
@ -23,18 +23,18 @@ public class LoginUser implements Serializable {
|
|||
/**
|
||||
* 用户主键id
|
||||
*/
|
||||
private Long id;
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
private String realName;
|
||||
|
||||
/**
|
||||
* 账号
|
||||
*/
|
||||
private String account;
|
||||
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 公司/组织id
|
||||
*/
|
||||
|
|
|
@ -158,7 +158,7 @@ public class AuthServiceImpl implements AuthServiceApi {
|
|||
LoginUser loginUser = userValidateInfo.getLoginUser();
|
||||
|
||||
// 6.生成用户的token
|
||||
DefaultJwtPayload defaultJwtPayload = new DefaultJwtPayload(loginUser.getId(), loginUser.getAccount(), loginRequest.getRememberMe());
|
||||
DefaultJwtPayload defaultJwtPayload = new DefaultJwtPayload(loginUser.getUserId(), loginUser.getAccount(), loginRequest.getRememberMe());
|
||||
String jwtToken = JwtContext.me().generateTokenDefaultPayload(defaultJwtPayload);
|
||||
|
||||
synchronized (SESSION_OPERATE_LOCK) {
|
||||
|
@ -175,7 +175,7 @@ public class AuthServiceImpl implements AuthServiceApi {
|
|||
|
||||
// 9.更新用户登录时间和ip
|
||||
String ip = HttpServletUtil.getRequestClientIp(HttpServletUtil.getRequest());
|
||||
userServiceApi.updateUserLoginInfo(loginUser.getId(), new Date(), ip);
|
||||
userServiceApi.updateUserLoginInfo(loginUser.getUserId(), new Date(), ip);
|
||||
|
||||
// 10.组装返回结果
|
||||
return new LoginResponse(loginUser, jwtToken);
|
||||
|
|
|
@ -50,7 +50,7 @@ public class MemoryCacheSessionManager implements SessionManagerApi {
|
|||
loginUserCache.put(getTokenKey(token), loginUser);
|
||||
|
||||
// 装配用户token的缓存
|
||||
String userIdKey = getUserIdKey(loginUser.getId());
|
||||
String userIdKey = getUserIdKey(loginUser.getUserId());
|
||||
Set<String> theUserTokens = loginTokenCache.get(userIdKey);
|
||||
if (theUserTokens == null) {
|
||||
HashSet<String> tempUserTokens = new HashSet<>();
|
||||
|
@ -74,7 +74,7 @@ public class MemoryCacheSessionManager implements SessionManagerApi {
|
|||
|
||||
// 删除用户id对应token的缓存
|
||||
if (loginUser != null) {
|
||||
Long userId = loginUser.getId();
|
||||
Long userId = loginUser.getUserId();
|
||||
Set<String> userTokens = loginTokenCache.get(getUserIdKey(userId));
|
||||
if (userTokens != null) {
|
||||
userTokens.remove(token);
|
||||
|
@ -102,7 +102,7 @@ public class MemoryCacheSessionManager implements SessionManagerApi {
|
|||
}
|
||||
|
||||
// 获取用户id
|
||||
Long userId = session.getId();
|
||||
Long userId = session.getUserId();
|
||||
|
||||
// 设置用户id对应的token列表为参数token
|
||||
HashSet<String> tokenSet = new HashSet<>();
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package cn.stylefeng.roses.kernel.auth.session;
|
||||
|
||||
import com.alibaba.fastjson.parser.ParserConfig;
|
||||
import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
||||
import com.alibaba.fastjson.parser.ParserConfig;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
|
||||
import java.util.HashSet;
|
||||
|
@ -57,7 +57,7 @@ public class RedisSessionManager implements SessionManagerApi {
|
|||
loginUserRedisTemplate.opsForValue().set(getTokenKey(token), loginUser, sessionExpiredSeconds, TimeUnit.SECONDS);
|
||||
|
||||
// 装配用户token的缓存
|
||||
String userIdKey = getUserIdKey(loginUser.getId());
|
||||
String userIdKey = getUserIdKey(loginUser.getUserId());
|
||||
Set<String> theUserTokens = loginTokenRedisTemplate.opsForValue().get(userIdKey);
|
||||
if (theUserTokens == null) {
|
||||
HashSet<String> tempUserTokens = new HashSet<>();
|
||||
|
@ -82,7 +82,7 @@ public class RedisSessionManager implements SessionManagerApi {
|
|||
|
||||
// 删除用户id对应token的缓存
|
||||
if (loginUser != null) {
|
||||
Long userId = loginUser.getId();
|
||||
Long userId = loginUser.getUserId();
|
||||
Set<String> userTokens = loginTokenRedisTemplate.opsForValue().get(getUserIdKey(userId));
|
||||
if (userTokens != null) {
|
||||
userTokens.remove(token);
|
||||
|
@ -110,7 +110,7 @@ public class RedisSessionManager implements SessionManagerApi {
|
|||
}
|
||||
|
||||
// 获取用户id
|
||||
Long userId = session.getId();
|
||||
Long userId = session.getUserId();
|
||||
|
||||
// 设置用户id对应的token列表为参数token
|
||||
HashSet<String> tokenSet = new HashSet<>();
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package cn.stylefeng.roses.kernel.db.mp.fieldfill;
|
||||
|
||||
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.ibatis.reflection.MetaObject;
|
||||
import org.apache.ibatis.reflection.ReflectionException;
|
||||
|
@ -64,7 +64,7 @@ public class CustomMetaObjectHandler implements MetaObjectHandler {
|
|||
private Long getUserUniqueId() {
|
||||
|
||||
try {
|
||||
return LoginContext.me().getLoginUser().getId();
|
||||
return LoginContext.me().getLoginUser().getUserId();
|
||||
} catch (Exception e) {
|
||||
//如果获取不到就返回-1
|
||||
return -1L;
|
||||
|
|
|
@ -29,7 +29,7 @@ public class AuthedLogAppender {
|
|||
|
||||
// 填充登录用户的userId
|
||||
LoginUser loginUser = LoginContext.me().getLoginUser();
|
||||
logRecordDTO.setUserId(loginUser.getId());
|
||||
logRecordDTO.setUserId(loginUser.getUserId());
|
||||
} catch (Exception ignored) {
|
||||
// 获取不到用户登录信息,就不填充
|
||||
}
|
||||
|
|
|
@ -81,7 +81,12 @@ public enum SysUserExceptionEnum implements AbstractExceptionEnum {
|
|||
/**
|
||||
* 更新用户状态错误
|
||||
*/
|
||||
UPDATE_USER_STATUS_ERROR(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "59", "更新用户状态错误,更新生效数量0");;
|
||||
UPDATE_USER_STATUS_ERROR(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "59", "更新用户状态错误,更新生效数量0"),
|
||||
|
||||
/**
|
||||
* 当前用户未分配菜单
|
||||
*/
|
||||
USER_NOT_HAVE_MENUS(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "60", "当前用户未分配菜单");
|
||||
|
||||
/**
|
||||
* 错误编码
|
||||
|
|
|
@ -22,37 +22,36 @@ public class SysAppRequest extends BaseRequest {
|
|||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "id不能为空,请检查id参数", groups = {edit.class, delete.class, detail.class})
|
||||
private Long id;
|
||||
@NotNull(message = "appId不能为空", groups = {edit.class, delete.class, detail.class})
|
||||
private Long appId;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
@NotBlank(message = "名称不能为空,请检查name参数", groups = {add.class, edit.class})
|
||||
@NotBlank(message = "名称不能为空", groups = {add.class, edit.class})
|
||||
@TableUniqueValue(
|
||||
message = "名称存在重复,请检查name参数",
|
||||
message = "名称存在重复",
|
||||
groups = {add.class, edit.class},
|
||||
tableName = "sys_app",
|
||||
columnName = "name")
|
||||
private String name;
|
||||
columnName = "app_name")
|
||||
private String appName;
|
||||
|
||||
/**
|
||||
* 编码
|
||||
*/
|
||||
@NotBlank(message = "编码不能为空,请检查code参数", groups = {add.class, edit.class})
|
||||
@NotBlank(message = "编码不能为空", groups = {add.class, edit.class})
|
||||
@TableUniqueValue(
|
||||
message = "编码存在重复,请检查code参数",
|
||||
message = "编码存在重复",
|
||||
groups = {add.class, edit.class},
|
||||
tableName = "sys_app",
|
||||
columnName = "code")
|
||||
private String code;
|
||||
columnName = "app_code")
|
||||
private String appCode;
|
||||
|
||||
/**
|
||||
* 是否默认激活(Y-是,N-否),只能有一个系统默认激活
|
||||
* 用户登录后默认展示此系统菜单
|
||||
* 是否默认激活:Y-是,N-否,激活的应用下的菜单会在首页默认展开
|
||||
*/
|
||||
@NotBlank(message = "是否默认激活不能为空,请检查active参数", groups = {add.class, edit.class})
|
||||
@FlagValue(message = "是否默认激活格式错误,正确格式应该Y或者N,请检查active参数", groups = {add.class, edit.class})
|
||||
@NotBlank(message = "是否默认激活不能为空", groups = {add.class, edit.class})
|
||||
@FlagValue(message = "是否默认激活格式错误,正确格式应该Y或者N", groups = {add.class, edit.class})
|
||||
private String activeFlag;
|
||||
|
||||
}
|
||||
|
|
|
@ -17,17 +17,17 @@ public class SysAppResponse implements Serializable {
|
|||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
private Long appId;
|
||||
|
||||
/**
|
||||
* 应用名称
|
||||
*/
|
||||
private String name;
|
||||
private String appName;
|
||||
|
||||
/**
|
||||
* 编码
|
||||
*/
|
||||
private String code;
|
||||
private String appCode;
|
||||
|
||||
/**
|
||||
* 是否默认激活(Y-是,N-否)
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package cn.stylefeng.roses.kernel.app.modular.entity;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
@ -21,35 +21,35 @@ public class SysApp extends BaseEntity {
|
|||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@TableId("id")
|
||||
private Long id;
|
||||
@TableId("app_id")
|
||||
private Long appId;
|
||||
|
||||
/**
|
||||
* 应用名称
|
||||
*/
|
||||
@TableField("name")
|
||||
private String name;
|
||||
@TableField("app_name")
|
||||
private String appName;
|
||||
|
||||
/**
|
||||
* 编码
|
||||
*/
|
||||
@TableField("code")
|
||||
private String code;
|
||||
@TableField("app_code")
|
||||
private String appCode;
|
||||
|
||||
/**
|
||||
* 是否默认激活(Y-是,N-否)
|
||||
* 是否默认激活:Y-是,N-否,激活的应用下的菜单会在首页默认展开
|
||||
*/
|
||||
@TableField("active_flag")
|
||||
private String activeFlag;
|
||||
|
||||
/**
|
||||
* 状态(字典 1启用 2禁用)
|
||||
* 状态:1-启用,2-禁用
|
||||
*/
|
||||
@TableField("status_flag")
|
||||
private Integer statusFlag;
|
||||
|
||||
/**
|
||||
* 是否删除(Y-已删除,N-未删除)
|
||||
* 是否删除:Y-已删除,N-未删除
|
||||
*/
|
||||
@TableField("del_flag")
|
||||
private String delFlag;
|
||||
|
|
|
@ -3,10 +3,6 @@ package cn.stylefeng.roses.kernel.app.modular.service.impl;
|
|||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.roses.kernel.app.modular.entity.SysApp;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import cn.stylefeng.roses.kernel.app.modular.mapper.SysAppMapper;
|
||||
import cn.stylefeng.roses.kernel.app.modular.service.SysAppService;
|
||||
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
||||
|
@ -20,6 +16,10 @@ import cn.stylefeng.roses.kernel.system.AppServiceApi;
|
|||
import cn.stylefeng.roses.kernel.system.MenuServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.exception.enums.AppExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.app.request.SysAppRequest;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
@ -73,7 +73,7 @@ public class SysAppServiceImpl extends ServiceImpl<SysAppMapper, SysApp> impleme
|
|||
@Override
|
||||
public void delete(SysAppRequest sysAppRequest) {
|
||||
SysApp sysApp = this.querySysApp(sysAppRequest);
|
||||
String code = sysApp.getCode();
|
||||
String code = sysApp.getAppCode();
|
||||
|
||||
// 该应用下有菜单,则不能删除
|
||||
boolean hasMenu = menuApi.hasMenu(code);
|
||||
|
@ -126,15 +126,15 @@ public class SysAppServiceImpl extends ServiceImpl<SysAppMapper, SysApp> impleme
|
|||
HashSet<SimpleDict> simpleDicts = new HashSet<>();
|
||||
|
||||
LambdaQueryWrapper<SysApp> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(SysApp::getCode, appCodes);
|
||||
queryWrapper.select(SysApp::getCode, SysApp::getId, SysApp::getName);
|
||||
queryWrapper.in(SysApp::getAppCode, appCodes);
|
||||
queryWrapper.select(SysApp::getAppCode, SysApp::getAppId, SysApp::getAppName);
|
||||
|
||||
List<SysApp> list = this.list(queryWrapper);
|
||||
for (SysApp sysApp : list) {
|
||||
SimpleDict simpleDict = new SimpleDict();
|
||||
simpleDict.setId(sysApp.getId());
|
||||
simpleDict.setCode(sysApp.getCode());
|
||||
simpleDict.setName(sysApp.getName());
|
||||
simpleDict.setId(sysApp.getAppId());
|
||||
simpleDict.setCode(sysApp.getAppCode());
|
||||
simpleDict.setName(sysApp.getAppName());
|
||||
simpleDicts.add(simpleDict);
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@ public class SysAppServiceImpl extends ServiceImpl<SysAppMapper, SysApp> impleme
|
|||
* @date 2020/3/26 9:56
|
||||
*/
|
||||
private SysApp querySysApp(SysAppRequest sysAppRequest) {
|
||||
SysApp sysApp = this.getById(sysAppRequest.getId());
|
||||
SysApp sysApp = this.getById(sysAppRequest.getAppId());
|
||||
if (ObjectUtil.isNull(sysApp)) {
|
||||
throw new ServiceException(AppExceptionEnum.APP_NOT_EXIST);
|
||||
}
|
||||
|
@ -170,7 +170,7 @@ public class SysAppServiceImpl extends ServiceImpl<SysAppMapper, SysApp> impleme
|
|||
|
||||
// 排除自己
|
||||
if (excludeSelf) {
|
||||
appQueryWrapperByActive.ne(SysApp::getId, sysAppRequest.getId());
|
||||
appQueryWrapperByActive.ne(SysApp::getAppId, sysAppRequest.getAppId());
|
||||
}
|
||||
|
||||
int countByActive = this.count(appQueryWrapperByActive);
|
||||
|
@ -191,18 +191,18 @@ public class SysAppServiceImpl extends ServiceImpl<SysAppMapper, SysApp> impleme
|
|||
LambdaQueryWrapper<SysApp> queryWrapper = new LambdaQueryWrapper<>();
|
||||
if (ObjectUtil.isNotNull(sysAppRequest)) {
|
||||
// 根据id查询
|
||||
if (ObjectUtil.isNotEmpty(sysAppRequest.getId())) {
|
||||
queryWrapper.eq(SysApp::getId, sysAppRequest.getId());
|
||||
if (ObjectUtil.isNotEmpty(sysAppRequest.getAppId())) {
|
||||
queryWrapper.eq(SysApp::getAppId, sysAppRequest.getAppId());
|
||||
}
|
||||
|
||||
// 根据名称模糊查询
|
||||
if (ObjectUtil.isNotEmpty(sysAppRequest.getName())) {
|
||||
queryWrapper.like(SysApp::getName, sysAppRequest.getName());
|
||||
if (ObjectUtil.isNotEmpty(sysAppRequest.getAppName())) {
|
||||
queryWrapper.like(SysApp::getAppName, sysAppRequest.getAppName());
|
||||
}
|
||||
|
||||
// 根据编码模糊查询
|
||||
if (ObjectUtil.isNotEmpty(sysAppRequest.getCode())) {
|
||||
queryWrapper.like(SysApp::getCode, sysAppRequest.getCode());
|
||||
if (ObjectUtil.isNotEmpty(sysAppRequest.getAppCode())) {
|
||||
queryWrapper.like(SysApp::getAppCode, sysAppRequest.getAppCode());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -43,7 +43,9 @@ import cn.stylefeng.roses.kernel.system.MenuServiceApi;
|
|||
import cn.stylefeng.roses.kernel.system.RoleServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.constants.SymbolConstant;
|
||||
import cn.stylefeng.roses.kernel.system.constants.SystemConstants;
|
||||
import cn.stylefeng.roses.kernel.system.exception.SystemModularException;
|
||||
import cn.stylefeng.roses.kernel.system.exception.enums.SysMenuExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.exception.enums.SysUserExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.tree.LoginMenuTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.tree.MenuBaseTreeNode;
|
||||
|
@ -150,6 +152,11 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
|
||||
List<Long> menuIdList = getCurrentUserMenuIds();
|
||||
|
||||
// 当前用户没有菜单
|
||||
if (menuIdList.isEmpty()) {
|
||||
throw new SystemModularException(SysUserExceptionEnum.USER_NOT_HAVE_MENUS);
|
||||
}
|
||||
|
||||
// 获取菜单列表
|
||||
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(SysMenu::getMenuId, menuIdList)
|
||||
|
|
Loading…
Reference in New Issue