发表于: 2018-03-06 21:38:15
1 660
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
主要是对项目进行方案的设计,完成了一半吧,聚金融内容还是挺多,,
晚上帮曹樾和全林解决BUG搞到11:30我也是醉了.....
具体的方案
所有数据使用jsontaglib构成json格式数据返回,具体数据字段因接口功能而异,构成详见接口文档。
后台:
用户管理
1、作为管理员,希望有一个用户列表,可以浏览所有用户
方案:调用查询用户列表接口(user),不带参数,排序方式按注册时间(由新到旧),根据page,size参数查询出相应数据。
2、作为管理员,希望能搜索用户信息,可以精确定位具体用户
方案:调用查询用户列表接口(user),带筛选参数,排序方式按注册时间(由新到旧),根据page,size参数查询出相应数据。
3、作为管理员,希望能冻结/解冻用户,可以防控用户作弊或减少账号被盗损失
方案:调用更新单个用户信息表接口(user),accounts_status参数表示账户状态(0代表正常,1代表冻结), 将user表中得该字段设置为1 。
4、作为管理员,希望能查看用户详细信息,可以浏览用户交易记录、投资记录,进入用户投资记录列表,点击出借合同编号或债权协议编号可查看相应合同协议
方案: (1)调用单个用户查询详情接口(tbl_user),带用户id参数,查询出用户详细信息 。
(2)根据用户ID在user_bank表中查出该用户的银行卡信息,再根据bank_list_id查询出银行信息,返回银行名称。
浏览用户交易记录:调用查看用户交易记录接口(接口中查询交易记录表trading_record中user_id = 用户id),带用户id参数,排序方式按交易时间由新到旧排序。
浏览用户投资记录:调用查询用户投资记录接口(接口中查询用户产品关联表invest_record),带用户id参数,排序方式按投资起息日期。
查看相应合同:调用查询合同接口(接口中查询投资记录表(tbl_investment)),带user_product_id参数,查询出合同相关信息,将数据传入到合同jsp页面中返回。
5、作为管理员,希望能修改用户手机号,可以帮助用户修改手机号
方案:调用更新单个用户信息表接口(user),带用户手机号参数。
6、作为管理员,希望能修改理财经理工号,可以帮组用户更换理财经理
方案:调用更新单个用户信息表接口(user),带理财经理工号参数。
7、作为管理员,希望能解绑银行卡,可以帮助用户解绑/更换银行卡
方案:调用更新单个银行卡信息表(user_bank)接口,
调用删除单个用户银行卡信息表(user_bank)接口,调用更新单个用户信息接口(user),更新user_bank_id字段,带参数用户id,user_bank_id。
8、作为管理员,希望能够查看用户实名审核记录
方案:调用查询用户表接口(user), 返回用户列表,带筛选参数,或者不带参数, 按照用户实名申请时间排序。
9、作为管理员,希望能够审核和取消实名,可以帮助用户审核并反馈审核结果或者取消实名操作。
方案:
审核实名功能
调用更新单个用户信息表接口(tbl_user),更新实名状态,identity_status 字段,带参数user_id 。
如果审核拒绝:更新被拒绝状态refuse_status,更新拒绝理由。
审核通过:实名状态是审核通过identity_status 字段,理由为空。
取消实名功能
调用更新单个用户信息表接口。
实现逻辑:更改user表中用户实名状态字段、默认银行卡字段、身份证字段、身份证正反面图片字段,删除user_bank表中该用户的相关记录。
内容管理
1、作为管理者,希望有个内容列表,可以浏览所有运营内容
方案:调用查询内容接口(content)取出所有内容记录,根据page,size参数取出响应数据,排序方式为按level字段(由大到小)。
2、作为管理者,希望能搜索内容信息,可以精确查找运营内容
方案:调用查询内容接口(content),根据筛选参数获取相应内容数据。
3、作为管理者,希望能上下线内容,可以控制运营内容在线与否
方案:调用更新内容接口(content),根据内容id、类型和是否上架参数(status),更新内容表(content)对应记录的上下架字段,同时要检查内容表中是否已有上架的内容记录,若有,先将其下架,否则当前记录不能上架成功(推荐banner除外)。
实现逻辑:首先根据内容类型参数判断要上线的内容是哪一种。如果是推荐banner,则直接更新上下架字段。如果不是,则首先在content表中找到该类型正在线上的那条记录,然后将该条记录的status字段置为草稿,最后将当前这条记录的status字段置为上线.最后两个操作为一个原子性操作,一个失败则整体操作都失败。
4、作为管理者,希望能新增/编辑运营内容,可以创建/编辑新旧运营内容
新增内容
方案:调用新增内容接口(content),根据内容对象参数在内容表里生成一条记录,如果要立即上线,则要要检查内容表中是否已有上架的内容记录,若有,先将其下架,否则当前记录不能上架成功(推荐banner除外)。
编辑内容
方案:调用更新内容接口(content),根据内容对象参数更新内容表中对应记录,如果要立即上线,则要要检查内容表中是否已有上架的内容记录,若有,先将其下架,否则当前记录不能上架成功(推荐banner除外)。
推荐banner部分
注:每组banner包含一张封面小图和内容大图,前台app展示所有组的封面,点击封面可查看具体内容大图详情。
方案:调用插入内容接口(content) , 根据内容对象参数在内容表里生成一条记录,如果要立即上线,则要要检查内容表中是否已有上架的内容记录,若有,先将其下架,否则当前记录不能上架成功.
5、作为管理者,希望能删除运营内容,可以清理错误或不再使用的运营内容
方案:调用删除内容接口(tbl_content),根据内容id参数删除内容表中对应记录
逻辑实现:在对表进行删除操作之前先判断,如果该条记录的状态为线上,那么就不能执行删除sql语句,否则就删除.对于banner图类型,即使状态是草稿,如果该条记录是封面,
那么也不能删除,必须先将其type字段变为1之后(编辑操作中更换封面),才能删除.删除记录同时删除第三方云存储中的图片url.
销量统计
1、作为管理者,希望能统计销量情况,可以实时了解产品总体运营状况
方案一:调用查询产品销量统计接口,统计count表中每种产品的销量,然后再统计当天截止目前的销量,最后根据不同产品构建一个list返回给前端。
关于产品购买人数的统计规则:当天除重,隔天计数,总数除重
实现逻辑:
每天定时,计算每一个产品的当天的销量情况,在COUNT表中生成一条记录
先查询出所有产品ID,再根据产品ID到sales表中将每个产品对应的购买人数,购买次数,购买金额累加后返回,再统计出当天投资的总投资记录。
接着,将该投资记录通过产品ID划分为几个小List,最后,分别对这些List统计购买人数(去重),购买次数,购买金额。
两类数据相加即为该产品的实时销量
这里解决一个获取到当天凌晨的时间戳的方法,使用calendar类.
package com.controller;
import java.util.Calendar;
import java.util.Date;
/**
* @author: Arike
* @program: task2_final
* @description: ddd
* @create: 2018/3/6 14:54
*/
public class test {
public static void main(String[] args) {
Calendar in = Calendar.getInstance();
in.setTime(new Date());
in.set(Calendar.HOUR_OF_DAY,0);
in.set(Calendar.MINUTE,0);
in.set(Calendar.SECOND,0);
in.set(Calendar.MILLISECOND,0);
System.out.println(in.getTime().getTime());
}
}
2、作为管理者,希望能搜索产品名称或代号,可以精确查找产品对应销量
方案:调用查询产品销量统计接口(count),根据筛选参数查询对应产品的销量数据并统计,最后构建一条数据返回给前端。实现逻辑同上。
3、作为管理者,希望能查看每种产品的详细销量情况,可以帮助分析用户行为和产品之间的关系
方案:调用查询产品销量统计接口(count),带产品ID参数,在count表中查出该产品的销量统计,然后再统计当天截止目前的销量,最后构建一个list返回给前端。
后台管理
希望能对后台进行相关账号系统管理,可以对后台策略进行调整
有账户管理,修改密码,角色管理,模块管理四个模块,通过对这几个模块的操作,可以对后台管理人员进行调整
方案:通过四个表(admin, role,module,role_authority)的增删改查对后台进行管理.需要注意的是role的authority字段是一个数组,存放的是模块的id.
产品管理
1、作为管理者,希望有个产品列表,可以浏览所有产品
方案:调用查询产品列表接口(product),从product表中取出所有产品数据。精品推荐的产品在最前(推荐顺序order字段),默认按
.最新编辑时间倒序排序。
2、作为管理者,希望能搜索产品信息,可以精确查找产品
方案:调用查询产品列表接口(product),根据筛选参数从product表中取出对应产品数据,按order字段和最新编辑时间倒序排序。
3、作为管理者,希望能上下架产品,可以控制产品在售停售
方案:调用产品信息更新接口(product),根据产品id和上下架参数更新表中对应数据字段值。
4、作为管理者,希望能新增产品,可以创建出售新产品
方案:调用产品新增接口(product),根据产品对象参数,在product表中生成一条记录。
逻辑实现:新增保存后,默认产品状态为停售。
5、作为管理者,希望能编辑产品,可以更改老产品的部分属性
方案:调用产品信息更新接口(product),根据产品对象参数更新product表中对应数据。
6、作为管理者,希望能调整推荐产品排序,可以使前台精品推荐页的推荐产品按指定顺序切换
方案:调用产品信息更新接口(product),更改product表中推荐产品数据的order字段值。具体实现逻辑与内容管理拖拽排序相同。order字段只用于精品推荐产品的排序,产品没有删除操作,因此order字段值一定是连续的,前端无论如何拖拽(比如将普通产品拖拽到推荐产品之间),最终只传递推荐产品的顺序数组,第二次刷新页面查看时,精品推荐产品仍在最前。
7、作为管理者,希望能对新手产品进行限购,可以使用户(真实身份)仅能购买一次新手产品
方案:产品有限购字段值,新增或编辑产品时可以设置相应产品是否限购,调用接口时更改limited字段的值,如果有限制金额,则同时更改limited_capital_amount字段.
****下架的产品不影响已经购买的产品,但不可续投
方案:首先,用户点击续投之后,在用户产品关联表中记录一条记录(记录状态为续投),在产品点击下架后,同时根据用户id和产品id以及状态为已续投的参数,找到用户续投记录。
接着,根据续投记录ID,找到续投记录对应的原投资记录,更改available字段为无效,更改again_investment_id字段为-1。
最后,删除续投记录
明天计划的事情:(一定要写非常细致的内容)
把剩下的方案搞完.
遇到的问题:(遇到什么困难,怎么解决的)
师弟们的很多错误都是因为配置的缺失或者字母的大小写没注意导致的错误,
所以说啊,人还是要仔细才可以.
收获:(通过今天的学习,学到了什么知识)
复习了calendar类,并且在帮助师弟解决问题的时候复习了以前的知识.
评论