forked from projectLib/NETCTOSS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaccount.txt
122 lines (115 loc) · 4.33 KB
/
account.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
1.需求介绍
1)业务账号是客户用来登录UNIX服务器的账号,
一个客户可以有多个业务账号。
2)为了向客户的多个业务账号收费,会给客户
分配一个用于统一收费的账号,即账务账号。
一个客户只能有一个账务账号,与身份证绑定。
3)账务账号与业务账号具有一对多的关系。
*2.查询功能
1)分析账务账号查询与资费模块查询的区别
--账务账号有搜索功能,资费模块没有
--账务账号的分页有首页、末页,资费模块没有
--以上2个区别中,第一个区别是难点,第二个区别容易解决
2)开发思路
--参考资费模块的查询功能,实现账务账号的查询,
先不管账务账号的搜索。
a.DAO
--创建实体类Account
--AccountDao.findByPage()
--AccountDao.findRows()
--AccountMapper.xml中实现上述方法
b.Controller
--增加查询业务方法,实现查询功能
c.JSP
--在table中循环输出当前页的数据
--循环输出页码等信息
*--在查询功能的基础上,增加搜索功能。
a.需要在搜索的结果基础上进行分页,因此应该
先搜索再分页
b.因此搜索条件应该加到分页SQL最内层子查询中。
c.注意findRows中也需要加上搜索条件,保证它查询到
的数据条目数与findByPage是一致的。
d.status==0这个EL表达式中,会先将status字符串转型
成整数再与0比较,若status=""则EL会将它转型为
0,此时该表达式将返回true。
所以,如果搜索条件中状态下拉选中的全部选项
value="",并按照此条件搜索时,返回的status
为"",导致status==0成立,因此开通状态的选项
将被设置为默认勾选。
e.每次点搜索时,应该重新回到第1页,所以在表单中
增加一个hidden,用它给currentPage传值,并且
传入的是固定值1.
*3.状态维护
1)业务说明:
状态维护是通过开通、暂停、删除按钮对账务账号的状态字段,
以及对应日期加以修改。
状态维护在开发步骤上,与资费删除一致,但最终执行的不是
delete语句,而是update语句。
有些企业的数据十分重要,在任何情况下都不希望真正删除数据,
因此从数据的完整性、可追溯性上考虑,在删除时仅仅是将数据
标识为删除的状态,而并不是真正删除它。
2)开通(参考暂停自行完成)
a.开通时,将状态改为开通态0,并且将暂停时间清空,即
update account set status='0',
pause_date=null where account_id=?
b.开通态的数据,要显示[暂停][修改][删除]
3)暂停(课上要写)
a.暂停时,将状态改为暂停态1,并且将暂停时间设置为
系统时间,即
update account set status='1',
pause_date=syadate where account_id=?
开发步骤:
DAO中增加一个修改方法;
AccountController增加暂停业务方法;
将[暂停]按钮提交给暂停业务方法。
b.暂停态的数据,要显示[开通][修改][删除]
在页面上,根据数据的状态,来动态的显示其对应
的按钮。
c.暂停账务账号后,需要将其对应的全部业务账号暂停。
(待开发完业务账号暂停功能后实现)
4)删除(参考暂停自行完成)
a.删除时,将状态改为删除态2,并且将删除时间设置为
系统时间,即
update account set status='2',
close_date=sysdate where account_id=?
b.删除态的数据,不显示任何按钮
c.删除账务账号后,需要将其对应的全部业务账号删除。
(待开发完业务账号删除功能后实现)
4.新增功能
1)基本的开发思路参考资费新增
2)新增时状态默认为开通态0,创建时间默认为系统时间。
3)保存时对日期数据的处理
--保存时,如果表单中存在日期类型的数据,则默认该数据
不能为空,否则框架会报错。
--该问题产生的原因是,Spring框架对日期类型参数的处理
不够完善。实际上,在提交表单时,Spring框架会自动的
将表单中的数据注入给Controller业务方法里的参数,
而对于不同类型的参数,Spring分别提供了不同的处理
器(类)来专门处理该类型的参数。那么对于日期类型
Spring有默认的日期类型处理器,可以用于将表单中的、
日期字符串转换成java.sql.Date,该处理器要求传入的
日期字符串不为空,否则报错。
--要想解决这个问题,需要做如下操作
a.需要创建一个新的日期类型处理器,来替换默认的日期
处理器,解决传入空置的问题。
b.注册该处理器,使得Spring在处理日期时,调用自定义
处理器处理。
4)客户端验证
--重点讲解身份证的校验
a.在输入完身份证,光标移除时校验,即onblur时。
b.首先校验身份证不能为空
c.校验身份证号的格式,使用正则表达式
d.从身份证中截取出生日,给生日字段赋值
--其他字段的校验,大家自己尝试写一写
5)可选项的处理
页面上既有必输项,也有可选项,
当保存时如何写insert语句?
写一个完整的insert语句,包括所有的必输项和可选项
字段即可,如果可选项没有输入内容,则传入的参数为null,
那么按照null来插入是没有问题的。
6)推荐人身份证号
该字段的处理需要使用异步请求,现在还没讲如何在
Spring中使用异步通讯技术,因此暂时不处理。
5.修改功能
1)参考资费修改完成
2)先不处理推荐人身份证号