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<ProjectModuleTreeBO> page(
|
@Validated QueryProjectInfoDTO dto
|
) {
|
IPage<ProjectModuleTreeBO> iPage=projectModuleService.getProjectModulePage(dto);
|
return PageUtil.build(iPage);
|
}
|
|
|
@GetMapping("/tree/list")
|
@PermissionMeta(value = "提取项目模块信息" ,mount = false)
|
@Logger(template = "{user.nickname} 提取取项目模块信息")
|
@LoginRequired
|
public List<ProjectModuleTreeBO> listTree(ProjectModulePageDTO dto ) {
|
return projectModuleService.listTree(dto);
|
}
|
|
|
@GetMapping("/list")
|
@PermissionMeta(value = "提取项目模块信息" ,mount = false)
|
@Logger(template = "{user.nickname} 提取取项目模块信息")
|
@LoginRequired
|
public List<ProjectModuleDO> list(ProjectModulePageDTO dto ) {
|
|
return projectModuleService.list(dto);
|
}
|
|
|
|
|
}
|