Javaweb技术的汽车修理企业客户管理系统

演示地址

系统包层次设计

在该项目中,后台代码主要放在src文件夹中,在 src中又具体分不同的包,数据库的连接参数在hibernate.cfg.xml文件中,访问数据的控制类在controller.service包中,视图模型放在在model中,接口类放在bussiness.dao中,实现类放在bussiness.impl中。包结构如图5-4所示:

Javaweb技术的汽车修理企业客户管理系统_第1张图片

图 5-1 项目包结构图

 

包名(结构层次)

说明

business.basic

数据连接、访问,管理数据库连接类和访问基类

annotation

存放日志切面文件

bussiness.dao

业务逻辑设计层,管理业务逻辑设计接口

bussiness.impl

业务逻辑实现层,管理业务逻辑设计的实现类

bussiness.factory

业务逻辑的工厂层,管理业务逻辑的组装工厂类

Controller.service

业务逻辑控制层,管理用于与页面进行交互的控制类

model

实体层,管理表实体类和视图实体类

servlet.filter

网站过滤器包,管理网站过滤器类

util

工具类包,管理系统中的工具类

test

测试包,测试文件存放位置

Common.properties

公共类包,管理公共类

表 5-1 项目结构说明表 

命名规则:

    1. 项目的名称采用与内容相关的单词首字母大写完成,多个单词的采用驼峰命名法,即首字母大写其余小写。如RepairWeb;
    2. 项目中的包名的每个字母都是小写。如controller;
    3. 项目中的类名用与内容符合的单词大写首字母,若一个单词无法完整表达,则命名和项目名一样。如:SysUserController。
    4. 项目中的变量名和方法名的命名与类名不同的是,第一个单词的首字母需要小写,其余单词的首字母需要大写。如updateUser。
    5. 常量名都大写。如SUCCESS。

5.2 系统项目规范

5.2.1数据库的命名规范

      1. 数据库的命名采用与之相关的一个单词或多个单词,并且单词首字母大写+“DB”完成,如RepairCustomerMSDB;
      2. 数据库中表的命名用“T_”+与它内容相关的单词首字母大写完成,如T_User;
      3. 数据库中视图的命名采用“V_” +与内容相关的单词首字母大写完成,如V_User;

5.2.2项目文件命名规范

项目文件命名规范如下表5-2所示:

 

标识符

说明

T实体类名

表实体类,如T_User表的实体类为TUser

V实体类名

视图实体类,如V_User视图的实体类为VUser

业务逻辑类名DAO

业务逻辑接口类,如UserDAO

业务逻辑类名Impl

业务逻辑实现类,如UserDAOImpl

控制类类名controller

业务控制类,如学生管理的控制类UserController

Jsp文件

业务类,如Login.jsp

表 5-2 项目文件名称命名规范

5.3数据库的实体设计

5.3.1数据库背景

  1. 数据库名称:汽车修理企业的客户管理系统
  2. 数据库名:RepairCustomerMSDB
  3. 数据库软件名称:SQL Server2008
  4. 用户名: sa
  5. 密码:123456
  6. 访问连接:仅允许localhost连接

5.3.2术语定义

T_ : 表名前缀,表示table_

V_ : 视图前缀,表示view_

up_ : 存储过程前缀,表示userprocedure_

utri_ : 触发器前缀,表示usertrigger

pk_ : 表列的主键约束前缀

fk_ : 表列的外键约束前缀

ck_ : 表列的check约束前缀

def_ : 表列的默认约束前缀

5.3.3 表详细设计

(1) T_Customer 前端网站客户表

customeraccount设置为主键约束,作为前端网站用户登录账号

 

 

序号

字段名

数据类型

主键

非空

描述

1

customeraccount

INT

客户账号

2

pwd

VARCHAR

客户密码

3

Customername

VARCHAR

客户名称

4

tel

INT

客户电话

5

agend

VARCHAR

客户性别

6

state

BIT

客户账户状态

7

customercreatetime

DATETIME

客户创建时间

表 5-3 前端网站客户表

(2)T_Articles文章表

articlesid为主键约束

 

序号

字段名

数据类型

主键

非空

描述

1

articlesid

INT

文章id主键

2

title

VARCHAR

文章标题

3

articlestypeid

