This commit is contained in:
caozehui
2024-11-19 16:30:57 +08:00
parent c104834ea1
commit 4c2c4d4ede
10 changed files with 104 additions and 60 deletions

View File

@@ -79,4 +79,6 @@ public interface DeviceValidMessage {
String STANDARD_NAME_NOT_BLANK = "参照标准名称不能为空请检查standardName参数"; String STANDARD_NAME_NOT_BLANK = "参照标准名称不能为空请检查standardName参数";
String STANDARD_TIME_NOT_BLANK = "标准推行时间不能为空请检查standardTime参数"; String STANDARD_TIME_NOT_BLANK = "标准推行时间不能为空请检查standardTime参数";
String SCRIPT_TYPE_FORMAT_ERROR = "检测脚本类型格式错误请检查scriptType参数";
} }

View File

@@ -2,6 +2,7 @@
系统模块主要包含以下功能: 系统模块主要包含以下功能:
* 审计日志管理 * 审计日志管理
* 字典、树形字典管理 * 字典、树形字典管理
* 版本注册
* 主题管理 * 主题管理
* 系统文件资源管理 * 系统文件资源管理
* 定时任务管理 * 定时任务管理

View File

@@ -10,6 +10,7 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.JwtUtil; import com.njcn.common.utils.JwtUtil;
import com.njcn.common.utils.LogUtil; import com.njcn.common.utils.LogUtil;
import com.njcn.gather.system.auth.pojo.Token; import com.njcn.gather.system.auth.pojo.Token;
import com.njcn.gather.system.pojo.constant.SystemValidMessage;
import com.njcn.gather.user.pojo.constant.UserValidMessage; import com.njcn.gather.user.pojo.constant.UserValidMessage;
import com.njcn.gather.user.user.pojo.param.SysUserParam; import com.njcn.gather.user.user.pojo.param.SysUserParam;
import com.njcn.gather.user.user.pojo.po.SysUser; import com.njcn.gather.user.user.pojo.po.SysUser;
@@ -27,6 +28,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
@Slf4j @Slf4j
@@ -66,11 +69,14 @@ public class AuthController extends BaseController {
LogUtil.njcnDebug(log, "{},登录参数为:{}", methodDescribe, param); LogUtil.njcnDebug(log, "{},登录参数为:{}", methodDescribe, param);
SysUser user = sysUserService.getUserByLoginNameAndPassword(param.getUsername(), param.getPassword()); SysUser user = sysUserService.getUserByLoginNameAndPassword(param.getUsername(), param.getPassword());
if (user == null) { if (user == null) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, UserValidMessage.LOGIN_FAILED, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL,null, UserValidMessage.LOGIN_FAILED);
} else { } else {
String tokenStr = JwtUtil.generateToken(user.getId()); String tokenStr = JwtUtil.generateToken(user.getId());
Token token = new Token(); Token token = new Token();
token.setAccessToken(tokenStr); token.setAccessToken(tokenStr);
Map<String, Object> map = new HashMap<>();
map.put("name", user.getName());
token.setUserInfo(map);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, token, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, token, methodDescribe);
} }
} }
@@ -85,8 +91,8 @@ public class AuthController extends BaseController {
if (StrUtil.isNotBlank(authorization)) { if (StrUtil.isNotBlank(authorization)) {
String token = authorization.replace(SecurityConstants.AUTHORIZATION_PREFIX, Strings.EMPTY); String token = authorization.replace(SecurityConstants.AUTHORIZATION_PREFIX, Strings.EMPTY);
JwtUtil.invalidateToken(token); JwtUtil.invalidateToken(token);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
} }
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
} }
} }

View File

@@ -2,9 +2,13 @@ package com.njcn.gather.system.auth.pojo;
import lombok.Data; import lombok.Data;
import java.util.Map;
@Data @Data
public class Token { public class Token {
private String accessToken; private String accessToken;
private Map<String, Object> userInfo;
} }

View File

