(如有侵权,请及时联系博主)
作者:LC
开发工具与关键技术:MyEclipse、MySql、jdbc、servlet、jsp
完成模块功能:前台
1、注册:
1.1、公司注册:指的是采购公司和供应商公司信息进行登记。
1.2、用户注册:指的是采购公司用户和供应公司用户的注册。
2、登录:指的是分别采购用户的登录和供应用户登录。
3、搜索首页:指的是九牧商城首页商品展示。
4、购物车:指的是九牧商城商品需求商品添加以便用户选购。
5、购买流程:
5.1、购买流程方案1:指的是九牧商城商品单一直接下单购买。
5.2、购买流程方案2:指的是九牧商城商品从购物车选购多个商品直接下单购买。
6、客户账户管理:
6.1、个人资料:指的是用户个人信息展示或者修改。
6.2、修改密码:指的是用户个人账号密码遗忘进行修改。
6.3、地址管理:指的是用户个人配送地址添加、修改、删除。
7、客户订单管理:
7.1、我的订单:指的是对订单的状态监管,方便了管理。
8、客户物流管理:
8.1、物流查询:指的是对订单的物流实时状态监管,方便了管理,为了带来给客户更好的体验。
8.2、物流地图查询:指的是对订单的物流路线实时状态监管,方便了管理,为了带来给客户更好的体验。
9、店铺商品管理:
9.1、已审核商品:指的是通过后台审核后通过的商品,客户能够搜索购买,方便对商品管理。
9.2、未审核商品:指的是通过后台审核后没通过的商品,客户不能够搜索购买,方便对商品管理。
9.3、已下架商品:指的是有问题的商品通过后台下架,客户不能够搜索购买,方便对商品管理。
10、店铺订单管理:
10.1、我的订单:指的是对订单的状态监管,方便了管理。
10.2、帐单报表:指的是对购买商品已完成收货的订单,方便对订单的核实。
10.3、日销量报表:指的是按日对购买商品已完成收货的订单,方便对订单的核实。
10.4、月销量报表:指的是按月对购买商品已完成收货的订单,方便对订单的核实。
10.5、年销量报表:指的是按年对购买商品已完成收货的订单,方便对订单的核实。
11、店铺物流管理:
11.1、订单配送:指的是对订单配送以及给订单发货。
11.2、物流查询:指的是对订单配送物流信息,为了带来给客户更好的体验。
11.3、物流地图查询:指的是对订单配送物流信息,并且用地图来显示,为了带来给客户更好的体验。
12、功能架构图:
Address |
地址表 |
基础表 |
表1 |
Article |
文章表 |
基础表 |
表2 |
back_end_user |
后台用户表 |
基础表 |
表3 |
basics |
基础表 |
基础表 |
表4 |
basics_data |
基础数据表 |
基础表 |
表5 |
company |
公司表 |
基础表 |
表6 |
integral |
积分表 |
业务表 |
表7 |
membership_grade |
会员等级表 |
基础表 |
表8 |
operation |
操作表 |
基础表 |
表9 |
payment |
支付表 |
业务表 |
表10 |
permissions |
模块表 |
基础表 |
表11 |
permissionstable |
权限表 |
基础表 |
表12 |
product |
产品表 |
基础表 |
表13 |
purchase |
采购表 |
业务表 |
表14 |
purchasedetailed |
采购明细表 |
业务表 |
表15 |
role |
角色表 |
基础表 |
表16 |
shopping_cart |
购物车表 |
业务表 |
表17 |
system_log |
系统日志表 |
基础表 |
表18 |
twolevelmodule |
二级模块表 |
基础表 |
表19 |
user_address |
客户配送地址表 |
业务表 |
表20 |
users |
客户表 |
基础表 |
表21 |
表名:payment(支付表)
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
1 |
payment_id |
int |
11 |
|
是 |
是 |
|
否 |
|
支付ID |
2 |
purchase_id |
int |
11 |
|
|
|
|
是 |
|
采购ID |
3 |
payment_method_id |
int |
11 |
|
|
|
|
是 |
|
支付方式ID |
4 |
payment_amount |
Decimal |
11 |
|
|
|
|
是 |
|
支付金额 |
5 |
payment_time |
datetime |
|
|
|
|
|
是 |
|
支付时间 |
表名:purchase(采购表)
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
1 |
purchase_id |
int |
11 |
|
是 |
是 |
|
否 |
|
采购ID |
2 |
purchasers_id |
int |
11 |
|
|
|
|
是 |
|
采购公司ID |
3 |
supplier_id |
int |
11 |
|
|
|
|
是 |
|
供应公司ID |
4 |
order_number |
varchar |
30 |
|
|
|
|
是 |
|
订单号 |
5 |
purchasing_time |
datetime |
|
|
|
|
|
是 |
|
采购时间 |
6 |
logistics_single_number |
varchar |
32 |
|
|
|
|
是 |
|
物流单号 |
7 |
order_status_id |
int |
11 |
|
|
|
|
是 |
|
状态ID |
8 |
receipt_address_id |
int |
11 |
|
|
|
|
是 |
|
收件地址Id |
9 |
send_address_id |
Int |
11 |
|
|
|
|
是 |
|
发件地址Id |
表名:purchasedetailed(采购明细表)
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
1 |
purchase_detailed_id |
int |
11 |
|
是 |
是 |
|
否 |
|
采购明细Id |
2 |
purchase_id |
int |
11 |
|
|
|
|
是 |
|
采购Id |
3 |
product_id |
int |
11 |
|
|
|
|
是 |
|
产品Id |
4 |
order_quantity |
int |
30 |
|
|
|
|
是 |
|
数量 |
表名:shopping_cart(购物车表)
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
1 |
shopping_cart_id |
int |
11 |
|
是 |
是 |
|
否 |
|
购物车Id |
2 |
purchasers_id |
int |
11 |
|
|
|
|
是 |
|
采购商Id |
3 |
product_id |
int |
11 |
|
|
|
|
是 |
|
产品Id |
4 |
number |
int |
11 |
|
|
|
|
是 |
|
数量 |
5 |
time_to_join |
datetime |
|
|
|
|
|
是 |
|
加入时间 |
表名:user_address(用户地址表)
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
1 |
user_address_id |
int |
11 |
|
是 |
是 |
|
否 |
|
地址Id |
2 |
user_id |
int |
11 |
|
|
|
|
是 |
|
用户Id |
3 |
province_id |
int |
11 |
|
|
|
|
是 |
|
省Id |
4 |
city_id |
int |
11 |
|
|
|
|
是 |
|
市Id |
5 |
area_id |
int |
11 |
|
|
|
|
是 |
|
区县Id |
6 |
town_id |
int |
11 |
|
|
|
|
是 |
|
镇街Id |
7 |
addressee |
varchar |
20 |
|
|
|
|
是 |
|
收件人 |
8 |
detailed_address |
varchar |
200 |
|
|
|
|
是 |
|
详细地址 |
9 |
receiving_phone |
varchar |
11 |
|
|
|
|
是 |
|
收件电话 |
10 |
is_it_default |
tinyint |
4 |
|
|
|
|
是 |
|
是否默认 |
说明:把自己设计的模块分类进行截图展示、该模块用到的数据表和关系描述、界面层经典代码截图描述。 经典代码定义:界面层控件的特殊使用、数据逻辑的特殊处理的重要代码截图。
(1)、供应商公司注册:如图1-1,如实填写客户类型、公司名称、公司地址、公司账号等信息,然后点击公司注册,完成供应商注册。
图1-1
(2)采购商公司注册:如图1-2,如实填写客户类型、公司名称、公司地址、公司账号等信息,然后点击公司注册,完成采购商注册。
图1-2
(1)供应商公司用户注册:如图1-3,选择注册的客户类型、填写完整要注册的公司等相关信息,点击用户注册,完成供应商公司的用户注册。
图1-3
(2)采购商公司用户注册:如图1-4,选择注册的客户类型、填写完整要注册的公司等相关信息,点击用户注册,完成采购商公司的用户注册。
图1-4
(1)登录如图1-5,供应商、采购商的用户填写相关信息,点击登录。
图1-5
(1)登陆成功后进入主页面,输入商品的名称,点击搜索商品,如图1-6。
图1-6
(2)输入商品的名称,点击搜索商品,如图1-7。
图1-7
(1)输入名称,搜索商品,如图1-8。
图1-8
(2)点击商品进入详细页面,点击加入购物车,如图1-9。
图1-9
(3)看到购物车或者是图标,点击图标或者按钮,如图1-10,选择需要的商品购买进行付款。
图1-10
(1)输入名称,搜索商品,如图1-11。
图1-11
(2)点击商品进入详细页面,点击加立即购买,如图1-12。
图1-12
(3)进入如图1-13,进行确认订单,点击结算。
图1-13
(4)进入如图1-14,进行付款,选择相关的付款模式,确认付款。
图1-14
(1)从我的购物车选择需要的商品,点击结算,如图1-15。
图1-15
(2)进入如图1-16,进行确认订单,点击结算。
图1-16
(3)进入如图1-17,进行付款,选择相关的付款模式,确认付款。
图1-17
(1)点击账户管理的个人资料,进入如下图1-18,查看相关的个人资料,填写完整信息,点击保存。
图1-18
(1)点击账户管理的修改密码,进入如下图1-19,填写完整信息,点击保存。
图1-20
(1)点击账户管理的地址管理,进入如下图1-21,点击添加地址,填写完整信息,点击保存。点击修改填写相关信息保存,点击删除,确认删除。
图1-21
(1)点击订单管理的我的订单,进入如下图1-22,点击待付款,待发货,待收货等操作,进行查询订单状态。
图1-22
(1)点击物流管理的物流查询,进入如下图1-23,选择订单点击物流查询,进行查询。
图1-23
(2)进入如图1-24,物流详细信息。
图1-24
(1)点击物流管理的物流地图查询,进入如下图1-25,选择订单点击物流地图,进行查询。
图1-25
(2)进入如下图1-26,物流地图路线的查询。
图1-26
(1)点击商品管理的已审核商品的查询,进入如下图1-27,选择要下架的商品点击下架商品。
图1-27
(1)点击商品管理的未审核商品的查询,进入如下图1-28,点击上传商品,填写完整信息进行保存;点击修改商品填写完整要修改的信息,点击保存;点击删除商品,确认删除。
图1-28
(1)点击商品管理的已下架商品,进入如下图1-29,点击上架或者删除商品。
图1-29
(1)点击订单管理的我的订单,进入如下图1-30,未付款、已付款、已收货等操作;未付款的提醒买家;已付款的进行物流配送,已收货的进行查询。
图1-30
(1)点击订单管理的帐单报表,进入如下图1-31,根据帐单日期查询。
图1-31
(1)点击订单管理的日销量报表,进入如下图1-32,产品品牌、商品名称、查询日期进行查询。
图1-32
(1)点击订单管理的月销量报表,进入如下图1-33,产品品牌、商品名称、查询日期进行查询。
图1-33
(1)点击订单管理的年销量报表,进入如下图1-34,产品品牌、商品名称、查询日期进行查询。
图1-34
(1)点击物流管理的订单配送,进入如下图1-35,点击配送物流,填写完整信息进行保存;
图1-35
(1)点击物流管理的物流查询,进入如下图1-36,点击订单的物流查询。
图1-36
(2)进入如图1-37,订单物流信息。
图1-37
(1)点击物流管理的物流地图查询,进入如下图1-38,点击物流地图。
图1-38
(2)进入如图1-39,地图物流详细路线图。
图1-39
刚学完Java言语,老师教了一些简单的增删查改后,第一次对于个人说使用mysql 、jbdc、servlet、jsp来开发一个Javaweb项目是一件有点难的事情。
开发过程遇到的乱码问题,第一遇到就是Java中文乱码的问题,说到中文乱码是一件很头痛的事情,因为C#中没出现过中文乱码的问题,所以刚开始就遇到棘手的问题。解决的方法:第一解决HTML页面的中文问题:为了使HTML页面很好的支持中文,在每个HTML页面的
标签内部增加charset=UTF-8";第二解决jsp页面中的中文问题pageEncoding是jsp文件本身的编码contentType的charset是指服务器发送给客户端时的内容编码;第三解决页面数据传输的中文问题:最佳方法是采用编码过滤器来解决,设置一个过滤器,把所有的数据都进行转码;第四解决HTTP(post)请求中的中文乱码在Servlet页面中添加设置字符编码为UTF-8;第五解决HTTP(get)请求中的中文乱码问题:如果是get,需要获取请求的字符串,然后把整个字符串进行转换,同时需要知道原编码,下例假设为ISO-8859-1;第六解决Mysql数据库中的中文问题:解决Mysql数据库中文问题主要在JDBC驱动的URL上添加useUnicode=true&characterEncoding=utf8;第七解决Mysql数据库在windows系统中,dos中显示表中数据为乱码,但是数据输入与输出均正常:这是因为windows系统中,默认的编码是中文,而写入的时候是UTF-8,此时只需要设置 setnames gb2312 即可;第八解决外部JS(JavaScript文件)出现乱码:这种比较头疼,调用的外部*.js(独立的JavaScript),其中js文件中涉及向前台输入中文显示乱码,而如果把js代码直接写在前端jsp页面中就正常显示,导致的原因是*.js与*.jsp文件编码不统一导致的,可以通过NotePad++转换编码即可。还有一种就是通过form表单提交数据时,没有写method属性,导致后台一直获取到乱码。比较通用的方法可以,直接更改Tomcat server.xml文件。servlet后台获取前端数据出现乱码:后台servlet添加:response.setCharacterEncoding("UTF-8");从不同编码的前台获取数据添加:String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");还有一种就是通过form表单提交数据时,没有写method属性,导致后台一直获取到乱码。比较通用的方法可以,直接更改Tomcat server.xml文件。开发过程遇到的合作问题,我们都想依赖对方去完成,可惜的是项目进度很慢,最终通过分工去完成的!做Javaweb项目过程中注意,先做完基本功能,然后对输入的数据进行验证;方法的代码尽可能少,再考虑代码的可重用性;当发现代码中重复地复制/粘贴时,就可以考虑将之形成为一个类进行调用;在类的设计中,永远不要去继承一个已经实现好的类,只能继承抽象类或实现接口;注意要做空指针处理;所有的记录总数以及查询第几页的数据;多思考,尝试用不同、多种方法去解决问题。(发散性思维);当程序中有0、1这样的数字或字符串出现时,最好用常量代替。常量名很重要,做到见名知意,编写时先完成基本功能的实现,然后再对实现功能的代码结构进行优化。