INT

文章类型

4

description

VARCHAR

文章描述

5

photoid

INT

文章标志图

6

state

BIT

状态

7

author

VARCHAR

文章作者

8

articlescreatetime

DATETIME

文章创建时间

表 5-4 网站文章表

(3)T_ArticlesContent文章内容表

articlescontentid为主键约束

 

序号

字段名

数据类型

主键

非空

描述

1

articlescontentid

INT

文章内容id

2

articlesid

INT

文章id

3

ordernum

INT

内容序号

4

photoid

INT

图片id

5

content

VARCHAR

内容

6

issign

INT

是否是标志图

7

state

BIT

状态

表 5-5 网站文章内容表

(4)T_ArticlesType网站文章类型表

articlestypeid为主键约束

序号

字段名

数据类型

主键

非空

描述

1

articlestypeid

INT IDENTITY

文章类型id

2

state

VARCHAR(50)

状态

3

articlestypename

VARCHAR(2)

文章类型名称

表 5-6 网站文章类型表

(5)T_Photo图片表

photoid为主键约束

 

序号

字段名

数据类型

主键

非空

描述

1

photoid

INT IDENTITY

照片id

2

path

VARCHAR(500)

路径

3

status

VARCHAR(10)

状态

表 5-7 图片表

(6)T_CustomerCar客户爱车表

customercarid为主键约束

 

序号

字段名

数据类型

主键

非空

描述

1

customercarid

INT

车辆id

2

series

VARCHAR

车系

3

chassisnumber

VARCHAR

底盘号码

4

brand

VARCHAR

品牌

5

manufacturer

VARCHAR

厂商

6

licenseplatenumber

VARCHAR

车牌号

7

engine number

VARCHAR

发动机号码

8

cartypeid

INT

车辆类型

9

photoid

INT

上传照片

10

state

BIT

状态

11

customercaraccount

INT

客户id

12

carname

VARCHAR

车系名称

5-8 客户爱车表

(7)T_Car车辆表

carid为主键约束

 

序号

字段名

数据类型

主键

非空

描述

1

carid

INT

车辆id

2

series

VARCHAR

车系

3

guideprice

DOUBLE

厂商指导价

4

brandid

VARCHAR

品牌

5

manufacturer

VARCHAR

厂商

6

licenseplatenumber

VARCHAR

销售状态

7

engine number

VARCHAR

上市时间

8

cartypeid

INT

车辆类型

7

photoid

INT

照片

10

state

BIT

状态

11

carname

VARCHAR

车系名称

5-9 车辆信息表

(8)T_Appointment预约表

titleid为主键约束

 

序号

字段名

数据类型

主键

非空

描述

1

appointmentid

INT

预约id

2

appointmenttypeid

INT

预约类型

3

appointmentname

VARCHAR

预约名称

4

appointmenttime

DATETIME

预约时间

5

customerid

INT

预约客户id

6

state

BIT

预约状态

7

customercreatetime

DATETIME

预约创建时间

8

remark

VARCHAR

备注

5-10 预约表

(9)T_User员工表表

userid为主键约束

 

序号

字段名

数据类型

主键

非空

描述

1

userid

INT

员工账号

2

userpassword

INT

员工密码

3

usertel

VARCHAR

员工电话

4

gender

VARCHAR

性别

5

realname

VARCHAR

真实姓名

6

state

BIT

状态

7

usercreatetime

DATETIME

创建时间

8

photoid

INT

 

 

员工照片

5-11 员工表

(10)T_Role后台管理员角色表

id为主键约束

 

序号

字段名

数据类型

主键

非空

描述

1

id

INT IDENTITY

角色编号

2

name

NVARCHAR(30)

角色名称

3

description

NVARCHAR(300)

描述

4

deepth

INT

深度

5

parentid

INT

父id

6

status

VARCHAR(10)

启用状态

表 5-12 管理员角色表

5.3.4 视图详细设计

(1) V_User后台管理员视图

查询员工信息

 

序号

字段名

描述

1

userid

员工账号

2

userpassword

员工密码

3

usertel

员工电话

4

gender

性别

5

realname

真实姓名

6

state

状态

7

usercreatetime

创建时间

8

photoid

员工照片

9

path

员工照片路径

表 5-13 员工信息视图

