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,9 +62,10 @@ public class BillEntity {
private String dueDate; private String dueDate;
@CreationTimestamp @CreationTimestamp
@Column(name = "created_at", nullable = false) @Column(name = "created_at", nullable = false, updatable = false)
private LocalDateTime createdAt; @Builder.Default
private LocalDateTime createdAt = LocalDateTime.now();
// 고객 정보와의 관계 // 고객 정보와의 관계
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "line_number", insertable = false, updatable = false) @JoinColumn(name = "line_number", insertable = false, updatable = false)

View File

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

View File

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

View File

@ -21,9 +21,12 @@ public class AuthUserEntity extends BaseTimeEntity {
@Column(name = "user_id", length = 50) @Column(name = "user_id", length = 50)
private String userId; private String userId;
@Column(name = "password", nullable = false, length = 255)
private String password;
@Column(name = "password_hash", nullable = false, length = 255) @Column(name = "password_hash", nullable = false, length = 255)
private String passwordHash; private String passwordHash;
@Column(name = "password_salt", nullable = false, length = 100) @Column(name = "password_salt", nullable = false, length = 100)
private String passwordSalt; private String passwordSalt;
@ -35,7 +38,15 @@ public class AuthUserEntity extends BaseTimeEntity {
@Column(name = "user_name", length = 100) @Column(name = "user_name", length = 100)
private String userName; 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) @Enumerated(EnumType.STRING)
@Column(name = "account_status", length = 20) @Column(name = "account_status", length = 20)
@Builder.Default @Builder.Default

View File

@ -19,17 +19,23 @@ public class AuthUserPermissionEntity extends BaseTimeEntity {
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_permission_id") @Column(name = "user_permission_id")
private Long userPermissionId; private Long userPermissionId;
@Column(name = "user_id", nullable = false, length = 50) @Column(name = "user_id", nullable = false, length = 50)
private String userId; private String userId;
@Column(name = "permission_id", nullable = false) @Column(name = "permission_id")
private Long permissionId; 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") @Column(name = "granted")
@Builder.Default @Builder.Default
private Boolean granted = true; private Boolean granted = true;
@Column(name = "granted_by", length = 50) @Column(name = "granted_by", length = 50)
private String grantedBy; private String grantedBy;

View File

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