Compare commits
2 Commits
aa765d6ef9
...
934ef24ce6
Author | SHA1 | Date | |
---|---|---|---|
934ef24ce6 | |||
2802d2d25c |
@ -50,5 +50,9 @@
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>4.1.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.iocoder.boot</groupId>
|
||||
<artifactId>yudao-spring-boot-starter-excel</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
</project>
|
||||
|
@ -0,0 +1,97 @@
|
||||
package cn.iocoder.yudao.module.mdpf.controller.admin.project;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.module.mdpf.controller.admin.project.vo.ProjectPageReqVO;
|
||||
import cn.iocoder.yudao.module.mdpf.controller.admin.project.vo.ProjectRespVO;
|
||||
import cn.iocoder.yudao.module.mdpf.controller.admin.project.vo.ProjectSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mdpf.dal.dataobject.project.ProjectDO;
|
||||
import cn.iocoder.yudao.module.mdpf.service.project.ProjectService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
|
||||
@Tag(name = "管理后台 - 项目")
|
||||
@RestController
|
||||
@RequestMapping("/att/project")
|
||||
@Validated
|
||||
public class ProjectController {
|
||||
|
||||
@Resource
|
||||
private ProjectService projectService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建项目")
|
||||
@PreAuthorize("@ss.hasPermission('att:project:create')")
|
||||
public CommonResult<Long> createProject(@Valid @RequestBody ProjectSaveReqVO createReqVO) {
|
||||
return success(projectService.createProject(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新项目")
|
||||
@PreAuthorize("@ss.hasPermission('att:project:update')")
|
||||
public CommonResult<Boolean> updateProject(@Valid @RequestBody ProjectSaveReqVO updateReqVO) {
|
||||
projectService.updateProject(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除项目")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('att:project:delete')")
|
||||
public CommonResult<Boolean> deleteProject(@RequestParam("id") Long id) {
|
||||
projectService.deleteProject(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得项目")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('att:project:query')")
|
||||
public CommonResult<ProjectRespVO> getProject(@RequestParam("id") Long id) {
|
||||
ProjectDO project = projectService.getProject(id);
|
||||
return success(BeanUtils.toBean(project, ProjectRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得项目分页")
|
||||
@PreAuthorize("@ss.hasPermission('att:project:query')")
|
||||
public CommonResult<PageResult<ProjectRespVO>> getProjectPage(@Valid ProjectPageReqVO pageReqVO) {
|
||||
PageResult<ProjectDO> pageResult = projectService.getProjectPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, ProjectRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出项目 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('att:project:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportProjectExcel(@Valid ProjectPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<ProjectDO> list = projectService.getProjectPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "项目.xls", "数据", ProjectRespVO.class,
|
||||
BeanUtils.toBean(list, ProjectRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package cn.iocoder.yudao.module.mdpf.controller.admin.project.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 项目分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ProjectPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "项目名称", example = "芋艿")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "项目管理员id", example = "29571")
|
||||
private Long managerId;
|
||||
|
||||
@Schema(description = "项目描述", example = "随便")
|
||||
private String description;
|
||||
|
||||
@Schema(description = "是否有效;0:无效,1:有效")
|
||||
private String validFlag;
|
||||
|
||||
@Schema(description = "创建人id", example = "16812")
|
||||
private Long creatorId;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
@Schema(description = "更新人")
|
||||
private String updater;
|
||||
|
||||
@Schema(description = "更新人id", example = "2533")
|
||||
private Long updaterId;
|
||||
|
||||
@Schema(description = "备注", example = "你说的对")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "code")
|
||||
private String code;
|
||||
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
package cn.iocoder.yudao.module.mdpf.controller.admin.project.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 项目 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class ProjectRespVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14209")
|
||||
@ExcelProperty("ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@ExcelProperty("项目名称")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "项目管理员id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29571")
|
||||
@ExcelProperty("项目管理员id")
|
||||
private Long managerId;
|
||||
|
||||
@Schema(description = "项目描述", example = "随便")
|
||||
@ExcelProperty("项目描述")
|
||||
private String description;
|
||||
|
||||
@Schema(description = "是否有效;0:无效,1:有效", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("是否有效;0:无效,1:有效")
|
||||
private String validFlag;
|
||||
|
||||
@Schema(description = "创建人id", example = "16812")
|
||||
@ExcelProperty("创建人id")
|
||||
private Long creatorId;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "更新人")
|
||||
@ExcelProperty("更新人")
|
||||
private String updater;
|
||||
|
||||
@Schema(description = "更新人id", example = "2533")
|
||||
@ExcelProperty("更新人id")
|
||||
private Long updaterId;
|
||||
|
||||
@Schema(description = "备注", example = "你说的对")
|
||||
@ExcelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "code")
|
||||
@ExcelProperty("code")
|
||||
private String code;
|
||||
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package cn.iocoder.yudao.module.mdpf.controller.admin.project.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 项目新增/修改 Request VO")
|
||||
@Data
|
||||
public class ProjectSaveReqVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14209")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@NotEmpty(message = "项目名称不能为空")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "项目管理员id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29571")
|
||||
@NotNull(message = "项目管理员id不能为空")
|
||||
private Long managerId;
|
||||
|
||||
@Schema(description = "项目描述", example = "随便")
|
||||
private String description;
|
||||
|
||||
@Schema(description = "是否有效;0:无效,1:有效", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "是否有效;0:无效,1:有效不能为空")
|
||||
private String validFlag;
|
||||
|
||||
@Schema(description = "创建人id", example = "16812")
|
||||
private Long creatorId;
|
||||
|
||||
@Schema(description = "更新人")
|
||||
private String updater;
|
||||
|
||||
@Schema(description = "更新人id", example = "2533")
|
||||
private Long updaterId;
|
||||
|
||||
@Schema(description = "备注", example = "你说的对")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "code")
|
||||
private String code;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.mdpf.controller.admin.projectuserrel;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.mdpf.controller.admin.projectuserrel.vo.*;
|
||||
import cn.iocoder.yudao.module.mdpf.dal.dataobject.projectuserrel.ProjectUserRelDO;
|
||||
import cn.iocoder.yudao.module.mdpf.service.projectuserrel.ProjectUserRelService;
|
||||
|
||||
@Tag(name = "管理后台 - 项目表与用户表关联关系")
|
||||
@RestController
|
||||
@RequestMapping("/mdpf/project-user-rel")
|
||||
@Validated
|
||||
public class ProjectUserRelController {
|
||||
|
||||
@Resource
|
||||
private ProjectUserRelService projectUserRelService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建项目表与用户表关联关系")
|
||||
@PreAuthorize("@ss.hasPermission('mdpf:project-user-rel:create')")
|
||||
public CommonResult<Long> createProjectUserRel(@Valid @RequestBody ProjectUserRelSaveReqVO createReqVO) {
|
||||
return success(projectUserRelService.createProjectUserRel(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新项目表与用户表关联关系")
|
||||
@PreAuthorize("@ss.hasPermission('mdpf:project-user-rel:update')")
|
||||
public CommonResult<Boolean> updateProjectUserRel(@Valid @RequestBody ProjectUserRelSaveReqVO updateReqVO) {
|
||||
projectUserRelService.updateProjectUserRel(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除项目表与用户表关联关系")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('mdpf:project-user-rel:delete')")
|
||||
public CommonResult<Boolean> deleteProjectUserRel(@RequestParam("id") Long id) {
|
||||
projectUserRelService.deleteProjectUserRel(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得项目表与用户表关联关系")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('mdpf:project-user-rel:query')")
|
||||
public CommonResult<ProjectUserRelRespVO> getProjectUserRel(@RequestParam("id") Long id) {
|
||||
ProjectUserRelDO projectUserRel = projectUserRelService.getProjectUserRel(id);
|
||||
return success(BeanUtils.toBean(projectUserRel, ProjectUserRelRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得项目表与用户表关联关系分页")
|
||||
@PreAuthorize("@ss.hasPermission('mdpf:project-user-rel:query')")
|
||||
public CommonResult<PageResult<ProjectUserRelRespVO>> getProjectUserRelPage(@Valid ProjectUserRelPageReqVO pageReqVO) {
|
||||
PageResult<ProjectUserRelDO> pageResult = projectUserRelService.getProjectUserRelPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, ProjectUserRelRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出项目表与用户表关联关系 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('mdpf:project-user-rel:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportProjectUserRelExcel(@Valid ProjectUserRelPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<ProjectUserRelDO> list = projectUserRelService.getProjectUserRelPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "项目表与用户表关联关系.xls", "数据", ProjectUserRelRespVO.class,
|
||||
BeanUtils.toBean(list, ProjectUserRelRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package cn.iocoder.yudao.module.mdpf.controller.admin.projectuserrel.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 项目表与用户表关联关系分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ProjectUserRelPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "项目空间ID", example = "20683")
|
||||
private Long projectId;
|
||||
|
||||
@Schema(description = "用户ID", example = "11066")
|
||||
private Long userId;
|
||||
|
||||
@Schema(description = "是否有效;0:无效,1:有效")
|
||||
private String validFlag;
|
||||
|
||||
@Schema(description = "创建人id", example = "11994")
|
||||
private Long creatorId;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
@Schema(description = "更新人id", example = "24433")
|
||||
private Long updaterId;
|
||||
|
||||
@Schema(description = "备注", example = "你猜")
|
||||
private String remark;
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package cn.iocoder.yudao.module.mdpf.controller.admin.projectuserrel.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 项目表与用户表关联关系 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class ProjectUserRelRespVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4436")
|
||||
@ExcelProperty("ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "项目空间ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20683")
|
||||
@ExcelProperty("项目空间ID")
|
||||
private Long projectId;
|
||||
|
||||
@Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11066")
|
||||
@ExcelProperty("用户ID")
|
||||
private Long userId;
|
||||
|
||||
@Schema(description = "是否有效;0:无效,1:有效", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("是否有效;0:无效,1:有效")
|
||||
private String validFlag;
|
||||
|
||||
@Schema(description = "创建人id", example = "11994")
|
||||
@ExcelProperty("创建人id")
|
||||
private Long creatorId;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "更新人id", example = "24433")
|
||||
@ExcelProperty("更新人id")
|
||||
private Long updaterId;
|
||||
|
||||
@Schema(description = "备注", example = "你猜")
|
||||
@ExcelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package cn.iocoder.yudao.module.mdpf.controller.admin.projectuserrel.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 项目表与用户表关联关系新增/修改 Request VO")
|
||||
@Data
|
||||
public class ProjectUserRelSaveReqVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4436")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "项目空间ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20683")
|
||||
@NotNull(message = "项目空间ID不能为空")
|
||||
private Long projectId;
|
||||
|
||||
@Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11066")
|
||||
@NotNull(message = "用户ID不能为空")
|
||||
private Long userId;
|
||||
|
||||
@Schema(description = "是否有效;0:无效,1:有效", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "是否有效;0:无效,1:有效不能为空")
|
||||
private String validFlag;
|
||||
|
||||
@Schema(description = "创建人id", example = "11994")
|
||||
private Long creatorId;
|
||||
|
||||
@Schema(description = "更新人id", example = "24433")
|
||||
private Long updaterId;
|
||||
|
||||
@Schema(description = "备注", example = "你猜")
|
||||
private String remark;
|
||||
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
package cn.iocoder.yudao.module.mdpf.dal.dataobject.project;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 项目 DO
|
||||
*
|
||||
* @author 海况播报
|
||||
*/
|
||||
@TableName("att_project")
|
||||
@KeySequence("att_project_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ProjectDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 项目管理员id
|
||||
*/
|
||||
private Long managerId;
|
||||
/**
|
||||
* 项目描述
|
||||
*/
|
||||
private String description;
|
||||
/**
|
||||
* 是否有效;0:无效,1:有效
|
||||
*/
|
||||
private String validFlag;
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
private Long creatorId;
|
||||
/**
|
||||
* 更新人id
|
||||
*/
|
||||
private Long updaterId;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* code
|
||||
*/
|
||||
private String code;
|
||||
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package cn.iocoder.yudao.module.mdpf.dal.dataobject.projectuserrel;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 项目表与用户表关联关系 DO
|
||||
*
|
||||
* @author 海况播报
|
||||
*/
|
||||
@TableName("att_project_user_rel")
|
||||
@KeySequence("att_project_user_rel_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ProjectUserRelDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 项目空间ID
|
||||
*/
|
||||
private Long projectId;
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private Long userId;
|
||||
/**
|
||||
* 是否有效;0:无效,1:有效
|
||||
*/
|
||||
private String validFlag;
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
private Long creatorId;
|
||||
/**
|
||||
* 更新人id
|
||||
*/
|
||||
private Long updaterId;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package cn.iocoder.yudao.module.mdpf.dal.mysql.project;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.mdpf.controller.admin.project.vo.ProjectPageReqVO;
|
||||
import cn.iocoder.yudao.module.mdpf.dal.dataobject.project.ProjectDO;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
|
||||
/**
|
||||
* 项目 Mapper
|
||||
*
|
||||
* @author 海况播报
|
||||
*/
|
||||
@Mapper
|
||||
@DS("third")
|
||||
public interface ProjectMapper extends BaseMapperX<ProjectDO> {
|
||||
|
||||
default PageResult<ProjectDO> selectPage(ProjectPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<ProjectDO>()
|
||||
.likeIfPresent(ProjectDO::getName, reqVO.getName())
|
||||
.eqIfPresent(ProjectDO::getManagerId, reqVO.getManagerId())
|
||||
.eqIfPresent(ProjectDO::getDescription, reqVO.getDescription())
|
||||
.eqIfPresent(ProjectDO::getValidFlag, reqVO.getValidFlag())
|
||||
.eqIfPresent(ProjectDO::getCreatorId, reqVO.getCreatorId())
|
||||
.betweenIfPresent(ProjectDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(ProjectDO::getUpdaterId, reqVO.getUpdaterId())
|
||||
.eqIfPresent(ProjectDO::getRemark, reqVO.getRemark())
|
||||
.eqIfPresent(ProjectDO::getCode, reqVO.getCode())
|
||||
.orderByDesc(ProjectDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package cn.iocoder.yudao.module.mdpf.dal.mysql.projectuserrel;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.mdpf.dal.dataobject.projectuserrel.ProjectUserRelDO;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.mdpf.controller.admin.projectuserrel.vo.*;
|
||||
|
||||
/**
|
||||
* 项目表与用户表关联关系 Mapper
|
||||
*
|
||||
* @author 海况播报
|
||||
*/
|
||||
@Mapper
|
||||
@DS("third")
|
||||
public interface ProjectUserRelMapper extends BaseMapperX<ProjectUserRelDO> {
|
||||
|
||||
default PageResult<ProjectUserRelDO> selectPage(ProjectUserRelPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<ProjectUserRelDO>()
|
||||
.eqIfPresent(ProjectUserRelDO::getProjectId, reqVO.getProjectId())
|
||||
.eqIfPresent(ProjectUserRelDO::getUserId, reqVO.getUserId())
|
||||
.eqIfPresent(ProjectUserRelDO::getValidFlag, reqVO.getValidFlag())
|
||||
.eqIfPresent(ProjectUserRelDO::getCreatorId, reqVO.getCreatorId())
|
||||
.betweenIfPresent(ProjectUserRelDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(ProjectUserRelDO::getUpdaterId, reqVO.getUpdaterId())
|
||||
.eqIfPresent(ProjectUserRelDO::getRemark, reqVO.getRemark())
|
||||
.orderByDesc(ProjectUserRelDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package cn.iocoder.yudao.module.mdpf.service.project;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.module.mdpf.controller.admin.project.vo.ProjectPageReqVO;
|
||||
import cn.iocoder.yudao.module.mdpf.controller.admin.project.vo.ProjectSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mdpf.dal.dataobject.project.ProjectDO;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
|
||||
|
||||
/**
|
||||
* 项目 Service 接口
|
||||
*
|
||||
* @author 海况播报
|
||||
*/
|
||||
public interface ProjectService {
|
||||
|
||||
/**
|
||||
* 创建项目
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createProject(@Valid ProjectSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新项目
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateProject(@Valid ProjectSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除项目
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteProject(Long id);
|
||||
|
||||
/**
|
||||
* 获得项目
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 项目
|
||||
*/
|
||||
ProjectDO getProject(Long id);
|
||||
|
||||
/**
|
||||
* 获得项目分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 项目分页
|
||||
*/
|
||||
PageResult<ProjectDO> getProjectPage(ProjectPageReqVO pageReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,93 @@
|
||||
package cn.iocoder.yudao.module.mdpf.service.project;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.security.core.LoginUser;
|
||||
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import cn.iocoder.yudao.module.mdpf.controller.admin.project.vo.ProjectPageReqVO;
|
||||
import cn.iocoder.yudao.module.mdpf.controller.admin.project.vo.ProjectSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mdpf.controller.admin.projectuserrel.vo.ProjectUserRelSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mdpf.dal.dataobject.project.ProjectDO;
|
||||
import cn.iocoder.yudao.module.mdpf.dal.mysql.project.ProjectMapper;
|
||||
import cn.iocoder.yudao.module.mdpf.service.projectuserrel.ProjectUserRelService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
|
||||
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
|
||||
|
||||
/**
|
||||
* 项目 Service 实现类
|
||||
*
|
||||
* @author 海况播报
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class ProjectServiceImpl implements ProjectService {
|
||||
|
||||
@Resource
|
||||
private ProjectMapper projectMapper;
|
||||
|
||||
@Resource
|
||||
private ProjectUserRelService projectUserRelService;
|
||||
|
||||
@Override
|
||||
public Long createProject(ProjectSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
ProjectDO project = BeanUtils.toBean(createReqVO, ProjectDO.class);
|
||||
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||
project.setCreatorId(loginUser.getId());
|
||||
projectMapper.insert(project);
|
||||
// 创建中间表
|
||||
ProjectUserRelSaveReqVO saveReqVO = new ProjectUserRelSaveReqVO();
|
||||
saveReqVO.setProjectId(project.getId());
|
||||
saveReqVO.setUserId(loginUser.getId());
|
||||
saveReqVO.setValidFlag(project.getValidFlag());
|
||||
saveReqVO.setCreatorId(loginUser.getId());
|
||||
projectUserRelService.createProjectUserRel(saveReqVO);
|
||||
// 返回
|
||||
return project.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateProject(ProjectSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateProjectExists(updateReqVO.getId());
|
||||
// 更新
|
||||
ProjectDO updateObj = BeanUtils.toBean(updateReqVO, ProjectDO.class);
|
||||
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||
updateObj.setUpdaterId(loginUser.getId());
|
||||
projectMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteProject(Long id) {
|
||||
// 校验存在
|
||||
validateProjectExists(id);
|
||||
// 删除
|
||||
projectMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateProjectExists(Long id) {
|
||||
if (projectMapper.selectById(id) == null) {
|
||||
throw exception(new ErrorCode(10050, "项目不存在"));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProjectDO getProject(Long id) {
|
||||
return projectMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ProjectDO> getProjectPage(ProjectPageReqVO pageReqVO) {
|
||||
return projectMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package cn.iocoder.yudao.module.mdpf.service.projectuserrel;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import cn.iocoder.yudao.module.mdpf.controller.admin.projectuserrel.vo.*;
|
||||
import cn.iocoder.yudao.module.mdpf.dal.dataobject.projectuserrel.ProjectUserRelDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 项目表与用户表关联关系 Service 接口
|
||||
*
|
||||
* @author 海况播报
|
||||
*/
|
||||
public interface ProjectUserRelService {
|
||||
|
||||
/**
|
||||
* 创建项目表与用户表关联关系
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createProjectUserRel(@Valid ProjectUserRelSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新项目表与用户表关联关系
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateProjectUserRel(@Valid ProjectUserRelSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除项目表与用户表关联关系
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteProjectUserRel(Long id);
|
||||
|
||||
/**
|
||||
* 获得项目表与用户表关联关系
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 项目表与用户表关联关系
|
||||
*/
|
||||
ProjectUserRelDO getProjectUserRel(Long id);
|
||||
|
||||
/**
|
||||
* 获得项目表与用户表关联关系分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 项目表与用户表关联关系分页
|
||||
*/
|
||||
PageResult<ProjectUserRelDO> getProjectUserRelPage(ProjectUserRelPageReqVO pageReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,75 @@
|
||||
package cn.iocoder.yudao.module.mdpf.service.projectuserrel;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import cn.iocoder.yudao.module.mdpf.controller.admin.projectuserrel.vo.*;
|
||||
import cn.iocoder.yudao.module.mdpf.dal.dataobject.projectuserrel.ProjectUserRelDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
|
||||
import cn.iocoder.yudao.module.mdpf.dal.mysql.projectuserrel.ProjectUserRelMapper;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
|
||||
|
||||
/**
|
||||
* 项目表与用户表关联关系 Service 实现类
|
||||
*
|
||||
* @author 海况播报
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class ProjectUserRelServiceImpl implements ProjectUserRelService {
|
||||
|
||||
@Resource
|
||||
private ProjectUserRelMapper projectUserRelMapper;
|
||||
|
||||
@Override
|
||||
public Long createProjectUserRel(ProjectUserRelSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
ProjectUserRelDO projectUserRel = BeanUtils.toBean(createReqVO, ProjectUserRelDO.class);
|
||||
projectUserRelMapper.insert(projectUserRel);
|
||||
// 返回
|
||||
return projectUserRel.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateProjectUserRel(ProjectUserRelSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateProjectUserRelExists(updateReqVO.getId());
|
||||
// 更新
|
||||
ProjectUserRelDO updateObj = BeanUtils.toBean(updateReqVO, ProjectUserRelDO.class);
|
||||
projectUserRelMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteProjectUserRel(Long id) {
|
||||
// 校验存在
|
||||
validateProjectUserRelExists(id);
|
||||
// 删除
|
||||
projectUserRelMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateProjectUserRelExists(Long id) {
|
||||
if (projectUserRelMapper.selectById(id) == null) {
|
||||
throw exception(new ErrorCode(0404, "项目表与用户表关联关系不存在"));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProjectUserRelDO getProjectUserRel(Long id) {
|
||||
return projectUserRelMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ProjectUserRelDO> getProjectUserRelPage(ProjectUserRelPageReqVO pageReqVO) {
|
||||
return projectUserRelMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.iocoder.yudao.module.mdpf.dal.mysql.project.ProjectMapper">
|
||||
|
||||
<!--
|
||||
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
||||
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
|
||||
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||
-->
|
||||
|
||||
</mapper>
|
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.iocoder.yudao.module.mdpf.dal.mysql.projectuserrel.ProjectUserRelMapper">
|
||||
|
||||
<!--
|
||||
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
||||
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
|
||||
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||
-->
|
||||
|
||||
</mapper>
|
@ -54,6 +54,13 @@ spring:
|
||||
url: jdbc:mysql://221.238.217.216:4156/data_mid_platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
|
||||
username: root
|
||||
password: 123456
|
||||
#添加从库
|
||||
third:
|
||||
lazy: true
|
||||
url: jdbc:mysql://221.238.217.216:4156/data_middle_platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
|
||||
username: root
|
||||
password: 123456
|
||||
|
||||
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
|
||||
redis:
|
||||
host: 127.0.0.1 # 地址
|
||||
|
Loading…
x
Reference in New Issue
Block a user