Entity 클래스 및 서비스 로직 개선

- kos-mock Entity 클래스 개선 (BillEntity, CustomerEntity, ProductEntity)
- user-service Entity 클래스 개선 (AuthUserEntity, AuthUserPermissionEntity)
- UserService 로직 개선
- kos-mock 데이터베이스 업데이트

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
ondal 2025-11-21 15:46:19 +09:00
parent 77fd4a56a5
commit 21b9c77109
7 changed files with 49 additions and 19 deletions

Binary file not shown.

View File

@ -62,8 +62,9 @@ public class BillEntity {
private String dueDate;
@CreationTimestamp
@Column(name = "created_at", nullable = false)
private LocalDateTime createdAt;
@Column(name = "created_at", nullable = false, updatable = false)
@Builder.Default
private LocalDateTime createdAt = LocalDateTime.now();
// 고객 정보와의 관계
@ManyToOne(fetch = FetchType.LAZY)

View File

@ -41,12 +41,14 @@ public class CustomerEntity {
private LocalDateTime contractDate;
@CreationTimestamp
@Column(name = "created_at", nullable = false)
private LocalDateTime createdAt;
@Column(name = "created_at", nullable = false, updatable = false)
@Builder.Default
private LocalDateTime createdAt = LocalDateTime.now();
@UpdateTimestamp
@Column(name = "updated_at", nullable = false)
private LocalDateTime updatedAt;
@Builder.Default
private LocalDateTime updatedAt = LocalDateTime.now();
// 상품 엔티티와의 관계 설정 (조회 성능을 위해)
@ManyToOne(fetch = FetchType.LAZY)

View File

@ -54,10 +54,12 @@ public class ProductEntity {
private String description;
@CreationTimestamp
@Column(name = "created_at", nullable = false)
private LocalDateTime createdAt;
@Column(name = "created_at", nullable = false, updatable = false)
@Builder.Default
private LocalDateTime createdAt = LocalDateTime.now();
@UpdateTimestamp
@Column(name = "updated_at", nullable = false)
private LocalDateTime updatedAt;
@Builder.Default
private LocalDateTime updatedAt = LocalDateTime.now();
}

View File

@ -21,6 +21,9 @@ public class AuthUserEntity extends BaseTimeEntity {
@Column(name = "user_id", length = 50)
private String userId;
@Column(name = "password", nullable = false, length = 255)
private String password;
@Column(name = "password_hash", nullable = false, length = 255)
private String passwordHash;
@ -36,6 +39,14 @@ public class AuthUserEntity extends BaseTimeEntity {
@Column(name = "user_name", length = 100)
private String userName;
@Column(name = "enabled", nullable = false)
@Builder.Default
private Boolean enabled = true;
@Column(name = "locked", nullable = false)
@Builder.Default
private Boolean locked = false;
@Enumerated(EnumType.STRING)
@Column(name = "account_status", length = 20)
@Builder.Default

View File

@ -23,9 +23,15 @@ public class AuthUserPermissionEntity extends BaseTimeEntity {
@Column(name = "user_id", nullable = false, length = 50)
private String userId;
@Column(name = "permission_id", nullable = false)
@Column(name = "permission_id")
private Long permissionId;
@Column(name = "permission_name", nullable = false, length = 50)
private String permissionName;
@Column(name = "description", length = 200)
private String description;
@Column(name = "granted")
@Builder.Default
private Boolean granted = true;

View File

@ -118,6 +118,8 @@ public class UserService {
AuthUserPermissionEntity userPermission = AuthUserPermissionEntity.builder()
.userId(userId)
.permissionId(permission.getPermissionId())
.permissionName(permission.getPermissionCode())
.description(permission.getPermissionDescription())
.granted(true)
.grantedBy(grantedBy)
.build();
@ -261,8 +263,11 @@ public class UserService {
.customerId(request.getCustomerId())
.lineNumber(request.getLineNumber())
.userName(request.getUserName())
.password(hashedPassword)
.passwordHash(hashedPassword)
.passwordSalt(salt)
.enabled(existingUser.getEnabled())
.locked(existingUser.getLocked())
.accountStatus(existingUser.getAccountStatus())
.failedLoginCount(existingUser.getFailedLoginCount())
.lastFailedLoginAt(existingUser.getLastFailedLoginAt())
@ -331,8 +336,11 @@ public class UserService {
.customerId(request.getCustomerId())
.lineNumber(request.getLineNumber())
.userName(request.getUserName())
.password(hashedPassword)
.passwordHash(hashedPassword)
.passwordSalt(salt)
.enabled(true)
.locked(false)
.accountStatus(AuthUserEntity.AccountStatus.ACTIVE)
.failedLoginCount(0)
.build();