@zhou333666
2017-03-30T08:56:28.000000Z
字数 4394
阅读 1109
设计方案集合
zhouja方案
平台
状态开关记录表
- 对应表状态status增加禁用状态,值为4
- 增加状态开关记录表ly_ban_his
表结构
列名 |
字段 |
类型 |
说明 |
id |
id |
long |
|
目标类别 |
target_type |
VARCHAR(50) |
|
目标Id |
target_id |
long |
|
类型 |
type |
int |
禁用:4,启用:1 |
说明 |
instruction |
varchar(1000) |
|
创建时间 |
createtime |
date |
|
账单
流程
- 每个账期的账单明细的结算周期会在下个账期初始时间结算,生成账单,账单的金额是账单明细的金额的总和。账期目前为一个月。
表结构
财务管理
账户
流程
- 账户的金额转入、转出,要有对应的账户明细记录。转入时,账单明细的金额为正数;转出时,账单明细的金额为负数
- 账户的金额转入的一种情况:每个账期生成的账单的金额,会打款到账户中
流程图
表结构
账户表
- 表名 ly_finance_account java类名 account
列名 |
字段 |
类型 |
说明 |
id |
id |
long |
|
目标类型 |
target_type |
VARCHAR(50) |
目标类型:商户,服务员 |
目标id |
target_id |
long |
|
总金额 |
amount |
bigDecimal(15,2) |
|
冻结金额 |
freeze_amt |
bigDecimal(15,2) |
可提现金额 = 总金额 - 冻结金额,冻结金额初始化为0.00元 |
修改时间 |
update_time |
date |
|
创建时间 |
createtime |
date |
|
账户状态 |
status |
int |
生效:1,冻结:2,注销:3 |
账户明细表
- 表名 ly_finance_account_detail java类名 accountDetail
列名 |
字段 |
类型 |
说明 |
id |
id |
long |
|
账户Id |
account_id |
long |
|
相关类型 |
relevant_type |
VARCHAR(50) |
|
相关Id |
relevant_id |
long |
|
金额 |
amount |
bigDecimal(15,2) |
|
备注 |
remark |
VARCHAR(1000) |
|
创建时间 |
createtime |
Date |
|
状态 |
status |
int |
|
提现
- 提现方式: 手动,自动。
- 手动,自动都有最低额度限制
- 用户提现资格:手动,账户的金额大于最低额度限制
流程
- 手动提现:当账户的金额大于最低额度限制,用户可以申请提现,生成申请提现单,平台财务人员根据申请提现单进行打款
- 自动提现:每月初,当账户的金额大于最低额度限制,则自动生成申请提现单,平台财务人员根据申请提现单进行打款
手动提现流程图
自动提现流程图
表结构
- 表名 ly_finance_withdraw java类名Withdraw
列名 |
字段 |
类型 |
说明 |
id |
id |
long |
|
目标类型 |
target_type |
VARCHAR(50) |
|
目标Id |
target_id |
long |
|
交易号 |
trade_no |
VARCHAR(100) |
打款流水号 |
提现方式 |
method |
VARCHAR(50) |
WX,Alipay |
提现账号 |
account |
VARCHAR(50) |
|
金额 |
amount |
bigDecimal(15,2) |
|
备注 |
remark |
VARCHAR(1000) |
|
创建时间 |
createtime |
Date |
|
状态 |
status |
int |
申请中:1,打款中:2,提现成功:3,提现失败:4 |
信息变更历史记录
表结构
- 表名 change_his
- 变更信息的格式:json类型。
例如{status=1, status_n=2, name='wang',name_n='ya'}
表示status由1变2,name由'wang'变'ya'
列名 |
字段 |
类型 |
说明 |
id |
id |
long |
|
目标类别 |
target_type |
varchar(50) |
变更数据java的类名 |
目标id |
target_id |
long |
变更数据的id |
变更信息 |
info |
text |
变更信息 |
操作人 |
operatorId |
long |
|
创建时间 |
createtime |
date |
|
消息通知
- 用户做出某一行为时,要给其发送消息,像用户购物发货;或者平台要向用户告知,像平台促销活动。有些信息保留到用户的信息记录中,我们称之为持久化信息;有些信息不必让用户看到以及匿名的信息,我们称之为非持久化信息。
- 消息通知涉及4张表:模板表、消息表,我的消息表,消息记录表
模板表:发送用户消息的模板内容,以及发送消息的渠道
消息表:记录发送后持久化消息的内容
我的消息表:记录消息的接收者,已读状态,与消息表关联。
消息记录表:记录非持久化,持久化的消息。
模板
- 模板有短信,微信,app,邮件,持久化等
- 持久化模板主要用于保存消息记录,用来在“我的消息”记录展示
- 模板有category信息,对模板进行分类。比如系统,购物,惠民,商户。运营制订。
/ |
模板号 |
标题 |
概要 |
内容 |
链接 |
app |
|
要 |
|
要 |
|
wx |
要 |
|
|
|
|
短信 |
要 |
|
|
|
|
邮件 |
|
要 |
|
要 |
|
持久化消息 |
|
要 |
要 |
可选择 |
可选择 |
表结构增加字段
列名 |
字段 |
类型 |
说明 |
app消息模板标题 |
app_tpl_title |
varchar(100) |
|
app消息模板文本 |
app_tpl_text |
varchar(1000) |
|
邮件消息模板标题 |
mail_tpl_title |
varchar(100) |
|
邮件消息模板文本 |
mail_tpl_text |
varchar(1000) |
|
分类 |
category |
varchar(50) |
|
持久化消息模板标题 |
app_tpl_title |
varchar(100) |
|
持久化消息模板概要 |
app_tpl_summary |
varchar(1000) |
|
消息模板文本 |
persist_tpl_text |
varchar(1000) |
|
消息模板链接 |
persist_tpl_url |
varchar(1000) |
|
我的消息
表结构
列名 |
字段 |
类型 |
说明 |
id |
id |
long |
|
相关类型 |
relevant_type |
varchar(50) |
关联角色类型,如用户、服务员、商户 |
相关id |
relevant_Id |
long |
关联角色编号 |
messageId |
message_Id |
long |
关联消息表 |
已读 |
has_read |
boolean |
true:已读,false:未读 |
创建时间 |
createtime |
datetime |
|
状态 |
status |
int |
|
消息
表结构
列名 |
字段 |
类型 |
说明 |
id |
id |
long |
|
类型 |
type |
int |
群发,单发 |
标签 |
tag |
varchar(50) |
标记不同的群体。类型群发专用 |
分类 |
category |
varchar(50) |
同模板的category |
标题 |
title |
varchar(1000) |
|
内容 |
content |
varchar(1000) |
|
网址 |
url |
varchar(1000) |
|
定时发送时间 |
sendtime |
datetime |
发送时间表示在未来某一个时间发送该消息,适用于群发 |
创建时间 |
createtime |
datetime |
|
消息推送
- 记录用户持久化,非持久化的消息
- 表结构待整理,由于发送消息是动态变化的,无法适应于群发消息
表结构
列名 |
字段 |
类型 |
说明 |
id |
id |
long |
|
接收者 |
receivers |
varchar(5000) |
接收者,json格式 |
渠道 |
channel |
varchar(50) |
app,WX,SMS,MAIL |
模板 |
tpl |
varchar(5000) |
模板相关信息,json格式 |
过期时间 |
expiredtime |
datetime |
默认三分钟,运营定 |
创建时间 |
createtime |
datetime |
|
状态 |
status |
int |
已发送、未发送、发送失败 |
消息通知业务逻辑
- 消息通知流程
1)通知消息队列要给某一用户或某一群体发送消息
2)消息记录在“消息推送”表中,状态为未发送
3)消息发送
4)发送成功后,如果是app推送的,记录在“我的消息”,“消息”表中,表中标题字段存放的是持久化消息的模板
5)“消息推送”表中,状态为已发送
6)如果发送失败,“消息推送”表中,状态为发送失败
- 消息已读流程
1)“我的消息”、“系统消息”数据新建时,对应的“消息状态”为空,所以消息为未读状态
2)用户点击消息后,后台在“消息状态”新增对应的数据,则代表消息已读
- “消息推送”一项作用
当消息的状态为未发送、发送失败,可以再一次向用户发送。可以满足不是非常及时的消息通知。
操作行为记录
业务逻辑
- 用来记录数据的新增,更改,删除,导入导出的操作行为
- 当表中关键的信息变更时,需要记录变更的信息
使用注解做 在service的update方法上使用注解
更新数据时,大家要养成使用service的update方法
- 变更信息的格式:json类型
列名 |
字段 |
类型 |
说明 |
id |
id |
long |
|
相关类型 |
relevant_type |
varchar(50) |
操作角色类型,如用户、服务员、商户,运营人员 |
相关id |
relevant_Id |
long |
操作角色编号 |
bizType |
biz_type |
varchar(50) |
操作对象 |
bizId |
biz_id |
long |
|
操作行为 |
action |
varchar(50) |
create,update,delete,import,export |
输入文本 |
input_content |
text |
json格式,数据变更前的结果 |
输入附件 |
input_attach |
varchar(200) |
json格式,{name:文件名,url:文件绝对路径} |
操作结果 |
result |
boolean |
|
输出文本 |
output__content |
text |
json格式,数据变更后的结果 |
输出附件 |
output_attach |
varchar(200) |
json格式,{name:文件名,url:文件绝对路径} |
创建时间 |
createtime |
datetime |
|
例子
类型 |
bizType |
bizId |
操作行为 |
输入文本 |
输入文本附件 |
操作结果success |
结果内容 |
结果内容附件 |
提现文件导出 |
withdraw |
|
export |
|
|
true |
|
路径名 |
提现文件导入成功 |
withdraw |
|
import |
|
路径名 |
true |
|
|
提现文件导入失败 |
withdraw |
|
import |
|
路径名 |
false |
{数据格式} |
|
用户地址更改 |
user |
userId |
update |
{数据格式} |
|
true |
{数据格式} |
|
思考问题
* 群发动态内容如何实现
* 消息推送表结构需要更改