package com.cloudroam.controller.v1; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.cloudroam.bo.meeting.MeetingBO; import com.cloudroam.bo.meeting.MeetingUserDaily; import com.cloudroam.bo.projectModule.ProjectModuleBO; import com.cloudroam.bo.projectModule.ProjectModuleTreeBO; import com.cloudroam.common.annotation.LogParams; import com.cloudroam.common.util.PageUtil; import com.cloudroam.dto.meeting.CreateMeetingDTO; import com.cloudroam.dto.meeting.MeetingPageDTO; import com.cloudroam.dto.meeting.UpdateMeetingDTO; import com.cloudroam.dto.projectInfo.QueryProjectInfoDTO; import com.cloudroam.dto.projectModule.CreateProjectModuleDTO; import com.cloudroam.dto.projectModule.ProjectModulePageDTO; import com.cloudroam.model.MeetingDO; import com.cloudroam.service.ProjectModuleService; import io.github.talelin.autoconfigure.exception.NotFoundException; import io.github.talelin.core.annotation.Logger; import io.github.talelin.core.annotation.LoginRequired; import io.github.talelin.core.annotation.PermissionMeta; import io.github.talelin.core.annotation.PermissionModule; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.cloudroam.model.ProjectModuleDO; import com.cloudroam.vo.CreatedVO; import com.cloudroam.vo.DeletedVO; import com.cloudroam.vo.PageResponseVO; import com.cloudroam.vo.UpdatedVO; import javax.validation.constraints.Min; import javax.validation.constraints.Max; import javax.validation.constraints.Positive; import java.util.List; /** * @author generator@TaoJie * @since 2024-08-16 */ @RestController @RequestMapping("/v1/project-module") @PermissionModule("项目模块管理") public class ProjectModuleController { @Autowired private ProjectModuleService projectModuleService; @PostMapping("") @PermissionMeta(value = "项目模块创建", mount =true) @Logger(template = "{user.nickname} 创建了项目模块 ") @LoginRequired @LogParams public CreatedVO create(@RequestBody @Validated CreateProjectModuleDTO validator) { projectModuleService.createProjectModule(validator); return new CreatedVO(); } @PutMapping("/{id}") @LoginRequired @PermissionMeta(value = "项目模块更新",mount = true) @Logger(template = "{user.nickname} 更新了项目模块") public UpdatedVO update(@PathVariable String id,@RequestBody @Validated CreateProjectModuleDTO validator) { if(StrUtil.isBlank(id)){ throw new NotFoundException("传入的Id不能为空"); } ProjectModuleDO moduleDO=projectModuleService.getById(id); if(moduleDO == null){ throw new NotFoundException("项目模块不存在"); } projectModuleService.updateProjectModule(validator); return new UpdatedVO(); } @DeleteMapping("/{id}") @LoginRequired @PermissionMeta(value = "项目模块删除",mount = false) @Logger(template = "{user.nickname} 项目模块删除 ") public DeletedVO delete(@PathVariable String id) { if(StrUtil.isBlank(id)){ throw new NotFoundException("传入的Id不能为空"); } ProjectModuleDO moduleDO=projectModuleService.getById(id); if(moduleDO == null){ throw new NotFoundException("项目模块不存在"); } projectModuleService.deleteProjectModuleById(id); return new DeletedVO(); } @GetMapping("/{id}") public ProjectModuleDO get(@PathVariable(value = "id") String id) { return projectModuleService.getById(id); } @GetMapping("/bo/{id}") public ProjectModuleTreeBO getProjectModuleTreeBO(@PathVariable(value = "id") String id) { return projectModuleService.getProjectModuleTreeBOById(id); } @GetMapping("/page") @PermissionMeta(value = "项目模块列表", module = "项目模块管理",mount = true) @Logger(template = "{user.nickname} 查看了项目模块列表") @LoginRequired public PageResponseVO page( @Validated QueryProjectInfoDTO dto ) { IPage iPage=projectModuleService.getProjectModulePage(dto); return PageUtil.build(iPage); } @GetMapping("/tree/list") @PermissionMeta(value = "提取项目模块信息" ,mount = false) @Logger(template = "{user.nickname} 提取取项目模块信息") @LoginRequired public List listTree(ProjectModulePageDTO dto ) { return projectModuleService.listTree(dto); } @GetMapping("/list") @PermissionMeta(value = "提取项目模块信息" ,mount = false) @Logger(template = "{user.nickname} 提取取项目模块信息") @LoginRequired public List list(ProjectModulePageDTO dto ) { return projectModuleService.list(dto); } }