智能储蓄银行服务

Tikkl Bank是一款智能储蓄银行服务,提供账户管理、信用卡自动储蓄、金融产品查询等功能,适用于个人理财和储蓄管理。

  • by yksoo00
  • HTML
  • 本地部署
  • 更新于
在 GitHub 查看 yksoo00/tikkl-bank

使用说明

蒂克尔银行

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