작업 목표
1. 시간, 금액에 대한 포멧 적용하기
2. account/detail.jsp 파일 코드 수정 하기
1. 시간, 금액에 대한 포멧 적용하기
package com.tenco.bank.utils;
import java.sql.Timestamp;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
public abstract class ValueFormatter {
// 시간 포맷
public String timestampToString(Timestamp timestamp) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(timestamp);
}
public String formatKoreanWon(Long amount) {
DecimalFormat df = new DecimalFormat("#,###");
String formatNumber = df.format(amount);
return formatNumber + "원";
}
}
package com.tenco.bank.repository.model;
import java.sql.Timestamp;
import org.springframework.http.HttpStatus;
import com.tenco.bank.handler.exception.DataDeliveryException;
import com.tenco.bank.utils.Define;
import com.tenco.bank.utils.ValueFormatter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ToString
public class Account extends ValueFormatter {
private Integer id;
private String number;
private String password;
private Long balance;
private Integer userId;
private Timestamp createdAt;
// 출금 기능
public void withdraw(Long amount) {
// 방어적 코드
this.balance -= amount;
}
// 입금 기능
public void deposit(Long amount) {
this.balance += amount;
}
// 패스워드 체크
public void checkPassword(String password) {
// f == f 일때 ---> true
if(this.password.equals(password) == false) {
throw new DataDeliveryException(Define.FAIL_ACCOUNT_PASSWROD, HttpStatus.BAD_REQUEST);
}
}
// 잔액 여부 확인 - checkBalance
public void checkBalance(Long amount) {
if(this.balance < amount) {
throw new DataDeliveryException(Define.LACK_Of_BALANCE, HttpStatus.BAD_REQUEST);
}
}
// 계좌 소유자 확인 기능 - checkOwner
public void checkOwner(Integer principalId) {
if(this.userId != principalId) {
throw new DataDeliveryException(Define.NOT_ACCOUNT_OWNER, HttpStatus.BAD_REQUEST);
}
}
}
'Spring boot' 카테고리의 다른 글
26. intercepter 활용(인증검사 공통 처리) (1) | 2024.08.13 |
---|---|
25. 계좌 상세보기 페이징 처리 (0) | 2024.08.13 |
23. 계좌 상세보기 - 2단계(기능, 동적쿼리 구현) (0) | 2024.08.13 |
22. 계좌 상세보기 - 1단계(쿼리 학습) (0) | 2024.08.13 |
21. 이체 기능 만들기 (0) | 2024.08.13 |