类 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
  • 构造器详细资料

    • 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为空,则抛出异常并返回失败信息
      BusiException
      SQLException
    • 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异常