发表于: 2018-02-26 21:27:47
1 497
今日完成
1.分解需求
(1)构建项目的整体架构
web
1.前台polyFinance-home-web:
登录注册,银行卡管理,消息中心,查看交易流水,查看产品列表,查看产品详情,产品投资,产品续投
2.后台polyFinance-admin-web:
用户管理,实名认证,产品管理,债权管理, 内容管理,消息管理, 银行管理,参数设置,意见反馈,版本管理,销量统计,后台管理
service
1.polyFinance-common-service:
短信模块,第三方存储模块,定时还款任务
2.polyFinance-home-service:
登录注册,银行卡管理,消息中心,查看交易流水,查看产品列表,查看产品详情,产品投资,产品续投
3.polyFinance-admin-service:
用户管理,实名认证,产品管理,债权管理, 内容管理,消息管理, 银行管理,参数设置,意见反馈,版本管理,销量统计,后台管理
core
polyFinance-home-core:
实体类对应的model和一些工具类(排序、转换等)
cache
使用redis缓存
DB
关系型数据库mysql
(2)开始分解需求
启动APP登录 / 注册 / 忘记密码 / 理财经理
1、作为用户,希望有启动页,可以使app打开时体验更好
2、作为用户,希望有引导页,可以帮助快速了解app功能特色
2、作为用户,希望能直接进入APP浏览推荐内容,可以快速了解APP
3、作为用户,希望能注册登录个人账号,可以体验APP更多功能
4、作为用户,希望能找回密码,可以避免账号损失
一.用户模块
1、作为用户,希望进入APP有引导页
2、 作为用户,希望能够登录/注册帐号
方案:用户注册需要发送验证码,有效期为15s,前端判断是否为空、格式、密码和确认密码是否相等,注册成功后跳转到实名认证,返回跳转到精品推荐;同时该页面下方有“立即注册”和“忘记密码”两个按钮跳转
3、 作为用户,希望登陆后在APP有个手势密码,增强安全性
方案:当用户登陆后,程序后台运行超过30s或关闭APP后需要手势唤醒;第一次绘制密码,然后输入重复密码,当两次不一致提示两次输入不一致,重新输入;设置完成后直接绘制之前设置的手势密码即可登录,否则提示密码错误;同时可以切换账号,重新输入账户密码登录,或者忘记手势密码,通过登录密码验证
4、 作为用户,希望当忘记密码了可以重置登录密码
方案:在用户登陆页有“忘记密码”按钮跳转,输入手机号获得验证码以验证用户真实身份,然后输入密码和确认密码传到后台重置;同注册一样,前端判断用户输入数据格式,为空等问题
我的模块
5、作为用户,希望登陆后有个“我的”模块,显示自己的实名情况、总资产和收益,能够跳转到和自己相关的银行卡管理、交易流水等模块
方案:将用户登陆后存储到session/或者memecache上的信息显示在“我的”模块上。
因为用户中涉及到的信息很多,所以要设计好用户表格有哪些字段。浏览完所有的需求后,用户的字段有。
id 自增长ID
user_serial_number 用户流水编号
name 名字
cellphone 手机号
ID_card 身份证号
email 用户邮箱
address 用户地址
login_password 用户登录密码(加密)
gesture_password 用户手势密码(加密)
trade_password 用户交易密码(加密)
verification 是否实名字段(0未实名 1已实名)
ID_card_facade_img_url 身份证正面照片url
ID_card_obverse_img_url 身份证反面照片url
asset 用户总资产
accumulated_income 用户累计收益
default_card_id 用户默认银行卡ID(如果没有则为-1)
user_status 用户账号状态(0冻结1正常)
message_checked 是否有未读消息(0无 1有)
create_by 创建人ID
update_by 更新人ID
update_at 数据更新时间
create_at 数据创建时间(用户注册时间)
(3)理解债券与匹配。
如李铁柱需要借用1万元,那么就从系统的投资中根据一定的规则(时间或者金额)找对应的投资金额,对其进行匹配。
(4)理解形式参数在方法中的传递
/*
参数传递都是值的拷贝。
*/
class Person {
String name;
public Person(String name) {
this.name = name;
}
}
public class demo2 {
static void changeStr(String p) {
p = "String change";
}
static void changePerson(Person a) {
a = new Person("p change");
}
static void changePerson1(Person a) {
a.name = "p1 change";
}
public static void main(String[] args) {
String a = "aaadAAxxxxx";
Person p = new Person("p");
Person p1 = new Person("p1");
changePerson(p);
changePerson1(p1);
System.out.println(p.name);//p, changePerson中改变的是形参,不会改变参数本身。
System.out.println(p1.name);//p1 change ,调用p的方法会啊指向同一个对象。
changeStr(a);
System.out.println(a);//aaaAAxxxx , 因为String 是被finnal修饰的,不能改变值了。
}
}
明日计划
1.开始写方案
遇到问题
1.需求理解不清晰
收获
1.了解真是需求
评论