类 ModuleController
java.lang.Object
net.sohelp.boot.admin.core.base.BaseController
net.sohelp.boot.dev.web.dev.module.ModuleController
@RestController("dev-module")
@RequestMapping("/dev/module")
public class ModuleController
extends BaseController
模块管理
- 从以下版本开始:
- 2025/11/07
- 作者:
- AaronFung
-
字段概要
从类继承的字段 net.sohelp.boot.admin.core.base.BaseController
request, response -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明添加模块接口 该接口用于添加一个新的模块,需要传入模块的名称、所属应用以及相关参数。通过菜单添加应用 该接口用于通过菜单来添加一个新的应用,如果应用已存在则进行更新操作复制模块接口 该接口用于将一个模块从源应用复制到目标应用,并重新命名ApiResult<com.alibaba.fastjson.JSONObject> 获取应用模块的详细信息 根据传入的应用名称和模块名称,查询并返回对应的模块详细信息,包括应用名称、模块名称及关联菜单。exportModule(String appName, String moduleName) 导出模块接口 根据提供的应用名称和模块名称,导出对应的模块并返回下载结果importModule(String appName, String moduleName, org.springframework.web.multipart.MultipartFile file) 导入模块接口 该接口用于将指定应用名称、模块名称和文件上传到服务器,并进行模块的安装操作。获取模块列表接口 根据提供的参数获取符合条件的模块列表,支持按名称、排序方式、顺序以及应用名称进行筛选。listMenuByApp(String uuid, int deviceType) 根据应用UUID列出菜单 该接口用于根据传入的应用UUID和设备类型,查询并返回符合条件的菜单列表,不包括按钮权限的菜单项。移动模块接口 该接口用于将指定应用的模块移动到新的应用下发布模块接口 该接口用于将指定应用下的模块进行发布操作publishI18n(Map<String, Object> dataMap) 发布国际化资源 该接口用于发布应用的国际化资源,需要传入应用名称和模块名称refresh()刷新模块缓存接口 该接口用于刷新模块缓存,并返回刷新成功的信息。删除指定应用及模块 通过接收包含应用名和模块名的参数Map,删除对应的应用及模块资源重命名模块文件 该接口用于重命名指定应用下的模块文件,需要传入应用名称、模块名称以及新的文件名。保存模块信息 该接口用于保存或更新模块信息,包括模块名称、应用名称、描述和版本。模块另存为接口 该接口用于将指定应用的指定模块另存为新模块updateMenuSort(List<Map<String, Object>> dataList) 更新菜单排序从类继承的方法 net.sohelp.boot.admin.core.base.BaseController
error, error, fail, fail, fail, getLoginID, getLoginName, getLoginOrgID, getLoginOrgName, getLoginUser, getNickname, getTenantId, getUserName, getUserNo, i18n, i18n, isAdministrator, isDeveloper, limit, offset, ok, ok, response, response, responseStream, success, success, success, success, validateToken
-
构造器详细资料
-
ModuleController
public ModuleController()
-
-
方法详细资料
-
remove
@PostMapping("/remove") @Transactional(rollbackFor=java.lang.Exception.class) @Permission("DEVELOPER") public ApiResult<String> remove(@RequestBody Map<String, Object> paramMap) throws Exception删除指定应用及模块 通过接收包含应用名和模块名的参数Map,删除对应的应用及模块资源- 参数:
paramMap- 包含应用名(appName)和模块名(moduleName)的Map对象- 返回:
- 返回操作结果的ApiResult对象,包含成功或失败的信息
- 抛出:
Exception- 如果参数不符合要求或操作失败,将抛出Exception异常
-
detail
@GetMapping("/detail") @Permission("DEVELOPER") public ApiResult<com.alibaba.fastjson.JSONObject> detail(@RequestParam String appName, @RequestParam String moduleName) throws BusiException, SQLException 获取应用模块的详细信息 根据传入的应用名称和模块名称,查询并返回对应的模块详细信息,包括应用名称、模块名称及关联菜单。- 参数:
appName- 应用名称,不可为空moduleName- 模块名称,不可为空- 返回:
- 返回ApiResult对象,其中包含模块详细信息的JSONObject
- 抛出:
RuntimeException- 如果appName或moduleName为空,则抛出异常并返回失败信息BusiExceptionSQLException
-
updateMenuSort
@PostMapping("/updateMenuSort") @Transactional(rollbackFor=java.lang.Exception.class) @Permission("DEVELOPER") public ApiResult<String> updateMenuSort(@RequestBody List<Map<String, Object>> dataList) 更新菜单排序遍历传入的菜单数据列表,对每个有效菜单项执行排序更新操作。 仅处理id大于0的菜单项,将其排序值更新为dataList中指定的值。
- 参数:
dataList- 包含菜单ID和排序值的列表,每个元素是一个Map, 需要包含"id"(Long)和"sort"(Object)两个键- 返回:
- 包含操作结果的ApiResult对象,成功时返回"更新菜单排序成功"
-
addByMenu
@PostMapping("/addByMenu") @Transactional(rollbackFor=java.lang.Exception.class) @Permission("DEVELOPER") public ApiResult<Map<String,Object>> addByMenu(@RequestBody Map<String, Object> paramMap) throws Exception通过菜单添加应用 该接口用于通过菜单来添加一个新的应用,如果应用已存在则进行更新操作- 参数:
paramMap- 包含添加或更新应用所需参数的Map对象 - appName: 应用名称(必填) - title: 菜单名称(必填) - id: 菜单ID(更新时必填) - menu_type: 菜单类型(可选,"3"表示新添加菜单创建模块)- 返回:
- 操作结果的ApiResult对象,包含成功或失败的信息
- 抛出:
Exception- 如果应用名称为空或菜单名称为空,则抛出异常
-
add
@PostMapping("/add") @Transactional(rollbackFor=java.lang.Exception.class) @Permission("DEVELOPER") public ApiResult<ModuleVO> add(@RequestBody Map<String, Object> paramMap) throws SQLException, BusiException, EntityException添加模块接口 该接口用于添加一个新的模块,需要传入模块的名称、所属应用以及相关参数。- 参数:
paramMap- 请求参数,包含以下字段:
name: 模块名称,不能为空
appName: 所属应用名称,不能为空
其他相关参数- 返回:
- 返回ApiResult对象,其中包含ModuleVO对象表示添加的模块信息
- 抛出:
SQLException- 如果数据库操作出现异常则抛出该异常BusiException- 如果业务逻辑出现错误(如参数校验失败)则抛出该异常EntityException
-
refresh
@GetMapping("/refresh") @Permission("DEVELOPER") public ApiResult<String> refresh() throws Exception刷新模块缓存接口 该接口用于刷新模块缓存,并返回刷新成功的信息。- 返回:
- ApiResult
包含刷新成功信息的ApiResult对象 - 抛出:
Exception- 在刷新缓存过程中发生异常时抛出
-
publish
@PostMapping("/publish") @Permission("DEVELOPER") @Transactional(rollbackFor=java.lang.Exception.class) public ApiResult<String> publish(@RequestBody Map<String, Object> dataMap) throws Exception发布模块接口 该接口用于将指定应用下的模块进行发布操作- 参数:
dataMap- 包含发布模块所需的数据,包括appName和moduleName - appName: 应用名称,不能为空 - moduleName: 模块名称,不能为空- 返回:
- 返回ApiResult对象,包含操作结果信息
- 抛出:
Exception- 如果应用名称或模块名称为空,或者发布过程中出现异常,则抛出Exception异常
-
publishI18n
@PostMapping("/publishI18n") @Permission("DEVELOPER") @Transactional(rollbackFor=java.lang.Exception.class) public ApiResult<String> publishI18n(@RequestBody Map<String, Object> dataMap) throws Exception发布国际化资源 该接口用于发布应用的国际化资源,需要传入应用名称和模块名称- 参数:
dataMap- 包含发布国际化资源所需的数据,其中必须包含appName和moduleName - appName: 应用名称,不能为空 - moduleName: 模块名称,不能为空- 返回:
- 返回操作结果的ApiResult对象,成功则返回"模块的国际化发布成功!"
- 抛出:
Exception- 如果操作过程中出现任何异常,将抛出Exception
-
save
@PostMapping("/save") @Transactional(rollbackFor=java.lang.Exception.class) @Permission("DEVELOPER") public ApiResult<String> save(@RequestBody Map<String, Object> paramMap) throws Exception保存模块信息 该接口用于保存或更新模块信息,包括模块名称、应用名称、描述和版本。- 参数:
paramMap- 包含模块信息的Map对象,其中包括以下字段: - moduleName: 模块名称(必填) - appName: 应用名称(必填) - description: 模块描述(可选) - version: 模块版本(可选)- 返回:
- 返回操作结果的ApiResult对象,成功时返回"保存成功!"的消息
- 抛出:
Exception- 如果操作过程中出现任何异常,将抛出Exception异常
-
listMenuByApp
@GetMapping("/listMenuByApp") @Permission("DEVELOPER") public ApiResult<List<Map<String,Object>>> listMenuByApp(@RequestParam String uuid, @RequestParam(required=false,defaultValue="0") int deviceType) throws SQLException 根据应用UUID列出菜单 该接口用于根据传入的应用UUID和设备类型,查询并返回符合条件的菜单列表,不包括按钮权限的菜单项。- 参数:
uuid- 应用UUID,用于指定查询哪个应用的菜单deviceType- 设备类型,用于指定查询哪种设备类型的菜单,默认为0- 返回:
- 返回包含菜单列表的ApiResult对象
- 抛出:
SQLException- 如果数据库查询过程中发生错误,则抛出SQLException异常
-
list
@GetMapping("/list") @Permission("DEVELOPER") public ApiResult<List<com.alibaba.fastjson.JSONObject>> list(@RequestParam(required=false) String name, @RequestParam(required=false) String sort, @RequestParam(required=false) String order, @RequestParam(required=false) String appName) throws Exception 获取模块列表接口 根据提供的参数获取符合条件的模块列表,支持按名称、排序方式、顺序以及应用名称进行筛选。- 参数:
name- 模块名称,用于模糊查询模块名称,非必填sort- 排序字段,如未提供则默认按"createDate"排序,非必填order- 排序方式,"asc"表示升序,"desc"表示降序,如未提供则默认"desc",非必填appName- 应用名称,用于指定查询哪个应用的模块,必填- 返回:
- 返回包含模块列表的ApiResult对象
- 抛出:
Exception- 如果appName为空,则抛出异常
-
copy
@PostMapping("/copy") @Permission("DEVELOPER") @Transactional(rollbackFor=java.lang.Exception.class) public ApiResult<String> copy(@RequestBody Map<String, Object> paramMap) throws Exception复制模块接口 该接口用于将一个模块从源应用复制到目标应用,并重新命名- 参数:
paramMap- 包含复制模块所需参数的Map - moduleName: 源模块名称,不能为空 - appName: 源应用名称,不能为空 - newModuleName: 新模块名称,不能为空 - newAppName: 新应用名称,不能为空- 返回:
- 返回操作结果的ApiResult对象,包含成功或失败的信息
- 抛出:
Exception- 如果任何参数为空,或复制过程中出现异常,则抛出Exception异常
-
move
@PostMapping("/move") @Transactional(rollbackFor=java.lang.Exception.class) @Permission("DEVELOPER") public ApiResult<String> move(@RequestBody Map<String, Object> paramMap) throws Exception移动模块接口 该接口用于将指定应用的模块移动到新的应用下- 参数:
paramMap- 包含移动模块所需参数的Map - moduleName: 模块名称,不能为空 - appName: 应用模块名称,不能为空 - newAppName: 新应用名称,不能为空- 返回:
- ApiResult
返回操作结果的ApiResult对象 - 成功时返回"模块移动成功!" - 失败时返回相应的错误信息 - 抛出:
Exception- 如果参数校验不通过或移动过程中发生异常,则抛出Exception
-
saveAs
@PostMapping("/saveAs") @Permission("DEVELOPER") public ApiResult<String> saveAs(@RequestBody Map<String, Object> paramMap) throws Exception模块另存为接口 该接口用于将指定应用的指定模块另存为新模块- 参数:
paramMap- 包含请求参数的Map,包括appName、moduleName和newName - appName: 应用名称,不能为空 - moduleName: 模块名称,不能为空 - newName: 新模块名称,不能为空- 返回:
- 返回操作结果的ApiResult对象,包含操作成功或失败的信息
- 抛出:
Exception- 如果操作过程中出现任何异常,将抛出Exception异常
-
rename
@PostMapping("/rename") @Transactional(rollbackFor=java.lang.Exception.class) @Permission("DEVELOPER") public ApiResult<String> rename(@RequestBody Map<String, Object> paramMap) throws Exception重命名模块文件 该接口用于重命名指定应用下的模块文件,需要传入应用名称、模块名称以及新的文件名。- 参数:
paramMap- 包含重命名所需参数的Map - appName: 应用名称,不能为空 - moduleName: 模块名称,不能为空 - newName: 新的文件名,不能为空且不能含有特殊字符- 返回:
- 返回操作结果的ApiResult对象,成功时包含"文件重命名成功!"的消息,失败时包含相应的错误信息
- 抛出:
Exception- 如果参数校验不通过或重命名操作失败,则抛出Exception异常
-
exportModule
@GetMapping("/exportModule") @Permission("DEVELOPER") public Object exportModule(@RequestParam String appName, @RequestParam String moduleName) throws Exception 导出模块接口 根据提供的应用名称和模块名称,导出对应的模块并返回下载结果- 参数:
appName- 应用名称,不能为空moduleName- 模块名称,不能为空- 返回:
- 导出操作的结果,成功时返回null,失败时返回错误信息
- 抛出:
Exception- 如果应用名称或模块名称为空,或者导出过程中发生异常,则抛出Exception
-
importModule
@PostMapping("/importModule") @Transactional(rollbackFor=java.lang.Exception.class) @Permission("DEVELOPER") public ApiResult<String> importModule(@RequestParam String appName, @RequestParam String moduleName, @RequestParam org.springframework.web.multipart.MultipartFile file) throws Exception 导入模块接口 该接口用于将指定应用名称、模块名称和文件上传到服务器,并进行模块的安装操作。- 参数:
appName- 应用名称,不能为空moduleName- 模块名称,不能为空file- 要上传的文件,不能为空- 返回:
- 返回操作结果的ApiResult对象,包含成功或失败的信息
- 抛出:
Exception- 如果发生异常,如文件操作失败或解析错误等,将抛出Exception异常
-