卡包开发步骤
开发步骤
- 需求规划,需求拆解,需求辩论
- 技术选型:为什么是HBase or MySQL
- 工程设计:工程图各个模块设计的功能点,各个功能点涉及的技术
- 编码
- 测试:功能测试,压力测试
- 部署:自动化上线
开发技术
- kafka 消息队列
- Mysql存储商户信息
- HBase存储用户信息
- Spring-boot 搭建项目
- Redis存储Token信息
测试用例
测试上线
应用技术分层
- 框架层:Spring-boot
- 存储层:MySql,HBase,Redis
- 消息队列:Kafka
基础工具介绍:
- Maven
- PostMan/RestAPI
需求分析:
功能需求解析:
- 什么是卡包应用:卡券收集聚合类应用
- 包含哪些子系统:商户投放子系统,用户使用子系统
- 优惠卷使用方法:展示型,兑换型,token核销型
- 扩展:存储纪念性卡券,身份证件信息,银行卡
我的卡包:
- 我的卡包(显示我领取的优惠券,临近过期时需要提醒)
- 过期优惠券(显示过期优惠券)
- 优惠券库存:可以领取商家投放的优惠券,每个优惠券只能领取一张(可以改一下?)
- 用户反馈:分为卡包应用反馈和优惠券反馈
商户投放系统
商户接口字段:
name | 商户名 |
logo_url | 商户logo |
business_license_url | 商户营业执照 |
phone | 商户联系电话 |
address | 商户地址 |
is_audit | 商户是否通过审核 |
优惠券接口字段:
id | 所属商户Id |
title | 优惠卷标题 |
summary | 优惠卷摘要 |
desc | 优惠卷详细信息 |
limit | 最大发放总数个数限制 |
has_token | 是否具有token |
background | 优惠卷背景颜色 |
start/end | 优惠卷 开始/结束 时间 |
应用架构
表结构设计
Mysql
name | 商户名 |
logo_url | 商户logo |
business_license_url | 商户营业执照 |
phone | 商户联系电话 |
address | 商户地址 |
is_audit | 商户是否通过审核 |
HBase
passtemplate
id | 所属商户Id |
title | 优惠卷标题 |
summary | 优惠卷摘要 |
desc | 优惠卷详细信息 |
has_token | 是否具有token |
background | 优惠卷背景颜色 |
limit | 最大发放总数个数限制 |
start/end | 优惠卷 开始/结束 时间 |
pass | |
———- | ——————— |
user_id | 优惠卷所属用户 |
template_id | 优惠卷id用于映射具体的优惠卷信息 |
token | 优惠卷token,不存在为-1 |
assigned_date | 领取日期 |
con_date | 消费日期 |
feedback | |
———- | ——————— |
user_id | 评论所属用户 |
template_id | 如果type标识此评论针对优惠卷,则需要指出优惠卷id |
type | 标识此评论针对卡包还是优惠卷 |
comment | 评论内容 |
user | |
———- | ——————— |
name | 用户名 |
age | 用户年龄 |
sex | 用户性别 |
phone | 用户手机号 |
address | 用户地址 |
开发步骤
- 修改配置文件
- 定义数据结构:merchants.sql
- 定义常量类以及枚举类
- 定义Token拦截器,去拿到每个请求中header中的token字段
- 定义实体类,与merchants.sql中的字段对应
- 定义dao接口,继承JpaRepository<Merchants, Integer>
- vo的编写,除了属性,还需要验证对象的有效性,以及对象的转换(vo->entity/pojo)
Comments