feat: 创建角色功能
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
package com.onixbyte.helix.controller;
|
||||
|
||||
import com.onixbyte.helix.domain.entity.Role;
|
||||
import com.onixbyte.helix.domain.web.request.AddRoleRequest;
|
||||
import com.onixbyte.helix.domain.web.request.QueryRoleRequest;
|
||||
import com.onixbyte.helix.service.RoleService;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@@ -28,4 +30,10 @@ public class RoleController {
|
||||
var pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by(Sort.Order.asc("id")));
|
||||
return roleService.getRoles(pageRequest, request);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public ResponseEntity<Void> addRole(@Validated @RequestBody AddRoleRequest request) {
|
||||
roleService.addRole(request);
|
||||
return ResponseEntity.ok(null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -305,4 +305,17 @@ public class Role {
|
||||
return new Role(id, name, code, sort, defaultValue, description, status, createdAt, updatedAt);
|
||||
}
|
||||
}
|
||||
|
||||
@PrePersist
|
||||
private void onInsert() {
|
||||
var currentTime = LocalDateTime.now();
|
||||
this.createdAt = currentTime;
|
||||
this.updatedAt = currentTime;
|
||||
}
|
||||
|
||||
@PreUpdate
|
||||
private void onUpdate() {
|
||||
this.updatedAt = LocalDateTime.now();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.onixbyte.helix.domain.web.request;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
|
||||
public record AddRoleRequest(
|
||||
@NotBlank(message = "角色名称不能为空")
|
||||
String name,
|
||||
@NotBlank(message = "角色编码不能为空")
|
||||
String code,
|
||||
@NotNull(message = "排序编号不能为空")
|
||||
Integer sort,
|
||||
Boolean defaultValue,
|
||||
String description,
|
||||
@Pattern(
|
||||
regexp = "^(ACTIVE|INACTIVE)?$",
|
||||
message = "状态仅可以是 ACTIVE、INACTIVE 其中之一")
|
||||
String status
|
||||
) {
|
||||
}
|
||||
@@ -42,4 +42,8 @@ public class RoleManager {
|
||||
|
||||
return new PageImpl<>(records, pageable, total);
|
||||
}
|
||||
|
||||
public Role save(Role role) {
|
||||
return roleRepository.save(role);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.onixbyte.helix.service;
|
||||
import com.onixbyte.helix.constant.Status;
|
||||
import com.onixbyte.helix.domain.database.query.wrapper.QueryRoleWrapper;
|
||||
import com.onixbyte.helix.domain.entity.Role;
|
||||
import com.onixbyte.helix.domain.web.request.AddRoleRequest;
|
||||
import com.onixbyte.helix.domain.web.request.QueryRoleRequest;
|
||||
import com.onixbyte.helix.manager.RoleManager;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -39,4 +40,23 @@ public class RoleService {
|
||||
|
||||
return roleManager.selectAll(pageable, wrapper);
|
||||
}
|
||||
|
||||
public Role addRole(AddRoleRequest request) {
|
||||
var isDefaultRole = Optional.ofNullable(request.defaultValue())
|
||||
.orElse(false);
|
||||
var status = Optional.ofNullable(request.status())
|
||||
.map(Status::valueOf)
|
||||
.orElse(Status.ACTIVE);
|
||||
|
||||
var role = Role.builder()
|
||||
.name(request.name())
|
||||
.code(request.code())
|
||||
.sort(request.sort())
|
||||
.defaultValue(isDefaultRole)
|
||||
.description(request.description())
|
||||
.status(status)
|
||||
.build();
|
||||
|
||||
return roleManager.save(role);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user