蒂克尔银行
人工智能联合创始人培训课程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密码