(2) V_Car 车辆视图

查询车辆信息

 

 

序号

字段名

描述

1

carid

车辆id

2

series

车系

3

guideprice

厂商指导价

4

brandid

品牌

5

manufacturer

厂商

6

licenseplatenumber

销售状态

7

engine number

上市时间

8

cartypeid

车辆类型

9

photoid

照片

10

state

状态

11

carname

车系名称

表 5-14 车辆信息视图

(3) V_Appointment预约视图 查询预约信息

 

序号

字段名

描述

1

appointmentid

用户id

2

appointmenttypeid

电话

3

appointmentname

密码

4

appointmenttime

角色id

5

customerid

用户状态

6

state

真实姓名

7

customercreatetime

创建时间

8

remark

登陆状态

9

Customername

客户名称

10

tel

客户电话

11

agend

客户性别

表 5-15 后台管理员视图

 

5.4 系统业务接口设计

系统业务接口设计如下表所示,表中需要实现的方法之例举了部分,在接口说明中需要实现的方法会详细说明。

 

接口名称

接口说明

需要实现的方法

CustomerDAO

客户处理业务接口

addTCustomer ():添加客户方法,用来提供游客注册,成功后返回客户账号。

delTCustomer():根据客户id删除客户账号,返回成功或失败。

updateTCustomer():传入客户实体,更新客户信息,返回成功或失败

getTCustomerByid():根据客户账号查询客户所有信息

ArticlesDAO

文章处理业务接口

addTArticles ():添加文章方法,传入文章实体,添加成功后返回文章id。

delTArticles():根据文章id删除文章,返回成功或失败。

updateTArticles():传入文章实体数据,更新文章信息,返回成功或失败

getTArticlesByid():根据根据问章id获取文章信息

AppointmentDAO

预约单业务处理接口

addTAppointment ():添加预约单方法,添加成功后返回预约单id

delTAppointment():根据预约单id删除预约单,返回成功或失败。

updateTAppointment():传入预约单实体,更新预约信息,返回成功或失败

getTAppointmentByid():根据预约单id获取所有信息

表 5-16 网站端接口设计与说明

 

 

 

接口名称

接口说明

需要实现的方法

UserDAO

员工管理业务接口

addTUser ():添加员工方法,添加成功后返回员工账号

delTUser():根据员工账号删除员工,返回成功或失败。

updateTUser():传入员工实体,更新员工信息,返回成功或失败

getTUserByid():根据员工账号获取员工信息

getTUserByPage():根据条件查询员工分页信息

UserTypeDAO

员工类型管理业务接口

addTUserType ():添加员工类型方法,添加成功后返回员工类型id

delTUserType():根据员工类型id删除员工类型,返回成功或失败。

updateTUserType():传入员工类型实体,更新员工类型信息,返回成功或失败

getTUserTypeByid():根据员工类型id获取员工类型信息

getUserTypeByPage():根据条件查询员工类型分页信息

SystemLogDAO

系统日志业务类接口

getaAllSystemList ():获取所有日志信息方法

getSystemLogList():根据条件获取日志分页数据

deleteLogById():根据日志id删除单一日志

deleteLogById():根据日志id数组,实现批量删除日志

addLog():传入日志实体,添加日志,返回日志id

getLogById():根据日志id获取日志信息

RoleDAO

角色管理业务类接口

addTRole ():添加角色方法,添加成功后返回角色id

delTRole():根据角色id删除角色记录,返回成功或失败。

updateTRole():传入角色实体,更新角色信息,返回成功或失败

getTRoleByid():根据角色id获取角色信息

getTRoleByPage():根据条件查询角色分页信息

PhotoDAO

网站图片管理业务类接口

addTPhoto ():添加图片方法,添加成功后返回图片id

delTPhoto():根据图片id删除图片记录,返回成功或失败。

updateTPhoto():传入图片实体,更新图片信息,返回成功或失败

getTPhotoByid():根据图片id获取图片信息

getTPhotoByPage():根据条件查询图片分页信息

getTPhotoList():获取所有图片方法

CarDAO

车辆管理业务类接口

addCar ():添加车辆方法,添加成功后返回车辆id

delCar():根据车辆id删除车辆记录,返回成功或失败。

