资源描述
客户管理系统软件详细设计
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
客户信息管理系统详细设计说明书
程序系统的结构
功能模块结构图
Ø 项目结构设计
项目包
说明
文件夹
说明
文件
说明
com.client。pojo
存储项目中要用到的对象
Src
存放Java类
ApplicationContext.xml
Spring和Hibernate合并后的配置文件
com.client。dao
存储访问数据库的接口
Webroot
用于存放网页文件(jsp/html)
Webroot/WEB—INF/struts-config。xml
Struts的配置文件
com.client。daoimpl
存储数据库接口的实现类
Webroot/html
专门存放Jsp页面
com.client.biz
存储业务逻辑接口
com。client.bizimpl
存储业务逻辑接口的实现类
com.client.struts
存储struts的相关文件
com。client.struts。action
存储Struts中的
Action
com.client.other
存储项目中要用到的相关类。例:MD5
采用MVC模式
Ø 页面设计
页面
功能
关联
属于模块
备注
/cust/list.jsp
管理客户信息列表
/cust/linkman。jsp
/cust/edit.jsp
/cust/activities.jsp
/cust/orders。jsp
客户信息管理
实现了分页效果
/cust/edit。jsp
修改客户信息
/cust/list。jsp
客户信息管理
—-——
/cust/linkman。jsp
管理客户联系人
/cust/linkman_edit。jsp
/cust/linkman_add.jsp
/cust/list。jsp
客户信息管理
分页效果
/cust/linkman_edit。jsp
修改联系人
/cust/linkman.jsp
/cust/list。jsp
客户信息管理
-—-
/cust/linkman_add.jsp
添加联系人
/cust/linkman。jsp
/cust/list.jsp
客户信息管理
--—
/cust/orders。jsp
显示历史记录列表
/cust/list.jsp
客户信息管理
分页效果
/cust/orders_detail。jsp
显示历史记录详细信息
/cust/orders。jsp
客户信息管理
---
/cust/activities。jsp
管理公司与客户的交往记录
/cust/list。jsp
客户信息管理
分页效果
/cust/activities_edit.jsp
编辑交往记录
/cust/activities。jsp
客户信息管理
--—
/cust/activities_add.jsp
添加交往记录
/cust/activities.jsp
客户信息管理
———
/lost/ list。jsp
管理流失客户信息列表
/lost/relay。jsp
/lost/ confirm.jsp
客户流失管理
分页效果
/lost/ confirm.jsp
将流失客户列入“确定流失”
/lost/ list.jsp
客户流失管理
……
/lost/relay.jsp
将客户列入“暂缓流失"
/lost/ list.jsp
客户流失管理
……
……
……
……
……
……
Ø Action设计
Action
功能
关联对象
关联页面
备注
UserAction
对用户的相关操作(登录、验证、新增、修改、删除……)
IuserBiz
UserBizImpl
ISysUserDAO
SysUserDAO
MD5
Login.jsp
Cust/list.jsp
Errors。jsp
继承DispathAction
CstAction
对客户的相关操作(查询、新增、修改、删除……)
IcstBiz
CstBizImpl
ICstCustomerDAO
CstCustomerDAO
Cust/list。jsp
Errors。jsp
Cust/ inkman。jsp
继承DispathAction
……
……
……
……
……
Ø 数据库设计
客户信息表(Cst_Customer)
列名
类型
是否为空
主外键
备注
cust_no
char
Not
ok
客户编号
cust_name
nvarchar
Not
客户公司名称
cust_region
nvarchar
地区
cust_manager_id
int
Not
客户经理编号
cust_manager_name
nvarchar
Not
客户经理名字
cust_level
nvarchar
客户等级
cust_level_label
nvarchar
等级名称
cust_satisfy
int
Not
客户满意度
cust_credit
int
Not
客户信用度
cust_addr
nvarchar
Not
客户地址
cust_zip
nvarchar
邮政编码
cust_tel
nvarchar
Not
电话
cust_fax
nvarchar
传真
cust_website
nvarchar
网址
cust_licence_no
int
营业执照注册号
cust_chieftain
nvarchar
法人
cust_bankroll
Float
注册资金(万元)
cust_turnover
Float
年营业额
cust_bank
nvarchar
Not
开户银行
cust_bank_account
nvarchar
Not
银行帐号
cust_local_tax_no
nvarchar
Not
地税登记号
cust_national_tax_no
nvarchar
国税登记号
cust_status
nvarchar
状态
联系人信息表(cst_linkman)
列名
类型
是否为空
主外键
备注
lkm_id
Int
Not
主键
联系人编号
lkm_cust_no
char
Not
外键(CstCustomer。Cust_no)
对应的客户编号
lkm_cust_name
nvarchar
Not
客户名
lkm_name
nvarchar
Not
联系人名称
lkm_sex
nvarchar
Not
联系人性别
lkm_postion
nvarchar
联系人职位
lkm_tel
nvarchar
Not
联系电话
lkm_mobile
nvarchar
手机
lkm_memo
nvarchar
备注
交往记录信息表(cst_activity)
列名
类型
是否为空
主外键
备注
atv_id
Int
Not
主键
交往记录编号
atv_cust_no
Char
Not
外键(CstCustomer。Cust_no)
对应的客户编号
atv_cust_name
nvarchar
Not
客户名
atv_date
nvarchar
Not
交往时间
atv_place
nvarchar
Not
交往地址
atv_title
nvarchar
Not
交往主题
atv_desc
nvarchar
备注
历史记录信息表(cst_lost)
列名
类型
是否为空
主外键
备注
odr_id
Int
Not
主键
历史记录编号
odr_customer
Char
Not
外键(CstCustomer。Cust_no)
对应的客户编号
odr_date
nvarchar
Not
历史记录时间
odr_addr
nvarchar
Not
交易时间
odr_status
nvarchar
Not
交易状态
Ø 各类的详细设计
包名
类
接口
属性
方法
参数
返回类型
备注
com。client.pojo
CstCustomer
custNo
继承ActionForm
custName
custRegion
custManager_id
custManagerName
custLevel
custLevelLabel
custSatisfy
custCredit
custAddr
custZip
custTel
custFax
custWebsite
custLicenceNo
custChieftain
custBankroll
custTurnover
custBank
custBankAccount
custLocalTaxNo
custNationalTaxNo
custStatus
CstLinkman
lkmId
继承ActionForm
lkmCustNo
lkmCustName
lkmName
lkmSex
lkmPostion
lkmTel
lkmMobile
lkmMemo
CstLost
odr_id
继承ActionForm
odr_customer
odr_date
odr_addr
odr_status
CstActivity
atv_id
继承ActionForm
atv_cust_no
atv_cust_name
atv_date
atv_place
atv_title
atv_desc
com.client.biz
ICstBiz
updateCst
CstCustomer(客户类的对象)
boolean
更新客户信息
findCstsByCst
CstCustomer(客户类的对象)
List(CstCustomer)
用于查询客户列表
findCstsByPS
pagesize(每页显示的条数)
List(CstCustomer)
用于翻页查询
pagenum(第几页)
getpagenum
pagesize(每页显示的条数)
int(页码)
用于判断是否存在的页码,如果没有,就显示第一页或最后一页
pagenum(第几页)
ILinkMan
addLink
CstLinkman(联系人对象)
新增联系人
delete
int linkmanid联系人的ID
根据联系人主见删除联系人
getLinks
String custname客户名称
List(CstLinkman)
根据客户名称获得联系人列表
update
CstLinkman(联系人对象)
更新联系人信息
ILostBiz
getLostsByCustName
String custname客户名称 int size输出条数 int page页码
List(CstLost)
分页查询
update
int lostid流失客户ID String 流失说明 String 流失类型
修改流失类型和流失原因
findCount
int
查询总的条数
IOrderBiz
findCount
int
查询总的条数
getOrdersByCustName
String custname客户名称 int size输出条数 int page页码
List(CstOrder)
根据客户名称分页查询
getpagenum
int size,int pagenum
int
根据条数和页码获得存在的页码
IActiveBiz
addActive
CstActivity(交往记录)
添加交往记录
delete
int id交往记录的ID
根据主键删除交往记录
getActives
String custname客户名称
根据客户名称查询交往记录列表
update
CstActivity(交往记录)
更新交往记录信息
com.client。bizimpl
CstBizImpl
ICstCustomerDAO
updateCst
CstCustomer(客户类的对象)
boolean
更新客户信息
findCstsByCst
CstCustomer(客户类的对象)
List(CstCustomer)
用于查询客户列表
findCstsByPS
pagesize(每页显示的条数)
List(CstCustomer)
用于翻页查询
pagenum(第几页)
getpagenum
pagesize(每页显示的条数)
int(页码)
用于判断是否存在的页码,如果没有,就显示第一页或最后一页
pagenum(第几页)
LinkManImpl
ICstLinkManDAO
addLink
CstLinkman(联系人对象)
新增联系人
delete
int linkmanid联系人的ID
根据联系人主见删除联系人
getLinks
String custname客户名称
List(CstLinkman)
根据客户名称获得联系人列表
update
CstLinkman(联系人对象)
更新联系人信息
LostBizImpl
ICstLostDAO
getLostsByCustName
String custname客户名称 int size输出条数 int page页码
List(CstLost)
分页查询
update
int lostid流失客户ID String 流失说明 String 流失类型
修改流失类型和流失原因
findCount
int
查询总的条数
OrderBiz
IOrderDAO
findCount
int
查询总的条数
getOrdersByCustName
String custname客户名称 int size输出条数 int page页码
List(CstOrder)
根据客户名称分页查询
getpagenum
int size,int pagenum
int
根据条数和页码获得存在的页码
ActiveBiz
IActiveDAO
addActive
CstActivity(交往记录)
添加交往记录
delete
int id交往记录的ID
根据主键删除交往记录
getActives
String custname客户名称
根据客户名称查询交往记录列表
update
CstActivity(交往记录)
更新交往记录信息
com。client.dao
ICstCustomerDAO
findAll
List(CstCustomer)
查询所有客户信息
findCstsByPS
pagesize(每页显示的条数)
List(CstCustomer)
翻页查询
pagenum(第几页)
findCstsByCst
CstCustomer(客户类的对象)
List(CstCustomer)
模糊查询
ICstLinkManDAO
addLink
CstLinkman(联系人对象)
新增联系人
delete
int linkmanid联系人的ID
根据联系人主见删除联系人
getLinks
String custname客户名称
List(CstLinkman)
根据客户名称获得联系人列表
update
CstLinkman(联系人对象)
更新联系人信息
ICstLostDAO
getLostsByCustName
String custname客户名称 int size输出条数 int page页码
List(CstLost)
分页查询
update
int lostid流失客户ID String 流失说明 String 流失类型
修改流失类型和流失原因
findCount
int
查询总的条数
IOrderDAO
findCount
int
查询总的条数
getOrdersByCustName
String custname客户名称 int size输出条数 int page页码
List(CstOrder)
根据客户名称分页查询
getpagenum
int size,int pagenum
int
根据条数和页码获得存在的页码
IActiveDAO
addActive
CstActivity(交往记录)
添加交往记录
delete
int id交往记录的ID
根据主键删除交往记录
getActives
String custname客户名称
根据客户名称查询交往记录列表
update
CstActivity(交往记录)
更新交往记录信息
com。client.daoimpl
CstCustomerDAO
findAll
List(CstCustomer)
查询所有客户信息
findCstsByPS
pagesize(每页显示的条数)
List(CstCustomer)
分页查询
pagenum(第几页)
findCstsByCst
CstCustomer(客户类的对象)
List(CstCustomer)
模糊查询
CstLinkManDAO
addLink
CstLinkman(联系人对象)
新增联系人
delete
int linkmanid联系人的ID
根据联系人主见删除联系人
getLinks
String custname客户名称
List(CstLinkman)
根据客户名称获得联系人列表
update
CstLinkman(联系人对象)
更新联系人信息
CstLostDAO
getLostsByCustName
String custname客户名称 int size输出条数 int page页码
List(CstLost)
分页查询
update
int lostid流失客户ID String 流失说明 String 流失类型
修改流失类型和流失原因
findCount
int
查询总的条数
OrderDAO
findCount
int
查询总的条数
getOrdersByCustName
String custname客户名称 int size输出条数 int page页码
List(CstOrder)
根据客户名称分页查询
getpagenum
int size,int pagenum
int
根据条数和页码获得存在的页码
ActiveDAO
addActive
CstActivity(交往记录)
添加交往记录
delete
int id交往记录的ID
根据主键删除交往记录
getActives
String custname客户名称
根据客户名称查询交往记录列表
com。client。struts。action
CstAction
ICstBizImpl
topage
ActionForward
转发到客户列表
seachCst
ActionForward
转发到客户列表
update
ActionForward
转发到客户信息
ActiveAction
IActiveBiz
active
转发到交往记录列表
addActive
转发到交往记录列表
edit
转发到交往记录列表
delete
转发到交往记录列表
LinkAction
ILinkMan
addLink
转发到联系人列表
ICstBizImpl
delete
转发到联系人列表
update
转发到联系人列表
Link
转发到联系人列表
LostAction
ILostBiz
update
转发到流失客户列表
topage
转发到流失客户列表
seach
转发到流失客户列表
OrderAction
IOrderBiz
execute
转到历史记录列表
3程序1(标识符)设计说明
3。1程序描述
3.2功能及详细说明
l 客户信息列表
查询客户信息流程图
1。用户通过login。jsp页面进行登陆,然后通过ICstCustomerDAO接口中的FindCstsBy(S,P)的方法来查询第一页要显示的客户信息,ICstCustomerDAO中的实现类CstCustomerDAO来实现查询数据库中的CstCustomer表(Hibernate中是对象),然后再存入Session中,再进行跳转页面,显示客户信息列表。
l 客户信息列表
翻页流程图
2.翻页功能,用户可以通过点击list。jsp上面的翻页(第一页、上一页、下一页、最后一页)来查看客户的信息。
共5条记录 每页 条 第页/共1页 第一页 上一页 下一页 最后一页 转到页GO
l 搜索客户信息
用户可以填写要查询的项(客户编号、名称、地区(只选)、客户经理(只选)、客户等级(只选))来查询客户信息,当用户单击查询按钮时,根据提交的路径cst.do转到cstAction
中,通过cstAction中的pathpage属性来设置页面显示客户信息条数的大小(采用依赖注入),CstAction中的IcstBizImpl接口属性来查找客户信息。
伪代码:
CstCustomer cst=(CstCustomer)form;
List customers=ibi.findCstsByCst(cst);
request。getSession().setAttribute(”customers", customers);
request.getSession()。setAttribute("pagenum”,1);
return mapping.findForward(”go");
此处还用到了ActionForm自动封装.
l 修改客户信息
更新客户信息流程图
1.通过edit.jsp页面来编辑客户信息(其中客户编号不能编辑,地区、客户经理、客户等级、客户满意度、客户信用度是只选的,文本框后面有”*”号的为必填项),然后再进行保存,提示保存成功或失败!
l 联系人信息管理
1. 由客户信息列表通过url重写来将客户在客户列表中下标传给联系人的LinkAction,通过客户的信息来查找客户的联系人,修改联系人的流程:linkman.jsp——LinkAction(edit方法)——LinkBiz(update方法)--LinkBizImpl(update方法)——LinkDao(update方法)—-LinkDaoImpl(update方法).
2. 新增联系人,过程基本与修改联系人的相似,只是调用的方法有些不同.例如(update就对应add)
l 交往记录信息管理
1。ActiveAction通过从客户列表list。jsp页面传过来的index(客户在客户列表中的下标)来查询与客户相关联的第一页的交往记录(ActiveInfo),如何存入session中(actives),
在activelist。jsp页面中,循环显示,并可以分页显示。客户经理可以点击新建按钮来新增交往记录,输入项的设计和javascript的判断。通过保存按钮来进行保存,流程:addactive.jsp—-ActiveAction(add方法)—-ActionForm自动封装到form——ActiveBiz(add方法)—-ActiveBizImpl(add方法)——ActiveDao(add方法)——ActiveDaoImpl(add方法).
2.修改交往记录信息,流程与新增交往记录基本相同,就调用的方法有些不同,例如(add就对应update)
l 查看历史记录
1.历史记录列表时根据用户点击的客户来查询数据库的,在客户列表list。jsp页面中通过url重写传一个下标给OrderAction,然后根据客户信息来查询与之相关的历史记录。通过设置query的FirstResult和MaxResult来实现分页功能,用户可点击orders.jsp中的历史记录详情来查看此次历史记录的详细信息,流程:orders。jsp——OrderAction(lookup方法)--OrderBiz(getOrder方法)—-OrderBizImpl(getOrder方法)——OrderDao(getOrder方法)—-OrderDaoImpl(getOrder方法)。
3.3性能
3。4输人项
给出对每一个输入项的特性,包括名称、标识、数据的类型和格式、数据值的有效范围、输入的方式.数量和频度、输入媒体、输入数据的来源和安全保密条件等等.
3。5输出项
给出对每一个输出项的特性,包括名称、标识、数据的类型和格式,数据值的有效范围,输出的形式、数量和频度,输出媒体、对输出图形及符号的说明、安全保密条件等等。
3.7流程逻辑
用图表(例如流程图、判定表等)辅以必要的说明来表示本程序的逻辑流程。
3.8接口
用图的形式说明本程序所隶属的上一层模块及隶属于本程序的下一层模块、子程序,说明参数赋值和调用方式,说明与本程序相直接关联的数据结构(数据库、数据文卷)。
3。13测试计划
3.14尚未解决的问题
4程序2(标识符)设计说明
用类似设计程序1的方式,设计第2个程序乃至第N个程序的说明。
。.。.。。
22
展开阅读全文