@@ -82,4 +82,10 @@ public interface SystemValidMessage {
String DATA_RULE_NOT_BLANK = "数据处理规则不能为空请检查dataRule参数"; String DATA_RULE_NOT_BLANK = "数据处理规则不能为空请检查dataRule参数";
String DATA_RULE_FORMAT_ERROR = "数据处理规则格式错误请检查dataRule参数"; String DATA_RULE_FORMAT_ERROR = "数据处理规则格式错误请检查dataRule参数";
String TYPE_NOT_BLANK = "版本类型不能为空请检查type参数";
String AUTO_GENERATE_FORMAT_ERROR = "是否自动生成格式错误请检查autoGenerate参数";
String TOKEN_VALID_ERROR = "token校验失败请重新登录";
} }

View File

@@ -1,14 +1,18 @@
package com.njcn.gather.user.user.controller; package com.njcn.gather.user.user.controller;
import cn.hutool.core.util.StrUtil;
import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType; import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.constant.SecurityConstants;
import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.JwtUtil;
import com.njcn.common.utils.LogUtil; import com.njcn.common.utils.LogUtil;
import com.njcn.gather.user.user.pojo.param.SysFunctionParam; import com.njcn.gather.user.user.pojo.param.SysFunctionParam;
import com.njcn.gather.user.user.pojo.param.SysRoleParam; import com.njcn.gather.user.user.pojo.param.SysRoleParam;
import com.njcn.gather.user.user.pojo.po.SysFunction; import com.njcn.gather.user.user.pojo.po.SysFunction;
import com.njcn.gather.user.user.pojo.vo.ButtonVO;
import com.njcn.gather.user.user.service.ISysFunctionService; import com.njcn.gather.user.user.service.ISysFunctionService;
import com.njcn.gather.user.user.service.ISysRoleFunctionService; import com.njcn.gather.user.user.service.ISysRoleFunctionService;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
@@ -18,9 +22,11 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Strings;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
@@ -125,14 +131,35 @@ public class SysFunctionController extends BaseController {
// } // }
// @OperateInfo(info = LogEnum.SYSTEM_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
// @GetMapping("/getRouteMenu") @GetMapping("/getMenu")
// @ApiOperation("路由菜单") @ApiOperation("获取菜单")
// public HttpResult<List<SysFunction>> getRouteMenu() { public HttpResult<List<SysFunction>> getMenu(HttpServletRequest request) {
// String methodDescribe = getMethodDescribe("getRouteMenu"); String methodDescribe = getMethodDescribe("getMenu");
// List<SysFunction> list = sysFunctionService.getRouteMenu(); String tokenStr = request.getHeader(SecurityConstants.AUTHORIZATION_KEY);
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); if (StrUtil.isNotBlank(tokenStr)) {
// } tokenStr.replace(SecurityConstants.AUTHORIZATION_PREFIX, Strings.EMPTY);
String userId = (String) JwtUtil.parseToken(tokenStr).get("userId");
List<SysFunction> list = sysFunctionService.getMenuByUserId(userId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getButton")
@ApiOperation("获取按钮")
public HttpResult<ButtonVO> getButton(HttpServletRequest request) {
String methodDescribe = getMethodDescribe("getButton");
// String tokenStr = request.getHeader(SecurityConstants.AUTHORIZATION_KEY);
// if (StrUtil.isNotBlank(tokenStr)) {
// tokenStr.replace(SecurityConstants.AUTHORIZATION_PREFIX, Strings.EMPTY);
// String userId = (String) JwtUtil.parseToken(tokenStr).get("userId");
// ButtonVO buttonVO = sysFunctionService.getButtonByUserId(userId);
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, buttonVO, methodDescribe);
// }
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON) @OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/getFunctionsByRoleId") @PostMapping("/getFunctionsByRoleId")
@ApiOperation("获取角色id绑定的菜单资源") @ApiOperation("获取角色id绑定的菜单资源")
@@ -154,14 +181,5 @@ public class SysFunctionController extends BaseController {
boolean result = sysRoleFunctionService.updateRoleFunction(param.getRoleId(), param.getFunctionIds()); boolean result = sysRoleFunctionService.updateRoleFunction(param.getRoleId(), param.getFunctionIds());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
// @OperateInfo(info = LogEnum.SYSTEM_COMMON)
// @GetMapping("/userFunctionTree")
// @ApiOperation("用户菜单树")
// public HttpResult<List<SysFunction>> getUserFunctionTree() {
// String methodDescribe = getMethodDescribe("getUserFunctionTree");
// List<SysFunction> list = sysFunctionService.getUserFunctionTree();
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
// }
} }