updateCar():传入车辆实体,更新车辆信息,返回成功或失败

getCarByid():根据车辆id获取车辆信息

getCarByPage():根据条件查询车辆分页信息

getCarList():获取所有车辆方法

BrandDAO

品牌管理业务类接口

addBrand ():添加品牌方法,添加成功后返回品牌id

delBrand():根据品牌id删除品牌记录,返回成功或失败。

updateBrand():传入品牌实体,更新品牌信息,返回成功或失败

getBrandByid():根据品牌id获取品牌信息

getBrandByPage():根据条件查询品牌分页信息

getBrandList():获取所有品牌方法

ArticlesTypeDAO

文章类型处理业务接口

addArticlesType ():添加文章类型方法,添加成功后返回文章类型id

delArticlesType():根据文章类型id删除文章类型记录,返回成功或失败。

updateArticlesType():传入文章类型实体,更新文章类型信息,返回成功或失败

getArticlesTypeByid():根据文章类型id获取文章类型信息

getArticlesTypeByPage():根据条件查询文章类型分页信息

getArticlesTypeList():获取所有文章类型方法

表 5-17后台管理端接口设计与说明

5.5 系统交互动作接口设计

后端交互动作接口设计如下表所示(只列出了部分)。

 

 

类名:CarController

方法名称:getCarList

说明:分页获取车辆信息

http的url请求及参数声明

请求url地址

请求参数

car/ getcar

Page:当前页数

Limit:每页数量

Condition:查询条件

返回值

 成功JSON

 失败 JSON

{code:0,data:carlist,msg:“查询成功”}

{ code:1,msg:“查询失败”}

案例

http://localhost:8080/RepairCusAdminMS/car/getcar?page=1&limit=10

方法名称:addCar

说明:实现一个车辆的添加

http的url请求及参数声明

请求url地址

请求参数

car/ addcar

photoid: 车辆图片id

carname: 车辆名称

carseries: 车系

brandid: 车辆品牌id

cartypeid: 车辆类型id

manufacturer: 厂商

markettime: 上市时间

guideprice: 厂家指导价

carstate: 是否热销

返回值

 成功JSON

 失败 JSON

{code:0,msg:“添加成功”}

{ code:1,msg:“添加失败”}

案例

http://localhost:8080/RepairCusAdminMS/car/addcar

方法名称:delCar

说明:删除车辆信息

http的url请求及参数声明

请求url地址

请求参数

car/ delcar

Carid:车辆id

返回值

 成功JSON

 失败 JSON

{code:0,msg:“删除成功”}

{ code:1,msg:“删除失败”}

案例

http://localhost:8080/RepairCusAdminMS/car/delcar?carid=1

方法名称:updateCar

说明:更新车辆信息

http的url请求及参数声明

请求url地址

请求参数

car/ updatecar

photoid: 车辆图片id

carname: 车辆名称

carseries: 车系

brandid: 车辆品牌id

cartypeid: 车辆类型id

manufacturer: 厂商

markettime: 上市时间

guideprice: 厂家指导价

carstate: 是否热销

返回值

 成功JSON

 失败 JSON

{code:0,msg:“更新成功”}

{ code:1,msg:“更新失败”}

案例

http://localhost:8080/RepairCusAdminMS/car/updatecar

类名:CustomerController

方法名称:getCustomList

说明:获取客户信息列表

http的url请求及参数声明

请求url地址

请求参数

customer/ getcustomer

Page:当前页数

Limit:每页数量

Condition:查询条件

返回值

 成功JSON

 失败 JSON

{code:0,data:customerlist,msg:“查询成功”}

{ code:1,msg:“查询失败”}

案例

http://localhost:8080/RepairCusAdminMS/customer/getcustomer?page=1&limit=10

方法名称:addCustomer

说明:实现客户的注册

http的url请求及参数声明

请求url地址

请求参数

customer/ addcustomer

Tcustomer:客户实体类信息

返回值

 成功JSON

 失败 JSON

{code:0,msg:“添加成功”}

{ code:1,msg:“添加失败”}

案例

http://localhost:8080/RepairCusAdminMS/customer/ addcustomer

方法名称:delcustomer

说明:删除客户信息

http的url请求及参数声明

请求url地址

请求参数

 customer/ delcustomer

