公司APP近期希望内置一个钱包功能、相当于微信零钱一样、
可以充值,提现,软件内部支付
另外会涉及充值送钱的功能,但是充值送的钱在提现和消费方面都有限制;
比如充值1000送200,账户里面有1200;提现的时候只能提现(提现额-200),
当(提现额-200)小于0的时候不能提现。比如还剩150就不能提现,但是150还能
继续支付使用;此时又有充值500送100的活动,如果提现的话,就只能提现500元;
但是你再次消费的时候,会先消费上次剩余的150元;
主要是想请教下各位这个在设计的时候应该注意啥?
初步是想设计成 主账户(充值的钱)和副账户(送的钱)
优先使用主账户的钱;但还是会有一些其他的矛盾,希望各位
大拿们能说说自己的看法、谢谢....
给你一个简单的 实现 例子吧,命名上我用中文说明,这样好说明点
数据库:
moneytb:金钱的表名称 costtb:消费记录表
mid:钱表的id uid:用户账号id cid:消费记录id
mtm:时间 ctm:消费时间
mnum:金钱数量
mtype:金钱的类型(这个你可以自己定义,可以定义一个二进制的规则也可以是简单是数字,来标示是否能体现和消费等)
mclevel:这个就是花费的等级,这个值一直往上加。
表 moneytb(mid,uid,mnum,mrule,mclevel,mtm)
costtb(cid,uid,mid,cnum,ctm)
mclevel这个值的更新需要注意一点,例如第一次充值的设置为1,第一次送的设置为2,第二次充值的设置为3,第二次送的设置为4
新添加的钱的mid也是增加的,这个会和uid绑定,所以不会乱。
接下来就是上层 怎么处理这个问题了,在消费的时候 你根据uid可以查询moneytb 里面的 mnum>0 的数量出来,并且按照mclevel排序。
这样你拿到的数据就是你需要消费的 钱的优先级了。 数据的更新也不难,因为有mid你可以直接更新,记住在costtb里面添加消费记录,以便以后查询交易记录使用,
http://www.cocoachina.com/bbs/read.php?tid-320972.html
https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1
http://www.phpstudy.net/c.php/9052.html
个人感觉这个没有那么多强制性吧,具体还得看需求。 说说我的看法吧,
可以在钱这个里面添加一个类型,来标示是充值的还是赠送的,当然这个设计的前提的钱和账号是2张表,这个的好处是以后万一有购物卡或者是什么体验金有或者是现金券都可以 在 钱这个表里面处理。每一种类型的钱对于一些权限(可以消费,可以提取,有使用期限等等)。
当然 如果你的app只有充值返现和消费两种情况,那么你的主副账号设计也可以,甚至 不需要主副账号,直接在现有的表里面添加一个赠送金额就行了。其他的就是数据库查询更新和你的app逻辑处理问题了。
http://www.023tx.me/?agenturl=a795ACotQKJFbHs2Dj0t15xt0tbcagD9Eb0OM82BaTc