View File

@@ -2,6 +2,9 @@ package com.njcn.gather.user.user.mapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import com.njcn.gather.user.user.pojo.po.SysFunction; import com.njcn.gather.user.user.pojo.po.SysFunction;
import com.njcn.gather.user.user.pojo.vo.MenuVO;
import java.util.List;
/** /**
* @author caozehui * @author caozehui
@@ -9,5 +12,11 @@ import com.njcn.gather.user.user.pojo.po.SysFunction;
*/ */
public interface SysFunctionMapper extends MPJBaseMapper<SysFunction> { public interface SysFunctionMapper extends MPJBaseMapper<SysFunction> {
/**
* 根据用户id获取菜单列表
* @param userId 用户id
* @return 菜单列表
*/
List<MenuVO> getMenuByUserId(String userId);
} }

View File

@@ -3,5 +3,20 @@
<mapper namespace="com.njcn.gather.user.user.mapper.SysFunctionMapper"> <mapper namespace="com.njcn.gather.user.user.mapper.SysFunctionMapper">
<select id="getMenuByUserId" resultType="com.njcn.gather.user.user.pojo.vo.MenuVO">
SELECT a.id as id,
a.path as path,
a.name as name,
if(a.pId!= '0', a.component, '') as component,
if(a.pId = '0', a.component, '') as redirect,
a.icon as icon,
a.pId as pId,
a.sort as sort
FROM sys_function a
inner join sys_role_function b on a.id = b.Function_Id
inner join sys_user_role c on b.Role_Id = c.Role_Id
WHERE c.User_Id = #{userId}
AND a.type in (0, 1)
</select>
</mapper> </mapper>

View File

@@ -3,6 +3,7 @@ package com.njcn.gather.user.user.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.gather.user.user.pojo.param.SysFunctionParam; import com.njcn.gather.user.user.pojo.param.SysFunctionParam;
import com.njcn.gather.user.user.pojo.po.SysFunction; import com.njcn.gather.user.user.pojo.po.SysFunction;
import com.njcn.gather.user.user.pojo.vo.ButtonVO;
import java.util.List; import java.util.List;
@@ -68,16 +69,12 @@ public interface ISysFunctionService extends IService<SysFunction> {
//List<SysFunction> getButtonsById(String id); //List<SysFunction> getButtonsById(String id);
/** /**
* 获取路由菜单 * 根据用户id获取菜单
* *
* @return 路由菜单 * @return 路由菜单
*/ */
List<SysFunction> getRouteMenu(); List<SysFunction> getMenuByUserId(String userId);
//ButtonVO getButtonByUserId(String userId);
/**
* 获取用户拥有的资源树
*
* @return
*/
//List<SysFunction> getUserFunctionTree();
} }

View File