customerid:客户id

返回值

 成功JSON

 失败 JSON

{code:0,msg:“删除成功”}

{ code:1,msg:“删除失败”}

案例

http://localhost:8080/RepairCusAdminMS/customer/delcustomer?customerid=1

方法名称:updateCustomer

说明:更新客户信息

http的url请求及参数声明

请求url地址

请求参数

customer/ updatecustomer

TCustomer:客户实体类信息

返回值

 成功JSON

 失败 JSON

{code:0,msg:“更新成功”}

{ code:1,msg:“更新失败”}

案例

http://localhost:8080/RepairCusAdminMS/customer/updatecustomer

方法名称:customerLogin

说明:实现客户登录

http的url请求及参数声明

请求url地址

请求参数

customer/ customerlogin

Customeraccount:客户账户

Customerpassword:客户密码

返回值

 成功JSON

 失败 JSON

{code:0,msg:“登录成功”}

{ code:1,msg:“登录失败”}

案例

http://localhost:8080/RepairCusAdminMS/customer/customerlogin?Customeraccount=user001& Customerpassword=123456

类名:AppointmenController

方法名称:getAllAppList

说明:分页获取预约单信息

http的url请求及参数声明

请求url地址

请求参数

appointment/getallappointment

Page:当前页数

Limit:每页数量

Condition:查询条件

返回值

 成功JSON

 失败 JSON

{code:0,data: AppList,msg:“查询成功”}

{ code:1,msg:“查询失败”}

案例

http://localhost:8080/RepairCusAdminMS/appointment/getallappointment?page=1&limit=10

方法名称:addappointment

说明:实现一个预约单的添加

http的url请求及参数声明

请求url地址

请求参数

appointment / addappointment

Tappointment:预约单实体信息

返回值

 成功JSON

 失败 JSON

{code:0,msg:“添加成功”}

{ code:1,msg:“添加失败”}

案例

http://localhost:8080/RepairCusAdminMS/appointment/addappointment

方法名称:delappointment

说明:删除预约单信息

http的url请求及参数声明

请求url地址

请求参数

appointment/ delappointment

appointmentid:预约单id

返回值

 成功JSON

 失败 JSON

{code:0,msg:“删除成功”}

{ code:1,msg:“删除失败”}

案例

http://localhost:8080/RepairCusAdminMS/appointment/delappointment?appointmentid=1

方法名称:updateAppointment

说明:更新预约单信息

http的url请求及参数声明

请求url地址

请求参数

appointment/ updateappointment

TAppointment:预约单信息实体

返回值

 成功JSON

 失败 JSON

{code:0,msg:“更新成功”}

{ code:1,msg:“更新失败”}

案例

http://localhost:8080/RepairCusAdminMS/appointment/updateappointment

表 5-18 网站端接口设计与说明

 

 

 

 

后台管理端采用Spring MVC的架构模式,以请求为驱动,通过模型对象,分派器来展示请求结果视图。需要定义一个控制类接口,声名访问接口。在前台,通过ajax直接访问接口,传递对应参数,就能完成对数据的增删改查操作。

由于控制类较多,下面值列举其中一个。

ArticlesController(用户处理控制类)

 

类名

说明

需要传入的参数

addArticles

添加文章

Articles

updateArticles

更新文章

ArticlesId Articles

getArticlesByid

根据id查询文章信息

Articlesid

delArticlesByid

根据id删除文章

Articlesid

getArticlesByOP

获取文章分页信息

Op limite,page

getAllArticles

得到所有的文章信息 (不带分页)

 

getAllArticlesType

得到所有的文章信息类型(不带分页)

 

addArticlesType

将一条文章类型添加到数据库

title、typename、

delArticlesType

根据文章id删除文章

ArticlesTypeid

updateArticlesType

修改文章类型

ArticlesType

getArticlesTypeList

根据条件文章类型分页

title、page、limit

getArticlesContentByid

根据文章id获取文章内容

Articlesid

getArticlescontentByOP

根据条件得到文章内容

op、page、limit

addArticlesContent

添加一条文章内容

ArticlesContent

delArticlesContent

根据传入文章内容id删除文章内容

ArticlesContentid

表 5-19 网站端接口设计与说明

你可能感兴趣的:(源代码)