蒂克尔银行
人工智能联合创始人培训课程MCP-灰尘银行服务
技术堆栈
- 后端:Java 17,Spring Boot 3.2.0
- 数据库:MySQL 8.0
- 对象关系映射:Spring数据JPA/Hibernate
- 生成工具:8.5级
- 容器:Docker,Docker Compose
快速启动(Quick Start)
以Docker Compose运行(建议)
这是最简单的方法。必须安装Docker和Docker Compose。
# 1. 저장소 클론
git clone https://github.com/yksoo00/tikkl-bank.git
cd tikkl-bank
# 2. Docker Compose로 실행 (MySQL + 애플리케이션)
docker-compose up -d
# 3. 로그 확인
docker-compose logs -f app
# 4. 종료
docker-compose down
# 5. 데이터 포함 완전 삭제
docker-compose down -v
服务器运行后 http://localhost:8080/index.html可以在中测试API。
本地开发环境
如果直接在本地安装和开发MySQL:
# 1. MySQL 설치 및 데이터베이스 생성
mysql -u root -p
CREATE DATABASE tikklbank CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 2. 빌드
./gradlew build
# 3. 실행
./gradlew bootRun
仅使用Docker(MySQL在本地)
# Docker 이미지 빌드
docker build -t tikkl-bank .
# Docker 컨테이너 실행 (로컬 MySQL에 연결)
docker run -p 8080:8080 \
-e MYSQL_HOST=host.docker.internal \
-e MYSQL_PORT=3306 \
-e MYSQL_DATABASE=tikklbank \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=password \
tikkl-bank
API测试页面
服务器运行后 http://localhost:8080/index.html可以在中测试所有API。
支持:
- 认证(会员注册/登录)
- 仪表板(综合查询储蓄余额、利息、信用卡使用情况、账单计划等)
- 账户管理(注册、存款、取款)
- 卡管理(注册,连接储蓄账户,设定月目标)
- 刷卡和自动储蓄
- 管理卡优惠(折扣、现金回扣、积分等)
- 查看帐单历史记录
- 搜索交易历史记录
- 查询金融产品
项目结构
src/
├── main/
│ ├── java/com/tikkl/bank/
│ │ ├── common/ # 공통 응답 (ApiResponse)
│ │ ├── controller/ # REST API 컨트롤러
│ │ ├── dto/
│ │ │ ├── request/ # 요청 DTO
│ │ │ └── response/ # 응답 DTO
│ │ ├── entity/ # JPA 엔티티
│ │ ├── exception/ # 예외 처리
│ │ ├── repository/ # JPA 레포지토리
│ │ └── service/ # 비즈니스 로직
│ └── resources/
│ └── application.properties
└── test/
└── java/com/tikkl/bank/
实体
| 实体 | 说明 |
|---|
Member | 会员信息(登录ID、密码、姓名、出生日期、电话号码、储蓄率等) |
Account | 联动账户信息(账号、银行名、账户类型、余额等) |
Card | 联动卡信息(卡号、信用卡公司、奖金比例、月目标使用额、储蓄账户连接等) |
CardBenefit | 信用卡优惠信息(优惠名称、类型、折扣率、目标金额、达成率等) |
CardBilling | 信用卡帐单明细(帐单月、总额、优惠金额、储蓄金额等) |
Transaction 交易明细(交易类型、金额、储蓄金额、加盟店等) |
SavingsAccount | 灰尘专用储蓄账户(储蓄余额、累计储蓄金额、利率、到期日等) |
FinancialProduct | 金融产品信息(商品名称、利率、期限、条款等) |
API端点
认证(Auth)
| 方法 | URL | 描述 |
|---|
| 职位 | /api/auth/signup | 注册会员 |
| 职位 | /api/auth/login | 登录 |
会员(Member)
| 方法 | URL | 描述 |
|---|
| 得到 | /api/members/{memberId} | 查询会员信息 |
| 得到 | /api/members/{memberId}/mypage | 浏览我的页面 |
| PUT | /api/members/{memberId}/savings-settings | 更改储蓄设置 |
| 职位 | /api/members/{memberId}/onboarding | 登录完成 |
홈 (主页)
| 方法 | URL | 描述 |
|---|
| 得到 | /api/members/{memberId}/home | 查看家庭数据 |
| 得到 | /api/members/{memberId}/savings | 查询储蓄账户 |
| 得到 | /api/members/{memberId}/dashboard | 仪表板(综合查询) |
계좌 账户
| 方法 | URL | 描述 |
|---|
| 得到 | /api/members/{memberId}/accounts | 查看帐户列表 |
| 得到 | /api/members/{memberId}/accounts/{accountId} | 查询账户详情 |
| 职位 | /api/members/{memberId}/accounts | 注册账户 |
| 职位 | /api/members/{memberId}/accounts/{accountId}/deposit | 汇款 |
| 职位 | /api/members/{memberId}/accounts/{accountId}/withdraw | 取款 |
| PUT | /api/members/{memberId}/accounts/{accountId}/primary | 设置主帐户 |
| 删除 | /api/members/{memberId}/accounts/{accountId} | 删除帐户 |
卡(Card)
| 方法 | URL | 描述 |
|---|
| 得到 | /api/members/{memberId}/cards | 查看卡列表 |
| 得到 | /api/members/{memberId}/cards/{cardId} | 查看卡详细信息 |
| 得到 | /api/members/{memberId}/cards/{cardId}/detail | 卡详细信息(优惠/帐单/达成率) |
| 职位 | /api/members/{memberId}/cards | 信用卡注册(设置月目标) |
| 职位 | /api/members/{memberId}/cards/{cardId}/payment | 刷卡(自动储蓄) |
| 职位 | /api/members/{memberId}/cards/{cardId}/link-savings | 连接储蓄账户 |
| PUT | /api/members/{memberId}/cards/{cardId}/bonus-ratio | 设定奖金储蓄比例 |
| 删除 | /api/members/{memberId}/cards/{cardId} | 禁用卡 |
信用卡优惠(CardBenefit)
| 方法 | URL | 描述 |
|---|
| 得到 | /api/members/{memberId}/cards/{cardId}/benefits | 查看优惠列表 |
| 职位 | /api/members/{memberId}/cards/{cardId}/benefits | 添加优惠 |
帐单(CardBilling)
| 方法 | URL | 描述 |
|---|
| 得到 | /api/members/{memberId}/cards/{cardId}/billings | 查询帐单历史记录 |
交易历史记录(Transaction)
| 方法 | URL | 描述 |
|---|
| 得到 | /api/members/{memberId}/transactions | 查询交易历史记录(搜索/筛选) |
| 得到 | /api/members/{memberId}/transactions/recent | 查询最近的交易历史记录 |
| 得到 | /api/members/{memberId}/transactions/{transactionId} | 查询交易详情 |
金融产品(Product)
| 方法 | URL | 描述 |
|---|
| 得到 | /api/products | 完整商品列表 |
| 得到 | /api/products/type/{productType} | 按类型查询商品 |
| 得到 | /api/products/{productId} | 查询商品详情 |
响应结构
成功响应
{
"success": true,
"data": { ... },
"message": "성공 메시지"
}
错误响应
{
"code": "ERROR_CODE",
"message": "에러 메시지"
}
错误码
// Common errors
INTERNAL_SERVER_ERROR, VALIDATION_ERROR, INVALID_REQUEST, NOT_FOUND, UNAUTHORIZED, FORBIDDEN
// Member errors
MEMBER_NOT_FOUND, DUPLICATE_LOGIN_ID, DUPLICATE_PHONE_NUMBER, INVALID_PASSWORD
// Account errors
ACCOUNT_NOT_FOUND, DUPLICATE_ACCOUNT, INSUFFICIENT_BALANCE
// Card errors
CARD_NOT_FOUND, INVALID_CARD_TYPE
// Savings errors
SAVINGS_ACCOUNT_NOT_FOUND, SAVINGS_ACCOUNT_ALREADY_EXISTS
// Transaction errors
TRANSACTION_NOT_FOUND, TRANSACTION_FAILED
// Product errors
PRODUCT_NOT_FOUND
环境变量
| 变量名 | 默认值 | 说明 |
|---|
| MYSQL_HOST | localhost | MySQL_HOST主机 |
| MYSQL_PORT | 3306 | SQL端口 |
| MYSQL_DATABASE | tikklbank | 数据库名称 |
| MYSQL_USER | root | MySQL用户 |
| MYSQL_PASSWORD | password | mysql密码 |