@@ -11,6 +11,8 @@ import com.njcn.gather.user.pojo.enums.UserResponseEnum;
import com.njcn.gather.user.user.mapper.SysFunctionMapper; import com.njcn.gather.user.user.mapper.SysFunctionMapper;
import com.njcn.gather.user.user.pojo.param.SysFunctionParam; import com.njcn.gather.user.user.pojo.param.SysFunctionParam;
import com.njcn.gather.user.user.pojo.po.SysFunction; import com.njcn.gather.user.user.pojo.po.SysFunction;
import com.njcn.gather.user.user.pojo.vo.MenuVO;
import com.njcn.gather.user.user.pojo.vo.MetaVO;
import com.njcn.gather.user.user.service.ISysFunctionService; import com.njcn.gather.user.user.service.ISysFunctionService;
import com.njcn.gather.user.user.service.ISysRoleFunctionService; import com.njcn.gather.user.user.service.ISysRoleFunctionService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -130,44 +132,27 @@ public class SysFunctionServiceImpl extends ServiceImpl<SysFunctionMapper, SysFu
// } // }
@Override @Override
public List<SysFunction> getRouteMenu() { public List<SysFunction> getMenuByUserId(String userId) {
// List<SysFunction> result = new ArrayList<>(); List<MenuVO> menu = this.baseMapper.getMenuByUserId(userId);
// List<String> functionIds; menu.stream().forEach(m -> {
// if (Objects.equals(RequestUtil.getUsername(), UserType.SUPER_ADMIN)) { MetaVO meta = new MetaVO();
// //查询所有菜单 meta.setIcon(m.getIcon());
// functionIds = this.lambdaQuery().eq(SysFunction::getState, DataStateEnum.ENABLE.getCode()).list().stream().map(SysFunction::getId).distinct().collect(Collectors.toList()); meta.setTitle(m.getName());
// } else { meta.setIsLink("");
// List<String> roleIdList = sysUserRoleService.listRoleByUserId(RequestUtil.getUserIndex()).stream().map(SysUserRole::getRoleId).distinct().collect(Collectors.toList()); meta.setHide(false);
// functionIds = sysRoleFunctionService.listRoleFunctionByRoleIds(roleIdList).stream().map(SysRoleFunction::getFunctionId).distinct().collect(Collectors.toList()); meta.setFull(false);
// } meta.setAffix(false);
// if (CollectionUtils.isEmpty(functionIds)) { meta.setKeepAlive(true);
// return result; m.setMeta(meta);
// } });
// List<SysFunction> functionList = this.lambdaQuery().eq(SysFunction::getState, DataStateEnum.ENABLE.getCode()) return menu.stream().filter(fun -> Objects.equals(FunctionConst.FATHER_PID, fun.getPid())).peek(funS -> funS.setChildren(getChildrenList(funS, menu))).sorted(Comparator.comparingInt(SysFunction::getSort)).collect(Collectors.toList());
// .in(SysFunction::getId, functionIds)
// .in(SysFunction::getType, FunctionConst.TYPE_MENU, FunctionConst.TYPE_BUTTON).list();
// result = functionList.stream()
// .filter(fun -> Objects.equals(FunctionConst.FATHER_PID, fun.getPid().trim()))
// .peek(funS -> funS.setChildren(getChildrenList(funS, functionList)))
// .sorted(Comparator.comparingInt(SysFunction::getSort))
// .collect(Collectors.toList());
// //组装驾驶舱
// setDriverChildren(result);
// 处理tab页
// setTab(result);
// return result;
return Collections.emptyList();
} }
// @Override
// public List<SysFunction> getUserFunctionTree() {
// return Collections.emptyList();
// }
/** /**
* 根据当前分类找出子类,递归找出子类的子类 * 根据当前分类找出子类,递归找出子类的子类
*/ */
private List<SysFunction> getChildrenList(SysFunction currMenu, List<SysFunction> categories) { private <T extends SysFunction> List<SysFunction> getChildrenList(T currMenu, List<? extends SysFunction> categories) {
return categories.stream().filter(o -> Objects.equals(o.getPid(), currMenu.getId())).peek(o -> o.setChildren(getChildrenList(o, categories))).sorted(Comparator.comparingInt(SysFunction::getSort)).collect(Collectors.toList()); return categories.stream().filter(o -> Objects.equals(o.getPid(), currMenu.getId())).peek(o -> o.setChildren(getChildrenList(o, categories))).sorted(Comparator.comparingInt(SysFunction::getSort)).collect(Collectors.toList());
} }
@@ -219,4 +204,5 @@ public class SysFunctionServiceImpl extends ServiceImpl<SysFunctionMapper, SysFu
} }
} }
} }
} }