根据以下内容写出相应idea代码:在人事信息管理中,角色分类是一种重要的组织和管理方式,用于将不同的人事岗位和责任划分为不同的角色。为了实现角色分类的管理和操作,需要设计三个关键组件:角色分类类(RoleCla)、角色分类控制器类(RoleClaController)和角色分类服务类(RoleClaService)。角色分类信息录入,接收角色分类信息,对其进行验证和处理,然后将其保存到数据库中。在保存前可以进行逻辑校验,如检查角色分类名称是否重复等。根据不同的查询条件,执行高效的数据库查询操作,以获取符合条件的角色分类信息。可以支持按角色分类名称、描述等进行查询,同时支持排序和分页功能,以提供更灵活的查询结果。
时间: 2024-02-23 15:59:50 浏览: 76
以下是一个简单的基于Spring Boot的示例代码:
RoleCla类:
```java
public class RoleCla {
private Long id;
private String name;
private String description;
private Date createTime;
private Date updateTime;
// 省略getter和setter方法
}
```
RoleClaController类:
```java
@RestController
@RequestMapping("/roles")
public class RoleClaController {
@Autowired
private RoleClaService roleClaService;
@PostMapping("/")
public RoleCla createRole(@RequestBody RoleCla roleCla) {
return roleClaService.createRole(roleCla);
}
@GetMapping("/{id}")
public RoleCla getRoleById(@PathVariable("id") Long id) {
return roleClaService.getRoleById(id);
}
@GetMapping("/")
public List<RoleCla> getAllRoles() {
return roleClaService.getAllRoles();
}
@GetMapping("/search")
public List<RoleCla> searchRoles(
@RequestParam(value = "name", required = false) String name,
@RequestParam(value = "description", required = false) String description,
@RequestParam(value = "page", defaultValue = "0") int page,
@RequestParam(value = "size", defaultValue = "10") int size,
@RequestParam(value = "sort", defaultValue = "id,asc") String[] sort) {
return roleClaService.searchRoles(name, description, page, size, sort);
}
}
```
RoleClaService类:
```java
@Service
public class RoleClaService {
@Autowired
private RoleClaRepository roleClaRepository;
public RoleCla createRole(RoleCla roleCla) {
// 检查角色分类名称是否重复等逻辑校验
// ...
return roleClaRepository.save(roleCla);
}
public RoleCla getRoleById(Long id) {
return roleClaRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("RoleCla", "id", id));
}
public List<RoleCla> getAllRoles() {
return roleClaRepository.findAll();
}
public List<RoleCla> searchRoles(String name, String description, int page, int size, String[] sort) {
Pageable pageable = PageRequest.of(page, size, Sort.by(sort));
Specification<RoleCla> spec = Specification.where(null);
if (name != null) {
spec = spec.and(RoleClaSpecification.nameLike(name));
}
if (description != null) {
spec = spec.and(RoleClaSpecification.descriptionLike(description));
}
Page<RoleCla> pageResult = roleClaRepository.findAll(spec, pageable);
return pageResult.getContent();
}
}
```
RoleClaRepository接口:
```java
public interface RoleClaRepository extends JpaRepository<RoleCla, Long>, JpaSpecificationExecutor<RoleCla> {
}
```
RoleClaSpecification类:
```java
public class RoleClaSpecification {
public static Specification<RoleCla> nameLike(String name) {
return (root, query, cb) -> cb.like(root.get("name"), "%" + name + "%");
}
public static Specification<RoleCla> descriptionLike(String description) {
return (root, query, cb) -> cb.like(root.get("description"), "%" + description + "%");
}
}
```
以上代码实现了对角色分类的增删改查以及查询功能,其中查询支持按名称和描述进行模糊查询,并支持排序和分页。需要在配置文件中配置数据库连接等信息,并根据具体需求进行修改。
阅读全文