发表于: 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.了解真是需求


返回列表 返回列表
评论

    分享到