【system】修复loginUser的字段

pull/3/head
fengshuonan 2020-12-19 23:14:42 +08:00
parent 8e19ef6257
commit 19e1ff039a
12 changed files with 75 additions and 64 deletions

View File

@ -23,18 +23,18 @@ public class LoginUser implements Serializable {
/** /**
* id * id
*/ */
private Long id; private Long userId;
/**
*
*/
private String realName;
/** /**
* *
*/ */
private String account; private String account;
/**
*
*/
private String name;
/** /**
* /id * /id
*/ */

View File

@ -158,7 +158,7 @@ public class AuthServiceImpl implements AuthServiceApi {
LoginUser loginUser = userValidateInfo.getLoginUser(); LoginUser loginUser = userValidateInfo.getLoginUser();
// 6.生成用户的token // 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); String jwtToken = JwtContext.me().generateTokenDefaultPayload(defaultJwtPayload);
synchronized (SESSION_OPERATE_LOCK) { synchronized (SESSION_OPERATE_LOCK) {
@ -175,7 +175,7 @@ public class AuthServiceImpl implements AuthServiceApi {
// 9.更新用户登录时间和ip // 9.更新用户登录时间和ip
String ip = HttpServletUtil.getRequestClientIp(HttpServletUtil.getRequest()); String ip = HttpServletUtil.getRequestClientIp(HttpServletUtil.getRequest());
userServiceApi.updateUserLoginInfo(loginUser.getId(), new Date(), ip); userServiceApi.updateUserLoginInfo(loginUser.getUserId(), new Date(), ip);
// 10.组装返回结果 // 10.组装返回结果
return new LoginResponse(loginUser, jwtToken); return new LoginResponse(loginUser, jwtToken);

View File

@ -50,7 +50,7 @@ public class MemoryCacheSessionManager implements SessionManagerApi {
loginUserCache.put(getTokenKey(token), loginUser); loginUserCache.put(getTokenKey(token), loginUser);
// 装配用户token的缓存 // 装配用户token的缓存
String userIdKey = getUserIdKey(loginUser.getId()); String userIdKey = getUserIdKey(loginUser.getUserId());
Set<String> theUserTokens = loginTokenCache.get(userIdKey); Set<String> theUserTokens = loginTokenCache.get(userIdKey);
if (theUserTokens == null) { if (theUserTokens == null) {
HashSet<String> tempUserTokens = new HashSet<>(); HashSet<String> tempUserTokens = new HashSet<>();
@ -74,7 +74,7 @@ public class MemoryCacheSessionManager implements SessionManagerApi {
// 删除用户id对应token的缓存 // 删除用户id对应token的缓存
if (loginUser != null) { if (loginUser != null) {
Long userId = loginUser.getId(); Long userId = loginUser.getUserId();
Set<String> userTokens = loginTokenCache.get(getUserIdKey(userId)); Set<String> userTokens = loginTokenCache.get(getUserIdKey(userId));
if (userTokens != null) { if (userTokens != null) {
userTokens.remove(token); userTokens.remove(token);
@ -102,7 +102,7 @@ public class MemoryCacheSessionManager implements SessionManagerApi {
} }
// 获取用户id // 获取用户id
Long userId = session.getId(); Long userId = session.getUserId();
// 设置用户id对应的token列表为参数token // 设置用户id对应的token列表为参数token
HashSet<String> tokenSet = new HashSet<>(); HashSet<String> tokenSet = new HashSet<>();

View File

@ -1,8 +1,8 @@
package cn.stylefeng.roses.kernel.auth.session; 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.SessionManagerApi;
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser; import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
import com.alibaba.fastjson.parser.ParserConfig;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import java.util.HashSet; import java.util.HashSet;
@ -57,7 +57,7 @@ public class RedisSessionManager implements SessionManagerApi {
loginUserRedisTemplate.opsForValue().set(getTokenKey(token), loginUser, sessionExpiredSeconds, TimeUnit.SECONDS); loginUserRedisTemplate.opsForValue().set(getTokenKey(token), loginUser, sessionExpiredSeconds, TimeUnit.SECONDS);
// 装配用户token的缓存 // 装配用户token的缓存
String userIdKey = getUserIdKey(loginUser.getId()); String userIdKey = getUserIdKey(loginUser.getUserId());
Set<String> theUserTokens = loginTokenRedisTemplate.opsForValue().get(userIdKey); Set<String> theUserTokens = loginTokenRedisTemplate.opsForValue().get(userIdKey);
if (theUserTokens == null) { if (theUserTokens == null) {
HashSet<String> tempUserTokens = new HashSet<>(); HashSet<String> tempUserTokens = new HashSet<>();
@ -82,7 +82,7 @@ public class RedisSessionManager implements SessionManagerApi {
// 删除用户id对应token的缓存 // 删除用户id对应token的缓存
if (loginUser != null) { if (loginUser != null) {
Long userId = loginUser.getId(); Long userId = loginUser.getUserId();
Set<String> userTokens = loginTokenRedisTemplate.opsForValue().get(getUserIdKey(userId)); Set<String> userTokens = loginTokenRedisTemplate.opsForValue().get(getUserIdKey(userId));
if (userTokens != null) { if (userTokens != null) {
userTokens.remove(token); userTokens.remove(token);
@ -110,7 +110,7 @@ public class RedisSessionManager implements SessionManagerApi {
} }
// 获取用户id // 获取用户id
Long userId = session.getId(); Long userId = session.getUserId();
// 设置用户id对应的token列表为参数token // 设置用户id对应的token列表为参数token
HashSet<String> tokenSet = new HashSet<>(); HashSet<String> tokenSet = new HashSet<>();

View File

@ -1,8 +1,8 @@
package cn.stylefeng.roses.kernel.db.mp.fieldfill; 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.auth.api.context.LoginContext;
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject; import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.reflection.ReflectionException; import org.apache.ibatis.reflection.ReflectionException;
@ -64,7 +64,7 @@ public class CustomMetaObjectHandler implements MetaObjectHandler {
private Long getUserUniqueId() { private Long getUserUniqueId() {
try { try {
return LoginContext.me().getLoginUser().getId(); return LoginContext.me().getLoginUser().getUserId();
} catch (Exception e) { } catch (Exception e) {
//如果获取不到就返回-1 //如果获取不到就返回-1
return -1L; return -1L;

View File

@ -29,7 +29,7 @@ public class AuthedLogAppender {
// 填充登录用户的userId // 填充登录用户的userId
LoginUser loginUser = LoginContext.me().getLoginUser(); LoginUser loginUser = LoginContext.me().getLoginUser();
logRecordDTO.setUserId(loginUser.getId()); logRecordDTO.setUserId(loginUser.getUserId());
} catch (Exception ignored) { } catch (Exception ignored) {
// 获取不到用户登录信息,就不填充 // 获取不到用户登录信息,就不填充
} }

View File

@ -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", "当前用户未分配菜单");
/** /**
* *

View File

@ -22,37 +22,36 @@ public class SysAppRequest extends BaseRequest {
/** /**
* *
*/ */
@NotNull(message = "id不能为空请检查id参数", groups = {edit.class, delete.class, detail.class}) @NotNull(message = "appId不能为空", groups = {edit.class, delete.class, detail.class})
private Long id; private Long appId;
/** /**
* *
*/ */
@NotBlank(message = "名称不能为空请检查name参数", groups = {add.class, edit.class}) @NotBlank(message = "名称不能为空", groups = {add.class, edit.class})
@TableUniqueValue( @TableUniqueValue(
message = "名称存在重复请检查name参数", message = "名称存在重复",
groups = {add.class, edit.class}, groups = {add.class, edit.class},
tableName = "sys_app", tableName = "sys_app",
columnName = "name") columnName = "app_name")
private String name; private String appName;
/** /**
* *
*/ */
@NotBlank(message = "编码不能为空请检查code参数", groups = {add.class, edit.class}) @NotBlank(message = "编码不能为空", groups = {add.class, edit.class})
@TableUniqueValue( @TableUniqueValue(
message = "编码存在重复请检查code参数", message = "编码存在重复",
groups = {add.class, edit.class}, groups = {add.class, edit.class},
tableName = "sys_app", tableName = "sys_app",
columnName = "code") columnName = "app_code")
private String code; private String appCode;
/** /**
* Y-N-, * Y-N-
*
*/ */
@NotBlank(message = "是否默认激活不能为空请检查active参数", groups = {add.class, edit.class}) @NotBlank(message = "是否默认激活不能为空", groups = {add.class, edit.class})
@FlagValue(message = "是否默认激活格式错误正确格式应该Y或者N请检查active参数", groups = {add.class, edit.class}) @FlagValue(message = "是否默认激活格式错误正确格式应该Y或者N", groups = {add.class, edit.class})
private String activeFlag; private String activeFlag;
} }

View File

@ -17,17 +17,17 @@ public class SysAppResponse implements Serializable {
/** /**
* id * id
*/ */
private Long id; private Long appId;
/** /**
* *
*/ */
private String name; private String appName;
/** /**
* *
*/ */
private String code; private String appCode;
/** /**
* Y-N- * Y-N-

View File

@ -1,9 +1,9 @@
package cn.stylefeng.roses.kernel.app.modular.entity; 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.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -21,35 +21,35 @@ public class SysApp extends BaseEntity {
/** /**
* id * id
*/ */
@TableId("id") @TableId("app_id")
private Long id; private Long appId;
/** /**
* *
*/ */
@TableField("name") @TableField("app_name")
private String name; private String appName;
/** /**
* *
*/ */
@TableField("code") @TableField("app_code")
private String code; private String appCode;
/** /**
* Y-N- * Y-N-
*/ */
@TableField("active_flag") @TableField("active_flag")
private String activeFlag; private String activeFlag;
/** /**
* 1 2 * 1-2-
*/ */
@TableField("status_flag") @TableField("status_flag")
private Integer statusFlag; private Integer statusFlag;
/** /**
* Y-N- * Y-N-
*/ */
@TableField("del_flag") @TableField("del_flag")
private String delFlag; private String delFlag;

View File

@ -3,10 +3,6 @@ package cn.stylefeng.roses.kernel.app.modular.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.roses.kernel.app.modular.entity.SysApp; 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.mapper.SysAppMapper;
import cn.stylefeng.roses.kernel.app.modular.service.SysAppService; import cn.stylefeng.roses.kernel.app.modular.service.SysAppService;
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; 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.MenuServiceApi;
import cn.stylefeng.roses.kernel.system.exception.enums.AppExceptionEnum; import cn.stylefeng.roses.kernel.system.exception.enums.AppExceptionEnum;
import cn.stylefeng.roses.kernel.system.pojo.app.request.SysAppRequest; 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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -73,7 +73,7 @@ public class SysAppServiceImpl extends ServiceImpl<SysAppMapper, SysApp> impleme
@Override @Override
public void delete(SysAppRequest sysAppRequest) { public void delete(SysAppRequest sysAppRequest) {
SysApp sysApp = this.querySysApp(sysAppRequest); SysApp sysApp = this.querySysApp(sysAppRequest);
String code = sysApp.getCode(); String code = sysApp.getAppCode();
// 该应用下有菜单,则不能删除 // 该应用下有菜单,则不能删除
boolean hasMenu = menuApi.hasMenu(code); boolean hasMenu = menuApi.hasMenu(code);
@ -126,15 +126,15 @@ public class SysAppServiceImpl extends ServiceImpl<SysAppMapper, SysApp> impleme
HashSet<SimpleDict> simpleDicts = new HashSet<>(); HashSet<SimpleDict> simpleDicts = new HashSet<>();
LambdaQueryWrapper<SysApp> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysApp> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(SysApp::getCode, appCodes); queryWrapper.in(SysApp::getAppCode, appCodes);
queryWrapper.select(SysApp::getCode, SysApp::getId, SysApp::getName); queryWrapper.select(SysApp::getAppCode, SysApp::getAppId, SysApp::getAppName);
List<SysApp> list = this.list(queryWrapper); List<SysApp> list = this.list(queryWrapper);
for (SysApp sysApp : list) { for (SysApp sysApp : list) {
SimpleDict simpleDict = new SimpleDict(); SimpleDict simpleDict = new SimpleDict();
simpleDict.setId(sysApp.getId()); simpleDict.setId(sysApp.getAppId());
simpleDict.setCode(sysApp.getCode()); simpleDict.setCode(sysApp.getAppCode());
simpleDict.setName(sysApp.getName()); simpleDict.setName(sysApp.getAppName());
simpleDicts.add(simpleDict); simpleDicts.add(simpleDict);
} }
@ -148,7 +148,7 @@ public class SysAppServiceImpl extends ServiceImpl<SysAppMapper, SysApp> impleme
* @date 2020/3/26 9:56 * @date 2020/3/26 9:56
*/ */
private SysApp querySysApp(SysAppRequest sysAppRequest) { private SysApp querySysApp(SysAppRequest sysAppRequest) {
SysApp sysApp = this.getById(sysAppRequest.getId()); SysApp sysApp = this.getById(sysAppRequest.getAppId());
if (ObjectUtil.isNull(sysApp)) { if (ObjectUtil.isNull(sysApp)) {
throw new ServiceException(AppExceptionEnum.APP_NOT_EXIST); throw new ServiceException(AppExceptionEnum.APP_NOT_EXIST);
} }
@ -170,7 +170,7 @@ public class SysAppServiceImpl extends ServiceImpl<SysAppMapper, SysApp> impleme
// 排除自己 // 排除自己
if (excludeSelf) { if (excludeSelf) {
appQueryWrapperByActive.ne(SysApp::getId, sysAppRequest.getId()); appQueryWrapperByActive.ne(SysApp::getAppId, sysAppRequest.getAppId());
} }
int countByActive = this.count(appQueryWrapperByActive); int countByActive = this.count(appQueryWrapperByActive);
@ -191,18 +191,18 @@ public class SysAppServiceImpl extends ServiceImpl<SysAppMapper, SysApp> impleme
LambdaQueryWrapper<SysApp> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysApp> queryWrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isNotNull(sysAppRequest)) { if (ObjectUtil.isNotNull(sysAppRequest)) {
// 根据id查询 // 根据id查询
if (ObjectUtil.isNotEmpty(sysAppRequest.getId())) { if (ObjectUtil.isNotEmpty(sysAppRequest.getAppId())) {
queryWrapper.eq(SysApp::getId, sysAppRequest.getId()); queryWrapper.eq(SysApp::getAppId, sysAppRequest.getAppId());
} }
// 根据名称模糊查询 // 根据名称模糊查询
if (ObjectUtil.isNotEmpty(sysAppRequest.getName())) { if (ObjectUtil.isNotEmpty(sysAppRequest.getAppName())) {
queryWrapper.like(SysApp::getName, sysAppRequest.getName()); queryWrapper.like(SysApp::getAppName, sysAppRequest.getAppName());
} }
// 根据编码模糊查询 // 根据编码模糊查询
if (ObjectUtil.isNotEmpty(sysAppRequest.getCode())) { if (ObjectUtil.isNotEmpty(sysAppRequest.getAppCode())) {
queryWrapper.like(SysApp::getCode, sysAppRequest.getCode()); queryWrapper.like(SysApp::getAppCode, sysAppRequest.getAppCode());
} }
} }

View File

@ -43,7 +43,9 @@ import cn.stylefeng.roses.kernel.system.MenuServiceApi;
import cn.stylefeng.roses.kernel.system.RoleServiceApi; import cn.stylefeng.roses.kernel.system.RoleServiceApi;
import cn.stylefeng.roses.kernel.system.constants.SymbolConstant; import cn.stylefeng.roses.kernel.system.constants.SymbolConstant;
import cn.stylefeng.roses.kernel.system.constants.SystemConstants; 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.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.SysMenuRequest;
import cn.stylefeng.roses.kernel.system.pojo.menu.tree.LoginMenuTreeNode; import cn.stylefeng.roses.kernel.system.pojo.menu.tree.LoginMenuTreeNode;
import cn.stylefeng.roses.kernel.system.pojo.menu.tree.MenuBaseTreeNode; 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(); List<Long> menuIdList = getCurrentUserMenuIds();
// 当前用户没有菜单
if (menuIdList.isEmpty()) {
throw new SystemModularException(SysUserExceptionEnum.USER_NOT_HAVE_MENUS);
}
// 获取菜单列表 // 获取菜单列表
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(SysMenu::getMenuId, menuIdList) queryWrapper.in(SysMenu::getMenuId, menuIdList)