diff --git a/pom.xml b/pom.xml index 887820c..1b52234 100644 --- a/pom.xml +++ b/pom.xml @@ -200,6 +200,12 @@ ${ruoyi.version} + + org.springdoc + springdoc-openapi-starter-webmvc-ui + 2.1.0 + + com.github.xiaoymin diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 63aa423..332dfa8 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -1,7 +1,6 @@ + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> ruoyi com.ruoyi @@ -69,6 +68,18 @@ com.ruoyi ruoyi-online + + + + com.github.xiaoymin + knife4j-openapi3-jakarta-spring-boot-starter + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + + + diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 820067e..e90b605 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -142,8 +142,8 @@ - com.github.xiaoymin - knife4j-openapi3-jakarta-spring-boot-starter + org.springdoc + springdoc-openapi-starter-webmvc-ui diff --git a/ruoyi-online/src/main/java/com/ruoyi/online/config/SqlMapperConfiguration.java b/ruoyi-online/src/main/java/com/ruoyi/online/config/SqlMapperConfiguration.java deleted file mode 100644 index 2166b17..0000000 --- a/ruoyi-online/src/main/java/com/ruoyi/online/config/SqlMapperConfiguration.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.ruoyi.online.config; - -import org.apache.ibatis.session.SqlSession; -import org.apache.ibatis.session.SqlSessionFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import com.ruoyi.online.utils.SqlMapper; - -@Configuration -public class SqlMapperConfiguration { - @Autowired - private SqlSessionFactory sqlSessionFactory; - - @Bean - public SqlMapper getSqlMapper() { - SqlSession sqlSession = sqlSessionFactory.openSession(); - return new SqlMapper(sqlSession); - } -} diff --git a/ruoyi-online/src/main/java/com/ruoyi/online/controller/OnLineController.java b/ruoyi-online/src/main/java/com/ruoyi/online/controller/OnLineController.java index 390e39f..d0f12de 100644 --- a/ruoyi-online/src/main/java/com/ruoyi/online/controller/OnLineController.java +++ b/ruoyi-online/src/main/java/com/ruoyi/online/controller/OnLineController.java @@ -6,6 +6,8 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -35,15 +37,9 @@ public class OnLineController extends BaseController { private PermissionService permissionService; @Autowired - private SqlMapper sqlMapper; + private SqlSessionFactory sqlSessionFactory; - @RequestMapping("/api/**") - public Object api(@RequestParam(required = false) HashMap params, - @RequestBody(required = false) HashMap data, HttpServletRequest request, - HttpServletResponse response) { - OnlineMb selectOnlineMb = new OnlineMb(); - selectOnlineMb.setPath(request.getRequestURI().replace("/online/api", "")); - selectOnlineMb.setMethod(request.getMethod()); + public Map getParams(HashMap params, HashMap data) { Map object = new HashMap<>(); HashMap object_params = new HashMap(); String keyregex = "params\\[(.*?)\\]"; @@ -66,6 +62,47 @@ public class OnLineController extends BaseController { object.putAll(data); } object.put("params", object_params); + return data; + } + + public Boolean checkPermission(String permission) { + return switch (permission) { + case "hasPermi" -> permissionService.hasPermi(permission); + case "lacksPermi" -> !permissionService.lacksPermi(permission); + case "hasAnyPermi" -> permissionService.hasAnyPermi(permission); + case "hasRole" -> permissionService.hasRole(permission); + case "lacksRole" -> !permissionService.lacksRole(permission); + case "hasAnyRoles" -> permissionService.hasAnyRoles(permission); + default -> true; + }; + } + + public Object processingMapper(String sqlContext, String actuatot, Map params) { + String sql = ""; + SqlSession sqlSession = sqlSessionFactory.openSession(); + SqlMapper sqlMapper = new SqlMapper(sqlSession); + Object res = null; + res = switch (actuatot) { + case "selectList" -> getDataTable(sqlMapper.selectList(sql, params)); + case "insert" -> toAjax(sqlMapper.insert(sql, params)); + case "selectOne" -> success(sqlMapper.selectOne(sql, params)); + case "update" -> toAjax(sqlMapper.update(sql, params)); + case "delete" -> toAjax(sqlMapper.delete(sql, params)); + default -> AjaxResult.error(500, "系统错误,执行器错误"); + }; + sqlSession.close(); + return res; + } + + @RequestMapping("/api/**") + public Object api(@RequestParam(required = false) HashMap params, + @RequestBody(required = false) HashMap data, HttpServletRequest request, + HttpServletResponse response) { + OnlineMb selectOnlineMb = new OnlineMb(); + selectOnlineMb.setPath(request.getRequestURI().replace("/online/api", "")); + selectOnlineMb.setMethod(request.getMethod()); + + Map object = getParams(params, data); List selectOnlineMbList = onlineMbService.selectOnlineMbList(selectOnlineMb); if (selectOnlineMbList.size() == 0) { @@ -74,20 +111,9 @@ public class OnLineController extends BaseController { return AjaxResult.error(500, "系统错误,在线接口重复"); } else { OnlineMb onlineMb = selectOnlineMbList.get(0); - boolean permissionFlag = true; - if (onlineMb.getPermissionType() != null) { - switch (onlineMb.getPermissionType()) { - case "hasPermi" -> permissionFlag = permissionService.hasPermi(onlineMb.getPermissionValue()); - case "lacksPermi" -> permissionFlag = !permissionService.lacksPermi(onlineMb.getPermissionValue()); - case "hasAnyPermi" -> permissionFlag = permissionService.hasAnyPermi(onlineMb.getPermissionValue()); - case "hasRole" -> permissionFlag = permissionService.hasRole(onlineMb.getPermissionValue()); - case "lacksRole" -> permissionFlag = !permissionService.lacksRole(onlineMb.getPermissionValue()); - case "hasAnyRoles" -> permissionFlag = permissionService.hasAnyRoles(onlineMb.getPermissionValue()); - } - } - if (!permissionFlag) { + if (!checkPermission(onlineMb.getPermissionValue())) return AjaxResult.error(403, "没有权限,请联系管理员授权"); - } + if (onlineMb.getDeptId() != null && onlineMb.getDeptId().equals("1")) { object.put("deptId", SecurityUtils.getDeptId()); } @@ -95,15 +121,7 @@ public class OnLineController extends BaseController { object.put("userId", SecurityUtils.getUserId()); } - String sql = ""; - return switch (onlineMb.getActuator()) { - case "selectList" -> getDataTable(sqlMapper.selectList(sql, object)); - case "insert" -> toAjax(sqlMapper.insert(sql, object)); - case "selectOne" -> success(sqlMapper.selectOne(sql, object)); - case "update" -> toAjax(sqlMapper.update(sql, object)); - case "delete" -> toAjax(sqlMapper.delete(sql, object)); - default -> AjaxResult.error(500, "系统错误,执行器错误"); - }; + return processingMapper(onlineMb.getSql(), onlineMb.getActuator(), object); } } diff --git a/ruoyi-online/src/main/java/com/ruoyi/online/service/impl/OnlineMbServiceImpl.java b/ruoyi-online/src/main/java/com/ruoyi/online/service/impl/OnlineMbServiceImpl.java index 09460c1..5d839ea 100644 --- a/ruoyi-online/src/main/java/com/ruoyi/online/service/impl/OnlineMbServiceImpl.java +++ b/ruoyi-online/src/main/java/com/ruoyi/online/service/impl/OnlineMbServiceImpl.java @@ -1,10 +1,12 @@ package com.ruoyi.online.service.impl; import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.online.mapper.OnlineMbMapper; + import com.ruoyi.online.domain.OnlineMb; +import com.ruoyi.online.mapper.OnlineMbMapper; import com.ruoyi.online.service.IOnlineMbService; /**