网上体育用品商店
摘 要
随着平昌冬奥会的结束,2022年北京冬奥会的到来,带来的是新一轮全民运动的热潮,体育用品行业也是前景一片光明。”小宇宙”体育用品商店以其种类齐全,购买便捷等优势将成为未来主流消费通道。
本毕业设计是能够实现ERP功能,辅助企业管理销售体育用品优化简化商店管理的网上体育用品销售系统。采用的是natapp域名管理,JEECG快速开发框架,mySql数据库。其中包括了Ajax异步交互和easyUI,Jquery等web前端框架;SpringMVC,Hibernate,Spring jdbc等技术架构,Navicat数据库交互工具。接入支付宝网上电脑支付接口,划分不同用户的权限使得前端销售界面更友好,后台管理更方便。包括库存管理,采购管理、销售管理、体育用品分类管理、用品功能推荐、结账管理、用户信息管理等模块。
本次毕业设计实现了体育用品管理功能,简化管理流程,节省企业人力物力财力,让更多的消费者接触并使用更多的体育用品。
关键词:体育用品商店;Java;jeecg;支付宝;分类推荐
Design And Implementation Of Online sporting goods store
Abstract
With the end of the Pingchang Winter Olympic Games, the arrival of the Beijing Winter Olympic Games in 2022 brought about a new round of popular movement, and the sporting goods industry is also a bright future. The "small universe" sporting goods store will be the mainstream consumer channel in the future due to its full range and convenient purchase.
This graduation project is an online sporting goods sales system that can realize ERP function, assist enterprise management, sell sporting goods and simplify shop management. Natapp domain name management, JEECG rapid development framework and mySql database are adopted. It includes Ajax asynchronous interaction and easyUI, Jquery and other web front-end frameworks; SpringMVC, Hibernate, Spring JDBC and other technical architectures, and Navicat database interaction tools. Alipay computer access online payment interface, divided into different user permissions to make front-end sales interface more friendly, more convenient management. It includes modules such as inventory management, purchase management, sales management, classification management of sporting goods, function recommendation, checkout management, user information management and so on.
This graduation design has realized the management function of sporting goods, simplifies the management process, saves the human resources and financial resources of the enterprise, and lets more consumers contact and use more sports supplies.
Keywords: online sporting goods store; Java; jeecg; Alipay; classification
目录
引言... - 1 -
第1章 概述... - 2 -
1.1 选题背景... - 2 -
1.2 选题意义... - 2 -
1.3 国内外研究的现状... - 2 -
1.3.1 国外研究现状... - 2 -
1.3.2 国内研究现状... - 2 -
1.4 课题研究的目的和内容... - 3 -
1.4.1 课题研究的目的... - 3 -
1.4.2 课题研究的内容... - 3 -
1.5 方案选择... - 4 -
1.5.1 java简介... - 4 -
1.5.2 natapp简介... - 4 -
1.5.4 MySql - 5 -
1.5.6 支付宝(蚂蚁金服)开放平台... - 5 -
1.6 开发框架技术... - 6 -
第2章 可行性研究... - 7 -
2.1 经济可行性... - 7 -
2.2 技术可行性... - 7 -
2.3 运行可行性... - 7 -
2.4 法律可行性... - 7 -
第3章 系统需求分析... - 8 -
3.1 系统需求分析... - 8 -
3.2系统需求的现状分析... - 8 -
3.3 系统设计目标... - 8 -
3.4 用户的功能需求分析... - 8 -
3.4.1 顾客用户需求分析... - 8 -
3.4.2 管理员需求分析... - 8 -
3.5 用例图... - 9 -
第4章 系统设计... - 15 -
4.1 系统概述... - 15 -
4.2 系统设计原则... - 15 -
4.3 系统总体功能结构设计... - 15 -
4.4 功能详细设计... - 16 -
4.4.1 功能静态设计... - 16 -
4.4.2 功能动态设计... - 18 -
4.5 数据库设计... - 19 -
4.6 数据库建立... - 20 -
第5章 系统实现... - 30 -
5.1 管理员操作页面... - 30 -
5.1.1 管理员登录页面... - 30 -
5.1.2 管理员后台... - 32 -
5.1.3 供应商信息列表... - 32 -
5.1.4 体育用品采购单录入... - 32 -
5.1.5 库存管理列表... - 33 -
5.1.6 库存管理列表... - 34 -
5.2 体育用品展示... - 35 -
5.2.1 分类展示页面... - 35 -
5.2.2 体育用品详情... - 36 -
5.2.3 相关推荐页面... - 37 -
5.2.4系统欢迎界面... - 37 -
5.3 顾客展示页面... - 39 -
5.3.1 顾客注册... - 39 -
5.3.2 修改个人信息... - 41 -
5.3.3 修改密码... - 42 -
5.3.4 查看购物车... - 43 -
5.3.5 立即购买... - 44 -
第6章 系统测试... - 48 -
6.1 测试目的... - 48 -
6.2测试的基本原则... - 48 -
6.3 测试的种类... - 48 -
6.4 测试的策略... - 48 -
6.5 测试实例... - 49 -
6. 6 系统评价... - 50 -
结论与展望... - 51 -
致谢... - 52 -
参考文献... - 53 -
附 录... - 54 -
附录A:外文资料及中文译文... - 54 -
附录B:主要参考文献的题录及摘要... - 61 -
附录C:部分页面代码... - 64 -
插图清单
图3-1用例图………………………………………………………………………………- 9-
图3-2 类图………………………………………………………………………………...- 10-
图3-3 活动图……………………………………………………………………………...- 11-
图3-4 实体关系图……………………………………………..…………………………- 12-
图3-5 用户实体图………………………………………………………………………...- 12-
图3-6 财务实体图………………………………………………………………………...- 13-
图3-7 体育用品实体图…………………………………………………………………...- 13-
图3-8 销售实体图………………………………………………………………………...- 14-
图3-9 采购实体图…………………………………………………………………...- 14-
图4-1 系统功能结构图…………………………………………………………………...- 16-
图4-2 顾客消费流程图…………………………………………………………………...- 17-
图4-3 管理员管理流程图………………………………………………………………...-18-
图4-4 采购任务序列图…………………………………………………………………...- 19-
图5-1 管理员登录界面…………………………………………………………………...- 30-
图5-2 管理员后台界面…………………………………………………………………...- 32-
图5-3 供应商信息列表展示界面………………………………………………………...- 32-
图5-4 体育用品采购录入界面…………………………………………………………...- 33-
图5-5 库存列表展示界面………………………………………………………………...- 33-
图5-6 财物管理界面 …………………………………………………………………….- 34-
图5-7 体育用品分类界面………………………………………………………………...- 35-
图5-8 体育用品详情界面………………………………………………………………...- 36-
图5-9 体育用品推荐界面………………………………………………………………...- 37-
图5-10 系统欢迎界面………………………………………………………………….....- 38-
图5-11 顾客注册界面…………………………………………………………………….- 39-
图5-12 顾客修改个人信息界面………………………………………………………….- 41-
图5-13修改密码界面…………………………………………………….……………….- 42-
图5-14 顾客查看购物车界面…………………………………………………………….- 43-
图5-15 立即付款………………………………………………………………………….- 45-
图5-16 订单查询界面…………………………………………………………………….- 47-
表格清单
表 4-1 财物表……………………………………………………………………………- 20-
表 4-2 采购单表…………………………………………………………………………- 21-
表 4-3 退货表……………………………………………………………………………- 22-
表 4-4 销售表……………………………………………………………………………- 23-
表 4-5 购物车表…………………………………………………………………………- 24-
表 4-6 体育用品表………………………………………………………………………- 25-
表 4-7 库存表……………………………………………………………………………- 26-
表 4-8 供应商表…………………………………………………………………………- 27-
表 4-9 用户表……………………………………………………………………………- 27-
表 4-10 评价表…………………………………………………………………………..- 28-
表 6-1 系统测试实例(一)……………………………………………………………- 49-
表 6-2 系统测试实例(二)……………………………………………………………- 49-
表 6-3 系统测试实例(三)……………………………………………………………- 50-
引言
在此之前,互联网的掀起的浪潮席卷全球网上购物已经成为消费者新的消费模式。网上消费其特有的用品种类数量多,浏览挑选简单方便,足不出户,随时随地就能买到心仪物品的优势深得喜欢。
“生命在于运动”运动是对于每个人而言都是重要的,但科技的技术发展让衣食住行样样被代劳,优渥的生活让人的肢体愈发懒惰。现代人明白想要健康,就必须锻炼起来。在国家倡导与推动下,健身的生活方式成为大多数人的选择,运动用品销售行业也崭露头角。
网上体育用品商店不同线下的实体销售店面有物品种类与地域的限制,也不同于当前淘宝京东等全功能的平台。它是将各个体育用品供货商信息整合起来,提供优质用品与便捷服务,专注运动的网上平台。不仅提供简单、快捷、方便、安全、有保障的用户体验,还简化了后台的体育用品管理系统,系统日常维护一个人就足够,使得管理更加简单,节省企业的运行成本,降低人力物力的消耗。
本系统历时六个月包含九个模块实现一整套体育用品商店功能。分别是:购买功能,查看购买信息,退货功能,浏览体育用品信息,评价管理,库存管理,采购管理,财务管理,登录注册。将呈现出一个界面美观,用户体验性好,系统功能完善,系统安全程度高的可投入生产的成熟的网上体育用品商店。
第1章概述
1.1 选题背景
今年平昌冬奥会的成功举办,让运动成为全世界人的话题,掀起了世界的运动热潮。2022年北京张家口冬奥会申奥成功,让中国的运动事业有了更加广阔的前景。同时,体育服务产业也迎来了蓬勃发展的春天。互联网+体育产业是体育用品行业新的机遇与发展,而在目前我国体育用品的网上销售多都是通过淘宝,天猫,京东与专卖店销售平台。一个专门用于体育用品零售的的网站将会给消费者提供更专业的,选择范围更广的消费体验。
1.2 选题意义
无论从体育赛事方面,我国国民生活水平方面,还是体育产业发展趋势方面来讲,未来体育市场是个不饱和的市场,体育产业只会越来越壮大。对于经营者来讲,百花齐放的中低档体育用品品牌需要更加严格与广阔的网络平台,将优质的产品呈现在消费者面前;网上交易本就降低了运营成本,使得利润空间更大;商店系统集合了大量体育用品供应商信息,并且操作更加简便,还能够减少工作量。对于消费者来讲,种类丰富,样式繁多的体育用品商店能提供更多、更好、更方便,更简单的服务。从整个产业的角度讲,体育用品商店系统能够优化体育用品供应链,下单、发货简化物流,通过支付宝和微信第三方应用简化资金链流动,而在互联网上信息流的采集与传播更是方便快捷。体育用品从实体店走上互联网是整个体育用品行业的趋势。
本次课题是要做出一套体育用品商店。它能够由系统实现进销存的ERP系统简化运营商的工作,降低成本,使用各种分类与推荐策略将让消费者选择出他们满意的体育用品。将销售金额的管理交付给更加专业的支付宝,降低系统投入运营的风险,让体育用品商店供应链上的每一个环节所承担的压力更小。
在这次毕业设计中能锻炼自己,提高个人的学习、设计与编程的能力。
1.3 国内外研究的现状
本节是对比分析国外与国内的研究现状,找到国外的体育用品销售模式中的优点与国内需要改进的地方,为接下来的系统设计方向提供参考。
1.3.1 国外研究现状
欧美等发达国家的人对运动健身的重视程度与我们国家的不同。体育产业是的发展程度成为国家的重要产业支柱[1]。许多大家耳熟能详的体育用品品牌如耐克Nike,阿迪达斯Adidas等都是来自发达国家。体育用品销售与管理也步入它的互联网时代。随着亚马逊的普及,体育用品销售也想如今中国淘宝上销售的商品一样。但大多数品牌都会选择搭建自己的网上专卖店。而在此时,迪卡侬体育用品超市从众多体育用品销售平台中脱颖而出。迪卡侬来自于法国,是体育用品零售商,以严格审查筛选供应商供货,保证体育用品质量;线上与线下同时销售支持线上下单线下拿货的;网站页面简介,用户体验好的优势迅速将分店开到世界各地。
1.3.2 国内研究现状
1)国民生活需求提高的优势
首先从年龄角度来看:青少年人群需要长身体,运动锻炼能帮助他们骨骼发育、提高免疫力和培养他们的个性人格。中青年人群中高中层收入的脑力劳动者增多,他们很多对健康很关注,希望有好的体力和精力去面对工作与生活。老年人群身体慢慢衰老,更需要加强锻炼,减少疾病。无论是青少年的强身健骨,还是中青年的保持精力,还是老年人的延长寿命。体用用品面向人群覆盖整个年龄段,行业潜力巨大。
其次从运动与健康的角度看:大量的研究表明,健康运动能强身健体、增强体质、促进心理健康、提高社会适应能力、改善人类生命与生活方式,完善心理品格、实现身体上、精神上、社会适应上的健全、健康状态。可知,体育用品将成为人们生活中不可或缺的必需品。
最后从收入角度来讲:随着国民收入的增加,人们对生活品质要求不断提高。每个人购买的运动器材的种类会则增多,在这方面的开支也会随之水涨船高,促进体用用品市场的健康发展。
2)体育产业发展迅猛带来机会
国家体育总局和国家统计局的数据显示2016年我国体育产业总规模与增加值都是双增长。而体育用品的网上销售也是硕果喜人。据京东销售数据显示说,体育品类是增长最快的品类之一,从2013年至2017年一直保持100%的销售增速。
2018冬奥会在韩国平昌成功举办,又一次让运动成为话题,掀起了全人类的运动热潮。2022年北京张家口冬奥会在即,中国运动事业也将有广阔前景。体育服务产业也迎来了蓬勃发展的春天。
3)中低档体用用品良莠不齐,消费者难以辨别
体育用品市场一直是高端品牌占据相当大的市场,而中低档的品牌鱼龙混杂,耐克Nike,阿迪达斯Adidas,李宁等品牌走创新研发不适合中小型品牌商。我国体育用品行业还在初步发展阶段,标杆企业与行业规范本来就少,山寨的仿品质量良莠不齐,画虎不成反类犬的例子比比皆是,消费者很难区分。
1.4 课题研究的目的和内容
1.4.1 课题研究的目的
体育锻炼是身体健康的重要法宝,人们重视运动也将使体育用品行业水涨船高,网上体育用品商店将跳出传统的实体销售模式,通过展示图片,描述体育用品信息来销售商品。本课题要研究设计的体育用品商店有一下两大目的:
1)用户友好
对于消费者来讲,一款便捷,简单,易用,安全,快捷的网上体育用品商店能带来更多的便利,而页面简洁,美观。操作方便也是用户选择的另一个加分点,消费者也会选择这样的好用的商店平台进行购买。
2)功能强大
当消费者消费与管理员管理同时存在于一个系统时,就要实现更多的功能模块,本系统应该集供应商管理,采购管理,库存管理,销售管理,财务管理,用户管理及系统维护为一体,提供更加丰富的体育用品管理功能。
1.4.2 课题研究的内容
(一)网上体育用品商店概述
网上体育用品商店是集原材料采购、生产、仓储配送、运输、流通、销售、跟踪为一体的网络销售系统,系统的开发实现了体育用品从原料供应商、生产商、批发商到零售商再到消费者的各个环节的有机结合,将体育用品从生产到使用过程中的所有信息公开,并辅以系统分析处理结果,以供消费者判断选择。
(二)网上体育用品商店功能模块:
体育用品供应链信息管理、供应商关系管理、公告管理、统计分析,财务管理、用户管理、角色管理等模块。
(二)网上体育用品商店功能细化:
- 供应商方面:供应商加盟,供应商审核,供应商信息管理,体育用品供应链信息管理;
- 销售方面:体育用品采购管理,体育用品上架,体育用品分类,体育用品展示,体育用品推荐,体育用品信息管理,加入购物车,促销管理,体育用品下架;
- 消费者方面:注册用户,用户信息管理,购物车管理,购买付款,售后评价,等级管理,退货申请;
- 库存方面:体育用品采购管理,体育用品出库管理,体育用品退换管理;
- 售后方面:退换体育用品;
- 财务方面:销售款预存收入,支付给供应商,退款给消费者;
- 系统营运方面:系统管理等;
1.5 方案选择
开发网上体育用品商店系统,提出以下解决方案:
在调查和收集资料的准备工作完成后,设计一套网上体育用品商店系统。本系统以面向对象语言进行系统开发,natapp内网穿透技术将Tomcat服务器上的本地系统转到外网上,通过域名访问网上体育用品商店系统,使用spider方法爬取Decathlon迪卡侬运动超市中的商品信息用作分类推荐。使用支付宝电脑支付接口优化用户体验。使用Navicat数据库管理工具辅助管理mysql数据库。
1.5.1 java简介
Java是面向对象的编程语言,是目前主流的编码语言。
它的优点有:
1)java是目前纯面向对象编程的计算机语言;
2)它是通过java虚拟机将java文件编译成操作系统可以识别的字节码文件。只要安装系统对应的jdk,就可以在任何系统上运行java文件;
3)java有很多打包好的jar包与内置库,通过这些jar包和类库,简化了程序员的工作,使得项目周期更短,开发效率更高;
4)支持web页面设计与开发;
5)具有较好的健壮性也更加安全。对外java语言经提供了一个防止恶意代码攻击的安全机制(Bytecode检测,数组边界检测和字符串边界测定),对内系统开发时java的异常处理,强类型机制,垃圾回收器,使得java程序的编写更加友好,使用更加方便。
1.5.2 natapp简介
Natapp是一款可以免费在公网和本地运行的 Web 服务器上建立一个安全的通道。natapp 可捕获和分析所有通道上的流量,便于后期分析和重放。
Web开发中,时常要给客户演示项目,只是简单演示一下,完全没必要去购买-搭建服务器这么麻烦了,运行natapp,客户直接看到本地的项目,得到客户快速反馈,快速修改。
可实现管理树莓派应用,远程登录内网SSH,远程桌面,数据库,企业应用,FTP,游戏等等。
(1)穿透防火墙
只要本机可以访问外网,便可以穿透防火墙,提供服务
(2)natapp内网穿透原理
natapp实际是外网链接的桥梁,客户端链接natapp服务端后,便建立了一个隧道,当访问隧道网址的时候,natapp服务端会将数据通过隧道转发到客户端上,实现内网穿透.natapp所有数据都是经过TLS高强度加密,确保数据不会被监听,截取,篡改等
1.5.3 Tomcat应用服务器
目前支持JSP的应用服务器是较多的,Tomcat是其中较为流行的一个Web服务器,被JavaWorld杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位。Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。
Tomcat也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。Tomcat是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越受到人们的重视。
1.5.4 MySql
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。
1.5.5 navicat
Navicat是一套快速、可靠并价格相宜的数据库管理工具,
专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。
Navicat是闻名世界、广受全球各大企业、政府机构、教育机构所信赖,更是各界从业员每天必备的工作伙伴。自2001 年以来,Navicat 已在全球被下载超过 2,000,000 次,并且已有超过 70,000 个用户的客户群。《财富》世界 500 强中有超过 100 家公司也都正在使用 Navicat。
Navicat提供多达 7 种语言供客户选择,被公认为全球最受欢迎的数据库前端用户界面工具。
它可以用来对本机或远程的 MySQL、SQL Server、SQLite、Oracle 及 PostgreSQL 数据库进行管理及开发。
Navicat的功能足以符合专业开发人员的所有需求,而且对数据库服务器的新手来说又相当容易学习。有了极完备的图形用户界面 (GUI),Navicat 让你可以以安全且简单的方法创建、组织、访问和共享信息。
Navicat适用于三种平台 - Microsoft Windows、Mac OS X 及Linux。它可以让用户连接到任何本机或远程服务器、提供一些实用的数据库工具如数据模型、数据传输、数据同步、结构同步、导入、导出、备份、还原、报表创建工具及计划以协助管理数据。
1.5.6 支付宝(蚂蚁金服)开放平台
蚂蚁金服开放平台基于支付宝的海量用户,将强大的支付、营销、数据能力,通过接口等形式开放给第三方合作伙伴,帮助第三方合作伙伴创建更具竞争力的应用。
通过接入蚂蚁金服开放平台,第三方合作伙伴可以获得更多的流量、用户和收益,而第三方合作伙伴提供的服务也让用户获得了更丰富的体验,平台生态更加繁荣,最终实现多方共赢。
接口支持:支付、分享、账户、营销、信用、服务窗等九大优质接口支持
开发工具:包括 Java , PHP, .Net等语言的SDK与Demo示例
服务保障:丰富的技术文档,开放的技术社区,高效的在线技术服务,是你开发的坚强后盾。
1.6 开发框架技术
对于框架技术,我采用是jeecg快速开发框架,它以其特有的优势完胜其他简单的开发框架。
JEECG(J2EE Code Generation)是一款基于代码生成器的微云快速开发平台,引领新开发模式(智能开发\在线开发\插件开发\移动开发\流程开发), 可以帮助解决Java项目80%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本,同时又不失灵活性。JEECG快速开发宗旨是:简单功能由代码生成器生成使用; 复杂业务采用表单自定义,业务流程使用工作流实现、扩展出业务接口,供开发编写业务逻辑。实现了流程任务节点和任务接口的灵活配置,既保证了公司流程的保密性,又减少了开发人员的工作。
1.6.1 架构说明
JEECG开发平台,采用SpringMVC + Hibernate + Minidao(类Mybatis) + Easyui(UI库)+ Jquery + Boostrap + Ehcache + Redis + Ztree等基础架构,采用面向声明的开发模式, 基于泛型编写极少代码即可实现复杂的数据展示、数据编辑、表单处理等功能,再配合代生成器的使用,将J2EE的开发效率提高6倍以上,可以将代码减少60%以上。
1.6.2 适用项目
JEECG快速开发平台,可以应用在任何J2EE项目的开发中,尤其适合企业信息管理系统(MIS)、内部办公系统(OA)、企业资源计划系统(ERP)、客户关系管理系统(CRM)等,其半智能手工Merge的开发方式,可以显著提高开发效率70%以上,极大降低开发成本;JEECG尤为显著的支持SAAS企业级应用开发,插件机制更好的支持了SAAS云应用new需求。
1.6.3 JEECG_V3.6.3 功能点:
1)代码生成器 2)数据权限 3)Online表单 4)工作流组件 5)移动OA 6)EasyPOI工具类 7)查询过滤器 8)UI库 9)国际化 10)多数据源 11)自定义表单 12)在线报表 13)移动报表 14)日志监控 15)首页切换 16)插件开发。
第2章可行性研究
2.1 经济可行性
本系统使用的所有数据与资料均来自网络。域名管理使用的是natapp的免费隧道,jeecg快速开发框架也是开源的、支付宝开放平台的沙箱应用对开发人员免费开放。MySQL,Navicat,java,eclipse等其他软件均为免费开源产品。硬件系统也是自己原本拥有的。而且本系统暂时只作为个人毕业设计系统,不商用,故经济可行。
2.2 技术可行性
本系统采用的技术均为网上较成熟的技术,技术大牛在博客,知道,知乎,论坛等平台上均有技术分享与指导。而本系统采用的都是目前来讲安全稳定的版本,故技术可行。
2.3 运行可行性
系统前端销售网站界面简洁,使用分类、推荐、搜索、查询等方法引导顾客选择消费,查询修改自己权限范围内的信息。多使用图片,图标,数字,突出显示等可视化方法降低用户认知使用系统难度。顾客使用系统时有舒服,方便的用户体验。
系统的管理后台面向有一定管理经验的网站维护人员开放权限。进销存的体育用品信息流的流程完全依照ERP(企业资源规划)与MIS(管理信息系统)模式开发。其余技术均通过简单的点击查询操作实现。故运行可行。
2.4 法律可行性
本系统中使用到的jeecg框架虽以申请专利,但持有人张代浩允许再次开发销售商用,并不存在盗版侵权的问题。支付宝接入功能本就是支付宝提供的使用方法,在缴纳一定数量的使用费,通过申请审批后可作为商用。但现阶段仅作为毕业设计使用,不需要产品上线,不存在违法行为。故法律可行。
第3章系统需求分析
3.1 系统需求分析
网上体育用品商店系统是从商店运营角度出发,贴合当代的销售购物特点。从物流,资金流,信息流完整还原的体育用品商店的运作流程。结合当先互联网技术,通过网络来管理体育用用品,顾客,平台维护人员,供应商,财务以及销售流程等所有的信息。一个好的系统要既包含便捷,简单,体验性好的消费者前端网站,也包含操作简便,安全的后台管理系统。只有方便消费者购买用品和管理人员维护信息的商店系统才能在众多平台中获得优势,为企业公司增加收益,创造价值,减少成本,提高竞争力。
本系统就包含十个模块实现一整套体育用品商店功能。分别是:购买功能,订单管理,退货功能,浏览体育用品信息,评价管理,库存管理,采购管理,财务管理,用户管理,登录注册。
3.2 系统需求的现状分析
网上体育用品商店销售与实体店不同。网上的商品信息不能直观的展示在用户面前,所以尽可能多的商品参数会让消费者更加了解体育用品。所以必须从多方面描述商品信息。所以本系统设计商品需要从名称,采购时间,供应商,类型,尺寸,颜色,库存量,评价,描述,图片,等尽可能多的属性向消费者展示体育用品,增加购买可能性。
体育用品商店的管理系统一定是要优于传统的Excel表单管理页面。要能实现数据库采购单表,体育用品表,销售表,购物车表,财务表等多张不同表之间的数据共享与传递。系统自动执行体育用品信息从采购表到体育用品表到购物车表到销售表到财务表之间的信息流向。
体育品商店不仅仅是管理体育用品,还要管理用户信息,供应商信息和系统运维,需要有用户信息,供应商信息,角色信息,权限信息,菜单信息等多个用来辅助系统运行的数据表。
3.3 系统设计目标
系统的设计目标就是建立一个对消费者友好的提供更加方面,简单,快捷,安全的体育用品购买平台,顾客可以通过分类推荐选择自己想要的体育用品的网上商店,对于管理者而言的一个操作简单,使用方便,节省时间,精力能够降低管理维护成本的网上销售平台。
3.4 用户的功能需求分析
3.4.1 顾客用户需求分析
顾客通过浏览器访问,可以浏览体育用品,选择心仪商品,查看详细情况,加入购物车,选择数量、颜色,购买商品,查看购物车,查看购买记录,修改个人信息。
具体功能划分为:
(1)注册网站,登录
(2)查看和修改自身信息
(3)购物车管理。
(4)订单管理
(5)购买商品
3.4.2 管理员需求分析
登录管理员账号后对商品进行采购,上架,信息修改,下架,对收支的金额进行管理。对供应商进行管理,对顾客信息进行管理为物流服务提供信息。另外还要管理平台的数据。功能的具体可分为以下八个部分:
(1)体育用品管理
(2)采购管理
(3)供应商管理
(4)库存管理
(5)销售记录管理
(6)财务管理
(7)用户信息管理
(8)网站平台维护
3.5 用例图
用例图从整体的角度来描述网上体育用品商店系统的所有行为和特征,用来进行系统的需求分析,用例的功能单元有16个,分别是:源自线上交易平台需求的浏览用品信息,购物车功能。购买功能,查看购物车功能,退货退款功能,评级功能,联系管理员,登录,注册功能;和源自后台管理系统需求的:采购业务功能,销售业务功能,库存管理功能,账务管理功能,统计分析功能,联系管理员功能和登录注册等功能。
图3-1用例图
3.6 类图
图3-2类图
3.7 活动图
活动图是通过一系列活动描述对象的行为,其描述对象可以是程序、模块、子系统等。它记录了采购员,库存,销售计划,顾客之间的各种任务和过程,业务流程的逻辑顺序等。通常用于描述一个操作中所要进行的各项活动的执行流程。同时,它也常被用来描述一个用例的处理流程。活动图由一些活动组成,图中包括了对这些活动的说明。
具体操作流程为:
l 采购人员进行采购活动,向供应商下采购单,收货后让库存部门审核,将体育用品信息放到页面上给买家展示销售。将采购单给账务管理记录。
l 买家下订单,销售部门处理订单,没有问题后,将订单信息反给库管部门和账务部门,以及将购买记录返给用户。
l 库管部门将物品打包成快递寄出,账务部门收钱并且分析收益。买家收到体育用品后,对商品进行评分,不满意可以退货。
l 售后服务部门整合用户评分,生成对体育用品的整体评分,收到退货后,交由库管部门处理。让账务管理退钱。
图3-3活动图
3.8 数据库分析
3.8.1 实体关系图总
由于实体关系太紧密,每个实体的属性太多。总实体关系图是将实体与实体之间的关系列出来集中展示。
图3-4实体关系图
3.8.2 实体属性图
各实体对应属性,关系对应属性,由于太过繁杂,现只展示其中部分。
图3-5用户实体图
图3-6财务实体图
图3-7体育用品实体图
图3-8销售实体图
图3-9采购实体图
第4章系统设计
4.1 系统概述
本系统所搭建服务器的本机没有固定的IP,特采用了Natapp内网穿刺技术,建立了一条名叫体育用品商店的隧道。该隧道通过采用web隧道协议将172.0.0.1(本地地址),端口号为8085的本地服务器Tomcat进程连接到http://shk799.natappfree.cc的外网可访问的地址上去。
系统采用的是JavaEE最新的衍生产品jeecg开发框架,在框架基础上进行二次开发。该框架封装了大量的jar包,并做了可插拔插件功能。系统删减了大量用于企业办公与数据监测的插件,添加了支付宝支付插件并连接接口道购买功能。只要顾客使用购买功能就会通过支付宝付款。
系统采用了分类推荐机制为顾客提供更加简便,友好的购物体验。通过体育用品之间的关系,让消费者更加轻松的找到满意的商品。
管理后台系统遵循ERP和MIS的规范。通过进销存的方式展现了体育用品商店的运行流程,供管理人员操作,共同运作整个系统。除此之外,后台可以对网站页面进行控制,对顾客、供应商进行管理。
本系统研究的主要内容,就是要解决下几个问题。
1)将商店的原始信息导入到网上体育用品系统管理,在不妨碍到任何事情的情况下,引入网上体育用品商店,同时在移除商店管理时也不会导致原有信息损坏。
2)优化现有的销售管理流程,降低风险与成本。
2)权限控制。一个系统完成网站运营与维护就必须通过权限限制不同身份的用户拥有不同的查看和修改能力。
4)信息査询,顾客查询自身网上信息与体育用品信息,查看购物车和订单;管理员查看所有信息,包括体育用品,供应商,顾客(私密信息会经过加密处理),平台设置等。
4.2 系统设计原则
体育用品商店是一个以展示页面商品给用户提供选择和购买的网站。但支持这个网站要有网站与网站管理,数据库等许多部分的数据组成。
具体指导性原则主要表现在下述几方面:
(1)开放性原则。该系统的各模块是独立的个体,以组件的形式存在在系统中,通过配置信息就能实现功能的插入,修改和删除。不会影响到其他功能的使用。
(2)层次性原则。多个不同层次的子系统共同构成该系统,各子系统的功能结合在一起便形成了该系统的整体功能。
(3)系统性原则。该系统并非一成不变,其应随着社会的发展、学校的需求进行不断调整与更新。
4.3 系统总体功能结构设计
根据系统的需求分析可以知道,体育用品商店是有前端网站的展示页面与管理员管理后台两部分组成,分别服务于消费者和管理员。从消费者与管理员角度来讲,系统应该具有注册,登录,浏览等功能。
对于消费者,前端网站需要展示体育用品信息供其选择心仪的商品,将满意的商品加入购物车。查看购物车确定购买商品后选择数量进入购买功能。购买完成后可以查看查看购买记录。网站需要保存用户的基本信息,用户在可以对基本信息进行修改。
管理者管理后台是对整个系统信息流,物流,资金流的管理。可以查看修改进销存过程中的数据并分类筛选统计系统中产生的所有信息。还包括对整个商店系统的管理与维护。
图 4-1 系统功能结构图
4.4 功能详细设计
从系统功能架构图可以知道,销售系统可划分为顾客购买,管理员维护两部分。本节将对这两个模块进行详细介绍。
4.4.1 功能静态设计
1)顾客模块
顾客从访问本系统开始就进入购买模式,当然在购买模式的任何一步都可以选择继续或者退出。具体步骤如下:
- 用户以顾客身份进入本系统,必须提供正确的身份信息与验证码。如果用户名与密码错误则不能进入本系统,提示用户名或密码错误。验证码输入错误则提示验证码错误。只有正确提供,才能跳转至网页。
- 顾客可以浏览本系统页面信息。将会看到导航栏上显示很多分类情况。点击不同的导航栏内容可以看到不同的体育用品。通过分类可以得到相应标签的体育用品的列表展示。展示包括:用品图片,名称,评价,价格等基本信息。
- 用户可以直接注册,注册时有正则校验。只有在输入正确信息是才能通过。比如密码必须6-10位,电话必须为11位。邮箱必须满足邮箱格式。
- 在确认身份后,可以将心仪的商品加入购物车。加入购物车之前必须选择颜色和尺寸。颜色可以默认,尺寸必须选择。如果没有尺寸而点击加入购物车或立即购买就会出现弹窗提示。
- 选择数量,可以购买该商品。选择数量时,数量的增加或减少都改变最终付款金额。购物可以累加。
- 购买商品是接入支付宝网站支付接口。跳转到支付宝平台进行付款,顾客使用手机扫描屏幕上的二维码在手机上完成支付。
- 查看个人信息,修改密码等。
- 申请退货。
根据上述分析可以得到顾客消费功能的操作流程图,具体如图所示
图 4-2 顾客消费流程图
3)管理员模块
管理员主要任务就是维护系统,查看销售结果,收支金额,进行供应商管理,采购管理和用户管理。主要步骤为:
- 管理员登录本系统。登录时满足身份信息认证校验。不满足不能跳转至管理后台页面。
- 在管理后台页面可以对进销存进行操作与监督。通过大量的搜索与查找功能全方位的了解信息。如通过体育用品状态查询可以得到那些商品是销售正常状态,那些是缺货状态,当缺货状态加应该进行补货处理。
- 对供应商进行管理,录入供应商信息,编辑以及删除现有供应商。
- 对采购单进行管理,录入采购信息,修改信息。当录入的某一采购单的信息由计划采购修改为销售完成,就新增一条库存记录。如果该条记录为补货记录,就修改库存中的数量,使之增加。
- 对体育用品信息的管理,可以录入,修改信息,导出信息为excel表格打印。
- 对用户信息的管理,可以修改用户角色与权限,导出信息为excel表格打印。
- 对订单信息的管理,可以查看订单列表与某条信息的详细情况,导出信息为excel表格打印。
- 对购物车的管理,可以查看购物车与某条信息的详细情况,,导出信息为excel表格打印。
- 对财务的管理,可以查看财务信息与某条信息的详细情况,,导出信息为excel表格打印。
- 对于系统的维护,维护系统导航分类信息,维护角色与权限信息,维护系统公告信息等。
根据上述分析可以得到管理员管理系统功能的操作流程图,具体如图所示
图 4-3 管理员管理流程图
4.4.2 功能动态设计
根据UML建模原理,软件开发周期的动态功能设计是根据时间序列将体育用品商店供应商,管理员,体育用品对象的信息在各个对象之间传递。一个采购流程是按照商品录入系统到商品流出系统的生命周期来组织的。在时间的最开始,审核录入供应商,等待采购。当有体育用品状态达到缺货数量时,体育用品计划采购,管理员进行采购,生成采购单。对采购单进行审核,审核通过后执行后续操作,比如财务支出采购费用,体育用品数量增加。对应体育用品信息进行更新等。到此一个采购流程就完成了,更新后的体育用品进行网站销售
此序列图描述的是商品录入部分的时间序列图管理员,供应商,采购单。
图4-4采购任务序列图
4.5 数据库设计
数据库设计是项目开发中的系统设计的另一个关键环节,数据库设计就像高楼大厦的根基一样,如果设计不好,在后来的系统维护、变更和功能扩充时,甚至在系统开发过程中,都将会引起比较大的问题,大量的工作将会重新进行。
数据库技术是信息资源管理最有效的手段。数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。数据库结构设计的好坏将直接对应用系统的效率及实现效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。
本系统的数据库设计如下:
数据库需要有一定量的表,我们在设计的初期阶段严格规划了表的结构和类型,本系统用10个表左右。
4.6 数据库建立
数据库表共10张,分别是:财务表,供应商表,退货表,购物车表,销售表,体育用品表,库存表,采购单表,用户表,评价表。
表4-1:财务表
|
字段名称 |
类型 |
大小 |
注释 |
编码 |
主键 |
|
fin_id |
varchar |
36 |
财务编号 |
gbk |
是 |
|
sale_id |
varchar |
36 |
销售编号 |
gbk |
否 |
|
user_id |
varchar |
36 |
用户编号 |
gbk |
否 |
|
gsd_id |
varchar |
36 |
体育用品编号 |
gbk |
否 |
|
fin_money |
varchar |
32 |
进账金额 |
gbk |
否 |
|
create_date |
datetime |
0 |
进账日期 |
gbk |
否 |
|
remark |
varchar |
100 |
备注 |
gbk |
否 |
|
rtn_id |
varchar |
36 |
退货编号 |
gbk |
否 |
|
pur_id |
varchar |
36 |
采购单编号 |
gbk |
否 |
|
fin_status |
varchar |
32 |
财务状态 |
gbk |
否 |
表4-2 采购单表
|
字段名称 |
类型 |
大小 |
注释 |
编码 |
主键 |
|
pur_id |
varchar |
36 |
采购单编号 |
gbk |
是 |
|
create_name |
varchar |
50 |
创建人名称 |
gbk |
否 |
|
create_by |
varchar |
50 |
创建人登录名称 |
gbk |
否 |
|
create_date |
datetime |
0 |
采购日期 |
- |
否 |
|
update_name |
varchar |
50 |
更新人名称 |
gbk |
否 |
|
update_by |
varchar |
50 |
更新人登录名称 |
gbk |
否 |
|
update_date |
datetime |
0 |
更新日期 |
- |
否 |
|
bpm_status |
varchar |
32 |
采购状态 |
gbk |
否 |
|
pur_name |
varchar |
300 |
采购单名称 |
gbk |
否 |
|
sgd_id |
varchar |
36 |
体育用品编号 |
gbk |
否 |
|
pur_sgd_name |
varchar |
300 |
体育用品名称 |
gbk |
否 |
|
pur_number |
varchar |
32 |
体育用品数量 |
gbk |
否 |
|
pur_sgd_type |
varchar |
100 |
体育用品分类 |
gbk |
否 |
|
sup_id |
varchar |
36 |
供应商编号 |
gbk |
否 |
|
sup_name |
varchar |
300 |
供应商名称 |
gbk |
否 |
|
pur_price |
varchar |
32 |
采购价格 |
gbk |
否 |
|
remark_1 |
varchar |
100 |
备注 |
gbk |
否 |
表4-3 退货表
|
字段名称 |
类型 |
大小 |
注释 |
编码 |
主键 |
|
rtn_id |
varchar |
36 |
退货编号 |
gbk |
是 |
|
create_date |
datetime |
0 |
退货日期 |
- |
否 |
|
user_id |
varchar |
36 |
用户编号 |
gbk |
否 |
|
user_name |
varchar |
32 |
用户名称 |
gbk |
否 |
|
user_address |
varchar |
100 |
用户地址 |
gbk |
否 |
|
sgd_id |
varchar |
36 |
体育用品编号 |
gbk |
否 |
|
sgd_name |
varchar |
300 |
体育用品名称 |
gbk |
否 |
|
sgd_size |
varchar |
32 |
尺寸 |
gbk |
否 |
|
sgd_color |
varchar |
32 |
颜色 |
gbk |
否 |
|
sgd_price |
varchar |
32 |
价格 |
gbk |
否 |
|
sgd_number |
varchar |
32 |
数量 |
gbk |
否 |
|
rtn_status |
varchar |
32 |
退货状态 |
gbk |
否 |
|
rtn_reason |
varchar |
100 |
退货原因 |
gbk |
否 |
|
remark |
varchar |
100 |
备注 |
gbk |
否 |
表4-4 销售表
|
字段名称 |
类型 |
大小 |
注释 |
编码 |
主键 |
|
sale_id |
varchar |
36 |
销售编号 |
utf8 |
是 |
|
create_date |
datetime |
0 |
销售日期 |
- |
否 |
|
bpm_status |
varchar |
32 |
销售状态 |
utf8 |
否 |
|
sgd_id |
varchar |
36 |
体育用品编号 |
utf8 |
否 |
|
sgd_name |
varchar |
300 |
体育用品名称 |
utf8 |
否 |
|
user_id |
varchar |
36 |
用户编号 |
utf8 |
否 |
|
user_name |
varchar |
32 |
用户名称 |
utf8 |
否 |
|
sale_price |
varchar |
32 |
价格 |
utf8 |
否 |
|
sale_num |
varchar |
32 |
数量 |
utf8 |
否 |
|
remark_1 |
varchar |
100 |
备注 |
utf8 |
否 |
|
sale_color |
varchar |
32 |
颜色 |
utf8 |
否 |
|
sale_size |
varchar |
32 |
尺寸 |
utf8 |
否 |
表4-5 购物车表
|
字段名称 |
类型 |
大小 |
注释 |
编码 |
主键 |
|
spct_id |
varchar |
36 |
购物车编号 |
utf8 |
是 |
|
user_id |
varchar |
36 |
用户编号 |
utf8 |
否 |
|
user_name |
varchar |
50 |
用户名称 |
utf8 |
否 |
|
create_date |
datetime |
0 |
加入购物车日期 |
- |
否 |
|
bpm_status |
varchar |
32 |
购物车状态 |
utf8 |
否 |
|
spct_sgd_id |
varchar |
36 |
体育用品编号 |
utf8 |
否 |
|
spct_sgd_name |
varchar |
300 |
体育用品名称 |
utf8 |
否 |
|
spct_color |
varchar |
32 |
颜色 |
utf8 |
否 |
|
spct_size |
varchar |
32 |
尺寸 |
utf8 |
否 |
|
spct_price |
varchar |
32 |
价格 |
utf8 |
否 |
|
spct_number |
varchar |
32 |
数量 |
utf8 |
否 |
|
remark_1 |
varchar |
100 |
备注 |
utf8 |
否 |
表4-6 体育用品表
|
字段名称 |
类型 |
大小 |
注释 |
编码 |
主键 |
|
sgdid |
varchar |
36 |
主键 |
utf8 |
是 |
|
create_name |
varchar |
50 |
创建人名称 |
utf8 |
否 |
|
create_by |
varchar |
50 |
创建人登录名称 |
utf8 |
否 |
|
create_date |
datetime |
0 |
录入日期 |
- |
否 |
|
update_name |
varchar |
50 |
更新人名称 |
utf8 |
否 |
|
update_by |
varchar |
50 |
更新人登录名称 |
utf8 |
否 |
|
update_date |
datetime |
0 |
更新日期 |
- |
否 |
|
bpm_status |
varchar |
32 |
体育用品状态 |
utf8 |
否 |
|
sgd_name |
varchar |
300 |
体育用品名称 |
utf8 |
否 |
|
sgd_price |
varchar |
32 |
价格 |
utf8 |
否 |
|
sgd_discount |
varchar |
32 |
折扣 |
utf8 |
否 |
|
sgd_valuation |
varchar |
32 |
评价 |
utf8 |
否 |
|
sgd_sign |
varchar |
32 |
标签 |
utf8 |
否 |
|
sgd_desc |
varchar |
100 |
描述 |
utf8 |
否 |
|
sgd_color |
varchar |
32 |
颜色 |
utf8 |
否 |
|
sgd_size |
varchar |
32 |
尺寸 |
utf8 |
否 |
|
sgd_number |
varchar |
32 |
数量 |
utf8 |
否 |
|
sgd_img |
varchar |
500 |
图片 |
utf8 |
否 |
|
remark_1 |
varchar |
100 |
备注 |
utf8 |
否 |
|
sgd_url |
varchar |
100 |
页面路径 |
utf8 |
否 |
表4-7 库存表
|
字段名称 |
类型 |
大小 |
注释 |
编码 |
主键 |
|
stk_id |
varchar |
36 |
存储编号 |
utf8 |
是 |
|
create_name |
varchar |
50 |
创建人名称 |
utf8 |
否 |
|
create_by |
varchar |
50 |
创建人登录名称 |
utf8 |
否 |
|
create_date |
datetime |
0 |
存储日期 |
- |
否 |
|
update_name |
varchar |
50 |
更新人名称 |
utf8 |
否 |
|
update_by |
varchar |
50 |
更新人登录名称 |
utf8 |
否 |
|
update_date |
datetime |
0 |
更新日期 |
- |
否 |
|
sys_org_code |
varchar |
50 |
所属部门 |
utf8 |
否 |
|
sys_company_code |
varchar |
50 |
所属公司 |
utf8 |
否 |
|
bpm_status |
varchar |
32 |
流程状态 |
utf8 |
否 |
|
sgd_id |
varchar |
36 |
体育用品编号 |
utf8 |
否 |
|
stk_sgd_name |
varchar |
300 |
体育用品名称 |
utf8 |
否 |
|
pur_id |
varchar |
36 |
采购编号 |
utf8 |
否 |
|
stk_pur_name |
varchar |
300 |
采购名称 |
utf8 |
否 |
|
rtn_id |
varchar |
36 |
退货编号 |
utf8 |
否 |
|
rtn_reason |
varchar |
100 |
退货原因 |
utf8 |
否 |
|
stk_adress |
varchar |
100 |
存储位置 |
utf8 |
否 |
|
stk_sgd_status |
varchar |
32 |
存储状态 |
utf8 |
否 |
|
remark_1 |
varchar |
100 |
备注 |
utf8 |
否 |
表4-8 供应商表
|
字段名称 |
类型 |
大小 |
注释 |
编码 |
主键 |
|
sup_id |
varchar |
36 |
供应商编号 |
utf8 |
是 |
|
create_name |
varchar |
50 |
创建人名称 |
utf8 |
否 |
|
create_by |
varchar |
50 |
创建人登录名称 |
utf8 |
否 |
|
create_date |
datetime |
0 |
入驻日期 |
- |
否 |
|
bpm_status |
varchar |
32 |
供应商状态 |
utf8 |
否 |
|
sup_name |
varchar |
300 |
供应商名称 |
utf8 |
否 |
|
sup_address |
varchar |
100 |
供应商地址 |
utf8 |
否 |
|
sup_connect |
varchar |
32 |
供应商联系人 |
utf8 |
否 |
|
sup_tel |
varchar |
32 |
供应商电话 |
utf8 |
否 |
|
sup_value |
varchar |
32 |
供应商等级 |
utf8 |
否 |
|
remark_1 |
varchar |
100 |
备注 |
utf8 |
否 |
表4-9 用户表
|
字段名称 |
类型 |
大小 |
注释 |
编码 |
主键 |
|
user_id |
varchar |
32 |
用户编号 |
gbk |
是 |
|
user_name |
varchar |
32 |
用户名称 |
gbk |
否 |
|
user_sex |
varchar |
32 |
用户性别 |
gbk |
否 |
|
user_address |
varchar |
100 |
地址 |
gbk |
否 |
|
user_tel |
varchar |
32 |
电话 |
gbk |
否 |
|
user_grade |
varchar |
32 |
等级 |
gbk |
否 |
表4-10 评价表
|
字段名称 |
类型 |
大小 |
注释 |
编码 |
主键 |
|
val_id |
varchar |
36 |
评价编号 |
gbk |
是 |
|
creare_date |
datetime |
0 |
评价日期 |
- |
否 |
|
sgd_id |
varchar |
36 |
体育用品编号 |
gbk |
否 |
|
sgd_name |
varchar |
300 |
体育用品名称 |
gbk |
否 |
|
sgd_size |
varchar |
32 |
尺寸 |
gbk |
否 |
|
sgd_color |
varchar |
32 |
颜色 |
gbk |
否 |
|
user_id |
varchar |
36 |
用户编号 |
gbk |
否 |
|
user_name |
varchar |
32 |
用户名称 |
gbk |
否 |
|
sale_id |
varchar |
36 |
销售编号 |
gbk |
否 |
|
val_user_grade |
varchar |
32 |
用户评价 |
gbk |
否 |
|
val_user_desc |
varchar |
100 |
评价描述 |
gbk |
否 |
/** * 销售列表 页面跳转 * * @return */ @RequestMapping(params = "listByUser") public ModelAndView listByUser(HttpServletRequest request,HttpServletResponse responce) { TSUser user=new TSUser(); String userKey=user.getUserKey(); String userId=user.getId(); if("普通用户".equals(userKey)){ System.out.println("普通用户"); List<SsSaleEntity> saleList=systemService.findByProperty(SsSaleEntity.class, "userId", userId); System.out.println(saleList.toString()); request.setAttribute("ssSaleList", saleList); } return new ModelAndView("com/jeecg/sssale/ssSale-listByUser"); }
第5章 系统实现
在模块实现阶段,主要是编码实现各模块的具体功能,每个功能模块实现后,在进行单元测试,然后将模块集成后测试,再进行系统测试,最终形成一个完善的系统。本章主要介绍本系统的实现。
5.1 管理员操作页面
5.1.1 管理员登录页面
功能:用户登录
请求进入login方法,获取当前用户的用户名,密码
如果该用户信息存在于数据库中,就获取对应角色信息。
加载角色对应权限。
设置cookie
相应浏览器去加载login.jsp界面
参数: HttpServletRequest request
参数: ModelMap modelMap
参数: HttpServletResponse response
返回值:login/login
图 5-1管理员登录界面
管理员登录部分代码:
@RequestMapping(params = "login") public String login(ModelMap modelMap,HttpServletRequest request,HttpServletResponse response) { TSUser user = ResourceUtil.getSessionUserName(); String roles = ""; if (user != null) { List<TSRoleUser> rUsers = systemService.findByProperty(TSRoleUser.class, "TSUser.id", user.getId()); for (TSRoleUser ru : rUsers) { TSRole role = ru.getTSRole(); roles += role.getRoleName() + ","; } if (roles.length() > 0) { roles = roles.substring(0, roles.length() - 1); } modelMap.put("roleName", roles); modelMap.put("userName", user.getUserName()); modelMap.put("currentOrgName", ClientManager.getInstance().getClient().getUser().getCurrentDepart().getDepartname()); request.getSession().setAttribute("CKFinder_UserRole", "admin"); SysThemesEnum sysTheme = SysThemesUtil.getSysTheme(request); if("ace".equals(sysTheme.getStyle())||"diy".equals(sysTheme.getStyle())||"acele".equals(sysTheme.getStyle())||"hplus".equals(sysTheme.getStyle())){ request.setAttribute("menuMap", getFunctionMap(user)); } Cookie cookie = new Cookie("JEECGINDEXSTYLE", sysTheme.getStyle()); //设置cookie有效期为一个月 cookie.setMaxAge(3600*24*30); response.addCookie(cookie); Cookie zIndexCookie = new Cookie("ZINDEXNUMBER", "1990"); zIndexCookie.setMaxAge(3600*24);//一天 response.addCookie(zIndexCookie); System.out.println(sysTheme.toString()); return sysTheme.getIndexPath(); } else { return "login/login"; } }
5.1.2 管理员后台
图 5-2管理员后台界面
5.1.3 供应商信息列表
图 5-3 供应商信息列表展示界面
5.1.4体育用品采购单录入
图 5-4 体育用品采购录入界面
5.1.5 库存管理列表
功能:体育用品列表 页面跳转
当Spring框架的前端控制器接收到浏览器请求时,解析请求得到命令list。
进入list函数。
直接跳转页面至com/jeecg/sssportsgoods/ssSportsGoodsList路径。
参数:list命令
返回值:体育用品列表的jsp文件路径
功能: 体育用品新增页面跳转
当得到goAdd命令后,先判断当前体育用品的ID是不是空,不是空就加载 page.
直接转至com/jeecg/sssportsgoods/ssSportsGoods-add路径
参数:ssSportsGoods
图 5-5 库存列表展示界面
库存管理功能部分代码:
@RequestMapping(params = "list") public ModelAndView list(HttpServletRequest request) { return new ModelAndView("com/jeecg/sssportsgoods/ssSportsGoodsList"); } @RequestMapping(params = "goAdd") public ModelAndView goAdd(SsSportsGoodsEntity ssSportsGoods, HttpServletRequest req) { if (StringUtil.isNotEmpty(ssSportsGoods.getId())) { ssSportsGoods = ssSportsGoodsService.getEntity(SsSportsGoodsEntity.class, ssSportsGoods.getId()); req.setAttribute("ssSportsGoodsPage", ssSportsGoods); } return new ModelAndView("com/jeecg/sssportsgoods/ssSportsGoods-add"); }
5.1.6 库存管理列表
功能:体育用品列表 页面跳转
当Spring框架的前端控制器接收到浏览器请求时,解析请求得到命令list。
进入list函数。
直接跳转页面至com/jeecg/sssportsgoods/ssSportsGoodsList路径。
参数:list命令
图 5-6财务管理界面
财务管理功能部分代码:
/** * 财务列表 页面跳转 * * @return */ @RequestMapping(params = "list") public ModelAndView list(HttpServletRequest request) { return new ModelAndView("com/jeecg/ssfinance/ssFinanceList"); }
5. 2 体育用品展示
5.2.1 分类展示页面
页面在加载整体架构时加载到导航栏。
点击导航栏时浏览器向服务器发送一个异步的ajax请求。请求地址为:体育用品分类方法。以post方式传值。参数为体育用品标签。
当服务器处理完成,返回体育用品分类信息时。对响应数据进行解析。
将每一条体育用品属性遍历输出到页面。
图 5-7 体育用品分类界面
分类功能部分代码:
$.ajax({ url:\'ssSportsGoodsController.do?doSelect\', type:\'post\', data:{"sgdSign":sgdSign}, dataType:\'json\', success:function(result){ console.log("result.msg:"+result); var list=result.obj; for( var i=0;i<list.length;i++){ var e=list[i]; console.log(e.sgdValuation); var div=\'<div class="rcmd_size" ><a id=\'+ e.id+\'><img class="rcmd_img" src="\' +e.sgdImg+\'"><h3>\' +e.sgdName+\'</h3><p><span class="sgdPrice">¥\' +e.sgdPrice+\'</span><span class = "recommend_star"><img src="images/anstar.png" class = "img1" ><img src="images/anstar.png" class = "img2" ><img src="images/anstar.png" class = "img3" ><img src="images/anstar.png" class = "img4"><img \'; console.log(e.sgdName); var $div=$(div); $div.data("id",e.id); console.log("Id:"+e.id); $("#select").append($div); setEvaluate("#"+e.id,e.sgdValuation); } }, error:function(){ console.log("ajax发送失败!"); } }); /*点击查看*/ $("#select").on("click","a",function(){ console.log(this); $this=$(this); var id=$this.attr(\'id\'); console.log(id); window.location.href="ssSportsGoodsController.do?goDetails&id="+id; });
5.2.2 体育用品详情
功能:体育用品详细情况页面展示
在服务器接收到浏览器发送的请求details时,进入details方法。
通过id查询数据库,找到该体育用品的全部详细信息。
通过ajaxJson对象将data:体育用品信息,msg:体育用品信息查询成功。Code:200
等信息发送给浏览器。
浏览器解析完成。画出页面。
参数:ssSportsGoods
参数:request
返回值:ajax对象
图 5-8 体育用品详情界面
体育用品详细情况部分代码:
@RequestMapping(params = "details") @ResponseBody public AjaxJson details(SsSportsGoodsEntity ssSportsGoods, HttpServletRequest request) { String message = null; System.out.println("details"); AjaxJson j = new AjaxJson(); message = "体育用品查询成功"; String id=request.getParameter("id"); System.out.println(id); try{ ssSportsGoods=ssSportsGoodsService.details(id); j.setObj(ssSportsGoods); //systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message = "体育用品查询失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; }
5.2.3 相关推荐页面
图 5-9 体育用品推荐界面
5. 2.4 系统欢迎界面
使用jeecg框架。画一个jsp首页页面。
图5-10 系统欢迎界面
首页代码:
<ul class="user-menu pull-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close"> <li> <a href="javascript:add(\'<t:mutiLang langKey="common.change.password"/>\',\'userController.do?changepassword\',\'\',550,200)"> <i class="icon-cog"></i> <t:mutiLang langKey="common.change.password"/> </a> </li> <li> <li> <a href=ssShoppingcartController.do?goSelect> <i class="icon-cloud"></i> 我的购物车 </a> </li> <li><ahref="javascript:openwindow(\'我的订单\',\'ssSaleController.do?listByUser\'),\'800px\',\'700px\'"> <ahref=ssSaleController.do?list> <i class="icon-cloud"></i> 订单记录 </a> <li> <ahref="javascript:clearLocalstorage()"> <i class="icon-cog"></i> <t:mutiLang langKey="common.clear.localstorage"/> </a> </li> <liclass="divider"></li> <li> <ahref="javascript:logout()"> <i class="icon-off"></i> <t:mutiLang langKey="common.logout"/> </a> </li> </ul>
5.3 顾客展示页面
5.3.1 顾客注册
功能:用户注册
用户在登录之前有且仅有一次的注册操作。
将页面jsp的form表单返回服务器的值进入saveUser方法处理。
对用户信息进行一系列的验证。比如密码存入数据库需要MD5加密。
给用户分配角色
保存用户角色关系
将用户存入数据库。
将操作结果以ajax对象返回给浏览器输出。
参数:user
返回值:ajax对象
图5-11 顾客注册界面
部分代码如下:
/** * 用户注册 * * @param user * @param req * @return */ @RequestMapping(params = "saveUser") @ResponseBody public AjaxJson saveUser(HttpServletRequest req, TSUser user) { String message = null; AjaxJson j = new AjaxJson(); // 得到用户的角色 String roleid = "402880e74d75c4dd014d75d3c5f40001"; user.setDepartid("2c9eb0f762db89f40162db8e4efb0003"); String password = oConvertUtils.getString(req.getParameter("password")); if (StringUtil.isNotEmpty(user.getId())) { TSUser users = systemService.getEntity(TSUser.class, user.getId()); users.setEmail(user.getEmail()); users.setOfficePhone(user.getOfficePhone()); users.setMobilePhone(user.getMobilePhone()); user.setUserKey("普通用户"); message = "用户: " + users.getUserName() + "更新成功"; if (StringUtil.isNotEmpty(roleid)) { saveRoleUser(users, roleid); } saveUserOrgList(req, user); systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); } else { TSUser users = systemService.findUniqueByProperty(TSUser.class, "userName",user.getUserName()); if (users != null) { message = "用户: " + users.getUserName() + "已经存在"; } else { user.setPassword(PasswordUtil.encrypt(user.getUserName(), password, PasswordUtil.getStaticSalt())); user.setStatus(Globals.User_Normal); user.setDeleteFlag(Globals.Delete_Normal); systemService.save(user); message = "用户: " + user.getUserName() + "添加成功"; if (StringUtil.isNotEmpty(roleid)) { saveRoleUser(user, roleid); } saveUserOrgList(req, user); systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO); } } j.setMsg(message); return j; }
5.3.2 修改个人信息
功能:修改个人信息。
获得浏览器上新的用户实体
以ajax的方式传到服务器,服务器通过addorupdate方法将整个user更新至数据库
返回更新结果。
参数:user
参数:req
返回值:ajax对象
图5-12 顾客修改个人信息界面
主要代码如下:
@RequestMapping(params = "addorupdate") public ModelAndView addorupdate(TSUser user, HttpServletRequest req) { return new ModelAndView("system/user/user"); } @RequestMapping(params = "register") public ModelAndView register(TSUser user, HttpServletRequest req) { return new ModelAndView("system/user/user-register"); }
5.3.3 修改密码
功能:对密码进行修改
从页面获取原密码与新密码。
数据规则限制密码长度与一致性检验。
将密码传回服务器处理,更新数据库旧密码为新密码
图5-13修改密码界面
主要代码如下:
<body style="overflow-y: hidden" scroll="no">
<t:formvalid formid="formobj" refresh="false" dialog="true" action="userController.do?savenewpwd" usePlugin="password" layout="table">
<input id="id" type="hidden" value="${user.id }">
<table style="width: 550px" cellpadding="0" cellspacing="1" class="formtable">
<tbody>
<tr>
<td align="right" width="10%"><span class="filedzt">原密码:</span></td>
<td class="value"><input type="password" value="" name="password" class="inputxt" datatype="*" errormsg="请输入原密码" /> <span class="Validform_checktip"> 请输入原密码 </span></td>
</tr>
<tr>
<td align="right"><span class="filedzt">新密码:</span></td>
<td class="value"><input type="password" value="" name="newpassword" class="inputxt" plugin="passwordStrength" datatype="*6-18" errormsg="密码至少6个字符,最多18个字符!" /> <span
class="Validform_checktip"> 密码至少6个字符,最多18个字符! </span> <span class="passwordStrength" style="display: none;"> <b>密码强度:</b> <span>弱</span><span>中</span><span class="last">强</span> </span></td>
</tr>
<tr>
<td align="right"><span class="filedzt">重复密码:</span></td>
<td class="value"><input id="newpassword" type="password" recheck="newpassword" class="inputxt" datatype="*6-18" errormsg="两次输入的密码不一致!"> <span class="Validform_checktip"></span></td>
</tr>
</tbody>
</table>
</t:formvalid>
</body>
5.3.4 查看购物车
功能:显示用户个人购物车信息
当浏览器传回请求查看购物车时进入goselect方法。加载购物车原页面。
进入doselect方法去数据库中查找该用户的所有购物车记录。将其显示在之前加载好的购物车页面里。
图 5-14 顾客查看购物车界面
主要代码如下:
/** * 查看购物车 */ @RequestMapping(params = "doSelect") @ResponseBody public AjaxJson doSelect(SsShoppingcartEntity ssShoppingcart, HttpServletRequest request) { String message = null; AjaxJson j = new AjaxJson(); message="购物车列表显示成功"; try{ TSUser user = ResourceUtil.getSessionUserName(); ssShoppingcart.setCreateName(user.getUserName()); System.out.println("显示购物车:"+ssShoppingcart.getCreateName()); List<SsShoppingcartEntity> list=ssShoppingcartService.select(ssShoppingcart); systemService.addLog(message, Globals.Log_Type_OTHER, Globals.Log_Leavel_INFO); System.out.println("list.size:"+list.size()); Map<String, Object> map=new HashMap<String,Object>(); for(SsShoppingcartEntity e:list){ System.out.println(e.toString()); SsSportsGoodsEntity entity=systemService.findUniqueByProperty(SsSportsGoodsEntity.class, "id", e.getSpctSgdId()); String[] strs=entity.getSgdImg().split(";"); System.out.println("shuzucd:"+strs.length); for(int i=0;i<strs.length;i++){ if(strs[i]!=null&&strs[i]!=""){ map.put(e.getId(), strs[i]); break; } } } j.setAttributes(map); j.setObj(list); }catch(Exception e){ e.printStackTrace(); message = "购物车删除失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; }
5.3.5 立即购买
申请支付宝开发平台开发者身份。
创建小宇宙体育用品商店应用
申请沙箱测试使用。
将支付到SDK下载,并在本地运行。
申请natapp域名,在172.0.0.1:8085的本地地址和Tomcat进程端口与外网之间建立穿透隧道。
接入支付宝项目接口。
配置支付宝页面路径参数配置文档。
使用post请求将页面生成的购买信息传到服务器,调用alipay的alipayRequest.setBizContent()方法。
发送请求至alipay开放平台服务器,请求处理消费业务。
对返回的数据进行解码,验签,并做数据存储工作。
图 5-15 立即付款界面
主要代码如下:
/** * 1. 统一收单下单并支付页面接口alipay.trade.page.pay: * @param httpResponse * @throws IOException */ @RequestMapping(params = "doPost") public void doPost(HttpServletRequest httpRequest, HttpServletResponse httpResponse) throws ServletException, IOException { System.out.println("支付开始"); httpResponse.reset(); try { String sgd=new String(httpRequest.getParameter("sgd").getBytes("ISO-8859-1"),"UTF-8"); String[] sgds=sgd.split(";"); SsSaleEntity ssSale=new SsSaleEntity(); AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.GATEWAYURL, AlipayConfig.APP_ID, AlipayConfig.APP_PRIVATE_KEY, AlipayConfig.FORMAT, AlipayConfig.CHARSET, AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.SIGN_TYPE); //获得初始化的AlipayClient AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();//创建API对应的request alipayRequest.setReturnUrl(AlipayConfig.RETURN_URL); alipayRequest.setNotifyUrl(AlipayConfig.NOTIFY_URL); String form=""; try { form = alipayClient.pageExecute(alipayRequest).getBody(); System.out.println("支付结束"); System.out.println(form); httpResponse.setContentType("text/html;charset=" + AlipayConfig.CHARSET); httpResponse.getWriter().write(form); httpResponse.getWriter().flush(); httpResponse.getWriter().close(); } catch (AlipayApiException e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); throw new BusinessException(e.getMessage()); } }
5.3.5 订单查询页面
功能:订单查询
发送订单查询请求至服务器。
服务器验证当前用户身份。
查询对应的订单信息。
以ajax形式返回数据至浏览器。
图 5-16 订单查询界面
订单查询部分代码:
/** * 销售列表 页面跳转 * * @return */ @RequestMapping(params = "listByUser") public ModelAndView listByUser(HttpServletRequest request,HttpServletResponse responce) { TSUser user=new TSUser(); String userKey=user.getUserKey(); String userId=user.getId(); if("普通用户".equals(userKey)){ System.out.println("普通用户"); List<SsSaleEntity> saleList=systemService.findByProperty(SsSaleEntity.class, "userId", userId); System.out.println(saleList.toString()); request.setAttribute("ssSaleList", saleList); } return new ModelAndView("com/jeecg/sssale/ssSale-listByUser"); }
第6章 系统测试
测试是开发时期最后的一个阶段,是保证软件质量的重要手段。软件测试就是在受控制的条件下对系统或应用程序进行操作并评价结果的过程,所谓控制条件应包括正常条件与非正常条件。软件测试过程中应该故意地去促使错误发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是“测探”,在“测探”中表现软件的毛病。
6.1 测试目的
1.测试是为了发现程序中的错误而执行程序的过程。
2.好的测试实际可能发现迄今为止尚未发现的错误的测试。
3.成功的测试时发现了至今为止尚未发现的错误的测试。
6.2 测试的基本原则
1.所有的测试都应追溯到用户需求。
2.应该在测试工作真正开始前的较长的时间内就进行测试计划。
3.测试的二八原则,即测试发现错误的80%的错误很可能出现在20%的模块中,而且这20%的模块在更改之后仍然容易出错。
4.测试应从“小规模”开始逐步转向“大规模”。
5.为了达到最佳的有效的测试,应有独立的第三方来构造测试。
6.避免开发人员自己测试自己的程序。
6.3 测试的种类
测试一般分为两大类:动态测试方法与静态测试方法,而动态测试方法中又根据测试的设计方法不同又分为黑盒测试和白盒测试。
1.静态测试:
静态测试就是不实际运行被测系统,而只是静态的检查系统代码、界面或文档中可能存在的错误的过程。静态测试包括人工检测,计算机辅助静态分析。
2.动态测试
动态测试就是通过运行软件来检验软件的动态行为和运行结果的正确性。
i:黑盒测试:也称为功能测试或数据驱动测试,它是在已知产品所应具有的功能的基础上,通过测试来检验每个功能是否都能正常使用。
ii:白盒测试:也称为结构测试或逻辑驱动测试。在测试时把程序看做一个打开的白盒子,它是知道产品的内部工作过程,而不顾它的功能,可通过测试来检测产品内部动作是否按照规格说明书要求正常进行。
6.4 测试的策略
软件测试策略把软件测试用例的设计方法集成到一系列经过周密计划的步骤中哪个区,从而是软件的测试得以成功完成。
1.单元测试:又称模块策测试,是最小单位的测试。单位测试的对象是软件设计的最小单位——模块或软件构件。
2.集成测试:也称组装测试。是在单元测试的基础上。将所有的模块按照概要设计要求组装成为子系统或系统进行测试。
3.确认测试:通过集成测试之后,软件已完全组装起来,借口方面的错误也已排除,确认测试即可开始。确认测试又称有效性测试,它的任务是检查软件能否按合同的要求进行工作,即满足软件需求规格说明书中的确认标准。
4.系统测试:它是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。
6.5 测试实例
表 6-1 系统测试实例(一)
|
测试目的:测试本系统管理员能否添加体育用品记录 |
|
|
预设条件:使用有效的管理员用户身份登录系统 |
|
|
测试过程 |
预期结果 |
|
通过身份验证,用户登录进入管理后台页面 |
正常显示体育用品页面 |
|
点击导航栏中“供应商”下二级目录供应商基本信息,点击录入供应商 |
弹出录入界面 |
|
填写所有供应商信息,点击确定 |
在列表显示该套供应商信息 |
|
查看体育用品列表筛选出中缺货的体育用品信息 |
列表显示缺货体育用品 |
|
点击“补货”按钮,并进行采购录入 |
弹出录入界面 |
|
填写采购信息,点击确定按钮,并查看 |
采购单列表显示采购记录 |
|
更新采购状态为完成采购 |
修改体育用品表对应缺货体育用品信息修改 |
|
完成测试 |
上述操作均达到“测试”要求 |
|
测试实际结果:1.点击提交按钮后成功显示“提交成功”; 2.上述的操作结果记录均成功保存在数据库中 |
|
表 6-2 系统测试实例(二)
|
测试目的:测试本系统顾客购买功能 |
|
|
预设条件:使用有效的顾客身份登录系统 |
|
|
测试过程 |
预期结果 |
|
通过身份验证,用户登录进入网站 |
正常显示系统页面 |
|
点击导航栏中的“足球分类”的二级目录足球 |
显示所有足球相关体育用品 |
|
点击其中一款体育用品 |
显示该用品的详细介绍页面 |
|
选择颜色,尺寸并点击加入购物车 |
显示购物车信息 |
|
选择数量并以及购买 |
显示支付宝付款界面 |
|
手机扫描二维码付款 |
显示付款成功并返回本系统 |
|
完成测试 |
上述操作均达到“测试”要求 |
|
测试实际结果:1.点击提交按钮后成功显示“提交成功”; 2.上述的操作结果记录均成功保存在数据库中 |
|
表 6-3 系统测试实例(三)
|
测试目的:测试本系统体育用品分类功能 |
|
|
预设条件:使用有效的顾客员身份登录系统 |
|
|
测试过程 |
预期结果 |
|
通过身份验证,用户登录进入网站 |
正常显示系统页面 |
|
点击导航栏中“足球” |
弹出二级目录 |
|
点击足球 |
显示所有足球用品 |
|
点击“性别分类”导航 |
弹出二级目录,男士,女士 |
|
点击女士 |
显示所有女士体育用品 |
|
完成测试 |
上述操作均达到“测试”要求 |
|
测试实际结果:1.点击提交按钮后成功显示“提交成功”; 2.上述的操作结果记录均成功保存在数据库中 |
|
6. 6 系统评价
系统评价是指系统在正常运行了一段时间之后,对它在功能上、技术上和经济上所进行的审核评价。针对本系统的评价如下:
(1)系统功能评价
根据本系统开发前所订的目标,在系统完成后经过测试运行,该系统达到了预定的开发目标,在实际应用中的功能可以满足用户需求。
(2)系统技术评价
本系统设计合理,功能达到了预期目标,且系统运行后稳定可靠,安全性高,具有实用性,大大提高了管理效率。
(3)系统经济评价
在规定时间内,该系统完成了系统分析时所确定的系统开发目标,达到了设计要求,投入使用后可以为用户节省大量的人力物力财力,提高科学管理水平。
结论与展望
体育用品商店的网络化是时代必然的产物。互联网+体育用品的销售模式势必会复制其他电商的成功经验。而一个好的体育用品商店不仅能丰富消费者的购物方式,提供更加简单,方便,安全,快捷的购物体验。更能为拥有体育用品商店系统的企业减少成本,降低风险,增加利润,创造营收。网上体育用品商店就是这样的网上体育用品分类管理销售平台。它能通过前端网站给顾客提供销售平台,又能在管理后台让管理者维护所有的平台信息,提供最好的服务给顾客。
在以进销存的管理方式设计商铺管理的时候发现,web前端的数据不好嵌进去,因为计算机辅助的管理系统实现了信息的共享和实时传播,不在需要ERP系统的那套由许多表和单据构成的一整套体系,但是,现在不用系统管理的线下依旧走的是ERP系统以表单作为凭证,考虑再三,最终决定给数据库中加入大量冗余来兼容当下的社会现状,虽说随着计算机系统管理的普及,以后会一表走遍天下,但系统设计出来就是给人用的,一定要符合时代特色,虽然这不是最完美的。
最后一点,也是最让人心累的一点。本系统是我用一份全新的技术实现的,学习新事物的过程是痛苦的,我与JEECG框架之间的磨合是血淋淋的,JEECG框架存在的意义就是简化程序员的开发流程,通过原型法在系统模板上进行二次开发,据说,这样能节约60%的开发时间,大大提高开发效率!短短两周时间里,我要了解并且使用它做一份系统出来真的很难,表示办不到。即便这样我依旧做了大胆的尝试,结果可能是枚苦果,但又怎样,能坚持到最后的成功才是真正的成功,其中的都只是失败是成功之母!学习JEECG的过程中,我明白了说明文档是程序员的法典,良好的编码习惯是程序员的优秀美德,为了未来某天,我也要认真写文档,认真写注释。在此,又一次诠释了百度不是万能的,JEECG中的很多问题百度是搜不到答案的,只有自己试验才能得到想要的结果。
本次毕设终止时间是到了,但体育用品商店的项目并没有结束,由于时间和所学知识的限制,本系统还有所欠缺,比如退款与评价功能还不够全面以及图片导入功能只能通过URL路径完成等。我会在未来的日子里一边学习,一遍完善系统。期待未来有一天“小宇宙体育用品商店”可是真正实现商用。
致谢
毕业设计是我们大学生活的最后一课,既有像高考一样,终结我们为期四年的大学学习,检验我们学习结果那般重要。又像是在大学生活的最后一个阶段,老师最后的教导,照亮我们未来的路。
首先感谢我的毕业设计指导老师周梁对我的悉心帮助和指导她在有教学任务的同时仍抽出时间对我进行指导,使得我能顺利的进行“小宇宙体育用品商店”的研究和设计。从起初开题报告的撰写,周老师总是不厌其烦的帮我们审阅批注,然后我们再不断修改完善。到最后论文的定稿,周老师都进行的全面,具体,细心的指导。周老师工作认真负责,给我提出了许多很好的建议,让我能够顺利的完成本次毕业设计。
其次,我也要感谢计算机与信息学院的全体工作人员和四年来教会了我各种知识的老师,正是由于他们的悉心教导,让我学到了专业知识并让我有了进行实践的基础。也要对毕业设计的答疑老师和评阅教师致谢,你们的检验是对我最大的帮助。
最后感谢在整个毕业设计期间给予我帮助的同学,每当遇到问题难以解决,都积极给予我帮助,在他们的鼓励和帮助下我完成了我的毕业设计,在学到更多知识的同时收获了珍贵的友情。
作者:
年 月 日
参考文献
[1] 对我国体育用品业垄断与竞争现状的分析[D]. 李骁天.北京体育大学 2006
[2] 连锁超市供应链构建研究[D]. 李乾坤.武汉工业学院 2012
[3] 迪卡侬高尔夫品牌在北京地区的营销策略研究[D]. 冯佩剑.北京体育大学 2014
[4] 基于物联网的体育用品供应链管理系统的研究与设计[J]. 乔立波,郭明,贡勇强.物流技术. 2013(09)
[5]基于J2EE的体育用品物流信息管理系统的设计与研究[J]. 孙雪峰,高媛媛,白伟.物流技术. 2013(07)
[6] 体育用品专卖店管理系统的设计与实现[D]. 李欣蔚.电子科技大学 2014
[7]张旭光. 体育发展十三五规划发布[N]. 中国体育报,2016-05-06(001).
[8]韩秉志. 运动热潮带火体育产业[N]. 经济日报,2018-01-18(007).
[9]本刊讯.融合与发展——2017《体育科学》《中国体育科技》学术研讨会纪实[J].体育科学,2017,37(07):95-96.
[10]沈琦. 迪卡侬公司(中国)的市场营销策略研究[D].山东大学,2017.
[11]魏苏妮,冉毅,顾超,涂冠妃.凡客诚品:AISAS模式的应用实例[J].销售与市场(评论版),2009(08):66-71.
[12]李刚.轻量级Java EE企业应用实战(第3版):Struts 2+Spring 3+Hibernate整合开发.
[13]王忠群.软件工程 合肥:中国科学技术大学出版社,2009.11 ISBN 978-7-312-02572-3.
[14]吕凤翥,马皓.Java语言程序设计 北京:清华大学出版社,2006.1.
[15]Tobias Johansson,Johan Kask. Configurations of business strategy and marketing channels for e-commerce and traditional retail formats: A Qualitative Comparison Analysis (QCA) in sporting goods retailing[J]. Journal of Retailing and Consumer Services,2016.
[16]Anonymous. SilverSport Fitness Products Features Terra Silver Technology[J]. Manufacturing Close - Up,2011.
附 录
附录A:外文资料及中文译文
Retail supply chain
20 Since the 1990s, the globalization of the economy, market conditions, Business and competition among enterprises has evolved into the supply chain and the an integrated management ideas and methods, supply chain management around the core business, through the flow of materials, funds, information flow, will be suppliers, manufacturers, distributors, retail customers until the final composition of the supply chain together into an overall management model. At present, China\'s large retail enterprises in the supply chain management awareness has remained only at the operational level, not to treat it as a corporate strategy to implement an important component of the it is only through the supply chain management of strategic thinking, with the types of goods used to build the supply chain to acquire strategic match, can we make our retail enterprise supply chain management to implement a qualitative leap.
1.An efficient supply-chain and supply-chain reaction
Supply chain there are two main functions : to the logistics function and flow function. Supply chain logistics functions refer to the minimum cost of the raw materials processed into components, semi-finished products, products and their supply chain from a node to another node; supply chain to flow function refers to the market demand to make rapid response, to ensure an appropriate product in the appropriate place and time to meet the needs of customers. Logistics functions to flow and function needs some costs, which together constitute the total supply chain costs, with the main logistics costs including transport, storage, packaging, handling, distribution processing, distribution costs, flow to the cost of including an oversupply of commodities price losses, and supply of stock losses and the resulting loss of potential income customers The general sense is the supply chain and logistics business flow between these two functions of the balance, responsiveness and efficiency cost trade-off between the level. Supply chain management is an integrated management ideas and methods, in the increasingly fierce market competition, the rapid development of information technology today, the supply chain tends to shorten the response time to meet the evolving needs of users. In this time based on the competition, supply chain operations with the needs of the market simultaneously, not only faster response speed, and a flexible response to the magic. Supply chain reaction capacity available supply chain following tasks ability to measure : Is able to demand significant changes to respond; whether it can satisfy customers in a shorter period of Availability; whether it will provide customers with more varieties of products; the possibility of providing innovative products; ability to provide a high level of customer service. Supply chain has more of the above capacity, the supply chain reaction capability will be. However reaction of the increase must also pay the cost of the price increase. For example, to meet the demand for the drastic change in, it needs higher inventory levels, leading to a declining level of efficiency. Therefore, each raising a strategic response capability will have to pay additional costs, thereby reducing efficiency levels, and vice versa.
Supply chain efficiency is to achieve a supply chain logistics functions as a major objective, that is, at a minimum cost of raw materials into parts, and finished products, and eventually sent to the hands of
consumers. Efficient supply-chain needs of the market, the characteristics of the product and related technologies are relatively stable, thus the supply chain nodes of the enterprise can focus on access to the benefits of economies of scale, improve equipment utilization, lower production, transportation, warehousing and other aspects of the associated costs, so as to minimize product costs. Supply chain reaction was achieved in the supply chain to flow function as a major objective, that the right to make changes in market demand, rapid response, such as supply chain for products, the market demand is very great uncertainty, or a shorter product life cycle, product or technology developed rapidly, products or seasonal fluctuations in demand strong. Supply Chain Reaction need to maintain a higher adaptability to the market and achieve flexible production, thereby reducing product obsolescence and the risks of failure. Supply chain strategy is in the supply chain-reaction capability and efficiency levels between the balance Once the retail enterprise supply chain strategy, stress reaction of the supply chain must be all the functions strategy designed to enhance its response capabilities, emphasizing efficiency and the level of the supply chain, it must allow all the functions of the strategies used to improve efficiency and make contribution.
2. Retail enterprise sales of household items, refrigerated food, food processing temperature. Functional value of the life cycle length, needs stability can accurately forecast, so that supply and demand can achieve almost perfect balance, This makes it easy to adjust the market, the business flow costs can be omitted. Retail enterprises can concentrate almost all his energy to reduce logistics costs, with the upstream suppliers, in close cooperation accelerate inventory turnover, timely inventory and to adopt high-efficiency low-cost procurement and the right to choose suppliers on cost and quality, According to market forecasts to ensure balanced effectively meet the needs of its customers bring the whole of the supply chain to minimize inventory and maximize efficiency. Clearly, the functional efficiency of the process of commodity requirements, operators such goods retail enterprises should adopt efficient supply chain.
Innovative products refers to the design or services, and so on innovative products, such as fashion, high-end appliances Fashion and luxury goods such. These commodities can bring higher profits, but because of its short life cycle and commodity diversification, demand is difficult to predict accurately, a large number of fake products and the emergence of innovative products will weaken the competitive edge, Enterprises had to undergo a series of more new innovations, so that the demand for more unpredictability. Innovative products with a high degree of market uncertainty, increased the risk of an imbalance in supply and demand, Therefore the main cost is not the cost of business flow logistics costs, Retail enterprises need to market changes fast and flexible response to customer demand. Choice of suppliers to not consider the low-cost, but access speed and flexibility; inventory and production capacity in key decision-making is not to minimize the cost, but the speed and flexibility of response. to minimize the market demand for the uncertainty caused by the loss. Clearly, innovative products to respond quickly to the request process, the operation of such goods retail enterprises should adopt reactive supply chain. If the retail business is a function of the value of goods they used reactive supply chain, Or maybe the operators are innovative products that have adopted efficient supply chain, supply chain strategy will be a fundamental error, it is necessary to redesign the supply chain. Retail enterprise supply chain management strategy implementation
1. Recognition of the value of retail enterprises demand characteristics, we can commodity production cycle, demand predictability, and the market value of diversity into view with the standard of service and so on to identify the characteristics of the demand for commodities. In general, the functional value of the longer life cycle (more than two years), innovative products and the life cycle is short (3 months to 1 year);
functional value less variety (10-20 kinds of deformation), innovative products more varieties (usually up to 10 million species of deformation); functional commodity demand forecast error is less (10%), innovative products forecast larger deviations (40%~100%); Functional value of the average stock lower rate (1% ~ 2%), innovative commodity stock average rate higher (10 to 40%); functional commodity market into a longer term (6 months to 1 year), innovative products into the market for a shorter period (1 day to 2 weeks); Functional commodities lower profit contribution rate (is 5% -20%), innovative products higher profit contribution rate (20% ~ 60%). Criterion use these can be effective in identifying characteristics of the demand for commodities.
2. Implementation of retail merchandise categories manage retail commodity categories management refers to a retail commodity groups as a strategic business unit management, to concentrate on transmission and consumers realize the value, in order to obtain better operating performance. Specifically, the retail enterprises operating on all goods by category classification, identification and measurement of each functional category of commodities, income, growth and other indicators, and the types of goods divided into functional goods and innovative products. On this basis, consider combining various types of commodity inventory levels and display shelves, and other factors, the development of commodity varieties, the entire merchandise category management, enhance customer service levels and achieve overall commodity categories of overall revenue maximization.
3. According to the types of goods respectively corresponding supply chain strategy for functional products should focus on lowering the cost of logistics. using efficient supply chain, the implementation of effective customer response (ECR) system. From the enhancement of the efficiency of the supply of goods start. and upstream suppliers and manufacturers between the use of modern information technology to establish mutual coordination modes of supply, Retailers use POS systems, the sales and distribution of synchronous operation and sharing of logistics facilities and storage resources, lower distribution costs, minimizing production and distribution processes may produce the waste. For innovative products should focus on lowering costs to flow, using reactive supply chain, the implementation of rapid response (QR) system. Raising the speed of response to customers, and supply chain parties to establish strategic partnership and cooperation mechanism EDI use of EDI technology nodes of the supply chain division of the enterprise collaboration and information sharing, reduce the volume of the design and production cycle, the implementation of JIT production, multiple varieties of small batch production and the high frequency of small batch delivery, and lower supply chain inventory levels, quickly meet customers personalized and customized demand, improve the entire supply chain response capability.
外文文献中文翻译
零售业供应链
20世纪90年代以来,在经济全球化的市场条件下,企业与企业之间的竞争已经演变为供应链与供应链之间的竞争,沃尔玛、麦德龙、7-11等著名跨国零售企业在供应链管理的实践中取得了巨大成效,零售业只有尽快实施先进的供应链管理模式,才能在日益激烈的市场竞争中获得生存和发展。作为一种集成化的管理思想和方法,供应链管理是围绕核心企业,通过物流、资金流、信息流等,将由供应商、制造商、分销商、零售商直到最终的顾客所组成的供应链连成一个整体的管理模式。目前,我国的众多零售企业对供应链管理的认识还仅仅停留在运作层面上,没有将其看成是企业战略实施的重要组成部分,因此只有通过对供应链管理进行战略性思考,结合商品类型来构建供应链以获取战略匹配,才能使我国零售企业的供应链管理实施产生质的飞跃。
一、效率型供应链和反应型供应链
供应链主要有两类功能:物流功能和商流功能。供应链的物流功能是指以最低的成本将原材料加工成零部件、半成品、产品并将它们从供应链的一个节点运送到另一个节点;供应链的商流功能是指对市场需求做出迅速反应,确保以合适的产品在合适的地点和时间来满足顾客的需求。物流功能和商流功能都需要一定成本,两者构成供应链的总成本,其中物流成本主要包括运输、储存、包装、装卸、流通加工、配送等费用,商流成本则包括供过于求时的商品降价损失、供不应求时的缺货损失,以及由此而丧失的潜在顾客收入。一般意义上的供应链是在物流和商流这两个功能间的权衡,即反应能力与效率、成本水平之间进行权衡。
供应链管理是一种集成的管理思想和方法,在市场竞争日趋激烈、信息技术迅速发展的今天,供应链趋向于尽量缩短响应时间以满足不断变化的用户需求。在这种基于时间的竞争中,要求供应链运作模式与市场需求同步,不仅响应速度要快,而且要反应得柔性灵巧。供应链反应能力可用供应链完成以下任务的能力来度量:即是否能对需求的大幅度变动作出反应;是否能满足客户较短供货期的要求;是否能向客户提供较多品种的产品;是否能提供创新的产品;是否能为客户提供高水平的服务。供应链拥有的上述能力越多,供应链的反应能力就越强。然而反应能力的提高也必须付出成本增加的代价。例如,要满足需求量的大幅变动,就需要较高的库存水平,从而导致效率水平的下降。因此,每一种提高反应能力的战略都会付出额外的成本,从而降低效率水平,反之亦然。
效率型供应链是以实现供应链的物流功能为主要目标,即以最低的成本将原材料转化成零部件、在制品和成品,并最终送至消费者手中。效率型供应链面对的市场需求、产品特性和相关技术具有相对稳定性,因而供应链上的各节点企业可以关注于获取规模经济效益、提高设备利用率、降低生产、运输、库存等方面的相关费用,从而最大限度地降低产品成本。反应型供应链则以实现供应链的商流功能为主要目标,即对市场需求变化做出迅速的反应,这类供应链所提供的产品,其市场需求有很大的不确定性,或者产品生命周期较短,或者产品本身技术发展很快,或者产品需求的季节性波动很强。反应型供应链需要保持较高的市场应变能力,实现柔性生产,从而减少产品过时和失效的风险。供应链战略便是在供应链的反应能力和效率水平之间的平衡,零售企业一旦确定供应链战略之后,强调反应能力的供应链必须将其所有的职能战略设计用来提高其反应能力,而强调效率水平的供应链,则必须让所有的职能战略都用来为提高效率做贡献。
二、零售企业商品类型与供应链战略的匹配
零售企业的商品类型可以根据市场需求的特性划分为功能性商品和创新性商品。功能性商品是指那些用以满足基本需求、生命周期长、需求稳定且边际收益较低的商品,例如超市销售的各种日用百货、冷冻冷藏食品、常温加工食品等。功能性商品的生命周期长、需求稳定并可准确预测,从而使供求可以达到近乎完美的平衡,这使市场调节变得容易,其商流成本可以忽略不计,零售企业可以集中几乎全部精力来降低物流成本,通过与上游供应商的密切合作,加速库存周转,及时补充存货,采取高效率低成本的采购,对供应商的选择侧重成本和质量,根据市场预测保证均衡有效地满足顾客的需求,实现整条供应链的库存最小化和效率最大化。显然,功能性商品要求效率过程,经营此类商品的零售企业应当采用效率型供应链。 创新性商品是指在设计或者服务等方面创新的商品,例如时装、高档电器、时尚用品和奢侈品等。这些商品能够带来较高利润, 增加了供求不平衡的风险,因此其主要成本是商流成本而非物流成本,需要零售企业根据市场的变化快速灵活地响应顾客需求。选择供应商要考虑的不是低成本,而是获得速度和柔性;库存和生产能力的关键决策不是使成本最小化,而是响应速度和灵活性,以最大限度地减少市场需求的不确定性给企业造成的损失。显然,创新性商品要求灵敏反应的过程,经营此类商品的零售企业应当采用反应型供应链。如果零售企业经营的商品是功能性商品却采用反应型供应链,或者经营的是创新性商品却采用效率型供应链时,其供应链战略就发生了根本性的错误,这时就需要重新设计供应链。1773 零售企业供应链管理战略的实施
1.识别零售企业的商品需求特性
我们可以从商品的生产周期、需求可预测性、商品多样性以及市场导入期与服务的标准等方面来识别商品
的需求特性。一般来说,功能性商品的生命周期较长(两年以上),创新性商品的生命周期较短(3个月,1年);功能性商品的品种较少(10,20种变形),创新性商品的品种较多(通常有上千万种变形);功能性商品的需求预测偏差较小(10 %左右),创新性商品的预测偏差较大(40,,100%);功能性商品的平均存货率较低(1,,2%),创新性商品的平均存货率较大 (10,,40%);功能性商品的市场导入期较长(6个月,1年),创新性商品的市场导入期较短(1天,2周);功能性商品的利润贡献率较低(5,,20%),创新性商品的利润贡献率较高(20,,60%)。利用这些判别标准可以有效地识别商品的需求特性。 2.实施零售商品类别管理
零售商品类别管理是指零售商以某一商品类别作为战略经营单位进行管理,集中精力传递和实现消费者的价值,以取得更好的经营绩效。具体来说,零售企业对经营的所有商品按类别进行分类,确定和衡量每一类别商品的功能、收益性、成长性等指标,并将商品类型区分为功能性商品和创新型商品。在此基础上,结合考虑各类商品的库存水平和货架展示等因素,制定商品品种计划,对整个商品类别进行管理,提高顾客的服务水平,实现整个商品类别的整体收益最大化。
3.按照商品类型分别采用相应的供应链战略
对于功能型商品应当侧重于降低物流成本,采用效率型供应链,实施有效客户反应(ECR)系统。从提高商品供应的效率入手,与上游供应商和制造商之间利用现代信息技术建立相互协调的供应模式,零售商总部利用POS系统提供的商品销售信息,以及对销售量的预测,利用电脑辅助订货系统向供应商订货,由供应商或区域配送中心向各零售商店提供即时补货,拉动制造商进行产品生产,形成销售和配送的同步运转,共享物流设施和仓库资源,降低配送成本,最大限度地减少生产流通环节可能产生的各种浪费。对于创新型商品应当侧重于降低商流成本,采用反应型供应链,实施快速反应(QR)系统。从提高顾客响应的速度出发,与供应链各方建立战略伙伴关系和合作机制,采用EDI电子数据交换技术实现供应链各节点企业的分工协作和信息共享,缩短商品的设计和生产周期,实施JIT 生产方式,进行多品种中小批量生产和高频度小批量配送,降低供应链的库存水平,迅速地满足顾客的个性化和定制化需求,提高整个供应链的反应能力。
步入微利时代的零售业,要想提高相对利润,降低成本,向供应链要利润已经成为业内共识,因而受到广泛重视。统计数据显示,供应链管理的有效实施可以使企业总成本下降20%左右,供应链上的节点企业按时交货率提高15%以上,订货到生产的周期时间缩短20%-30%,供应链上的节点企业生产率增值提高15%以上。对成本远远高于国际平均水平的国内零售业来说,提高供应链管理不啻为一个保持竞争力的最有效的选择。
国内的零售业一直把沃尔玛奉为学习的楷模,人人都说,沃尔玛的成功是供应链的成功,沃尔玛高效的供应链体系也一直被国内企业追捧。但国内的零售业似乎很难效颦,从表象上看,拥有自己的卫星和遍布全球的大型服务器,每一台货物运输车辆上都拥有卫星移动计算机系统这一点,我国企业就难以效仿。同样,维持这一庞大网络的IT投入和升级管理费用也并不是多数企业可以承担和愿意冒险尝试的。但是通过表象,我们可以看到,沃尔玛供应链管理的很多思路并不复杂,其中有许多都是我们可以借鉴的,同时也要结合我们自身的特点,选择适合自己的方式。
与供应商合作
去年炒得沸沸扬扬的国美“封杀”格力事件,再次验证了“渠道为王”的正确性,也反映了国内零售巨头与强势品牌供应商之间的紧张关系。零供双方的争斗无疑是利益的博弈,只有双方都有利润可赚,这种合作才能继续下去。就是沃尔玛也同样曾经因为低价遭到中小供应商的抵制,曾出现过沃尔玛一提出价格,对方马上拍屁股走人的事。但后来出现的新技术降低了成本,沃尔玛也采取了诸多措施,譬如把IT模板提供给供应商,以此提高效率使供应商有利润可赚,双方的矛盾才得以缓和。所以说是高效的物流系统保证了沃尔玛的“天天低价”。
所以,作为零售终端,仅仅提高内部的供应链管理是远远不够的。现阶段企业的竞争已经不是单个企业间的竞争,而是与自己有协作关系的上下游企业共同组成的快速响应市场需求的供应链之间的竞争,任何一个节点出问题,供应链就不畅通,再高效的物流体系也会“掉链”。只有把这些企业都整合在一起,优化
配置人、财、物等诸多因素,使生产资料以最快的速度,通过生产、分销环节变成增值的产品,送到消费者手中,才能发挥出供应链的强大竞争力。对零售商来说,还要参与到供应商的生产计划和控制中去,搞好自己与供应商的信息共享交流,让供应商了解到自己的库存,帮助供应商降低物流成本。
这一点,美国沃尔玛做的非常好。沃尔玛要求所有的供应商都能通过网络实时了解自己产品的销售情况,以便及时地按排生产 解沃尔玛销售产品的成本构成,从而探求如何在生产中间降低成本。宝洁公司是最早加入这种合作关系的公司,所以,一般也把这种合作模式称为“宝洁—沃尔玛模式”。沃尔玛让宝洁自己来实现货价、库存管理,现在,宝洁公司能够通过网络系统及时地了解到自己产品的销售情况,甚至还成立了一个专门的部门负责和沃尔玛联系。同时,有宝洁营销人员常驻在沃尔玛的总部,负责随时处理订货需求。在双方结算中实现了ETF转账结算,避免了支票的时滞和错误。通过这种产销联盟的建立,实现了产销双方的双赢。通过这种合作关系,沃尔玛如今已经成为了宝洁最大的经销商,并且有效控制了库存和缺货,节省了大量费用,同时宝洁也优化了自己的管理。同样是沃尔玛,由于国内多数供应商的信息系统远远比不上沃尔玛的高效、先进,很难与沃尔玛模式相适应,沃尔玛的高效的物流系统的建立也需要一个过程,致使双方沟通不畅,国内沃尔玛时常出现缺货现象就不足为奇了。
了解你的供应链
在零售企业的供应链管理环节上,零售商、供应商和制造商,都是这一系列链条上的节点。零售商要想做好供应链,就要了解和管理供应链上每一环节的情况,通过专业的管理软件来完成对供应链信息的搜集和管理。
供应链管理软件是将零售企业内部的一些信息,例如订货业务,退货业务,网上对账对单业务以及其他的与供应商,制造商等企业的交流信息,通过一个专业的网络平台工具来进行交互和管理,从而解决零售企业在信息交互单据传输方面的难点问题。
有些公司非常清楚自己的供应链存在问题以及问题出在哪里,它们知道需要实现怎样的目标,便拥有稳健的计划,购买合适的产品,所以很快就能获得回报。但是大多数公司对自己的供应链并不了解,认为找一个灵验的解决方案,上马一个信息系统就可以解决所有的问题。没有找出问题的症结所在或者自以为找到问题的症结所在,实际效果自然是没什么改进。事实上没有哪个方案可以解决供应链的全部问题。
附录B:主要参考文献的题录及摘要
[1][书名]软件工程
[作者]王忠群
[出版社]合肥:中国科学技术出版社,2009.11
[关键词]软件工程;UML;CMM
[摘要]本书主要强调了软件工程的理论与实践相结合、技术与管理相结合、方法与CASE工具相结合。特别介绍了统一建模语言(UML)和结构化开发方法及面向对象开发方法。并以此为基础讨论面向对象的需求分析与软件设计方法;介绍集成化CASE环境,Java与Internet环境下的软件开发技术。
[2][书名]数据库概系统论
[作者]萨师煊,王珊
[出版社]北京:高等教育出版社,2006.5(2009重印)
[关键词]数据库;SQL语言
[摘要]全书内容包括:数据库模型、数据库系统结构、关系数据库系统、 SQL语言、复杂数据理论、数据库维护、数据库设计、关系数据库管理系统、数据库技术新进展、面向对象数据库系统、分布式数据库系统、并行数据库系统等。
[3][书名]JSP应用开发详解
[作者]刘晓华,张健
[出版社]北京:电子工业出版社,2007.1
[关键词]JSP;Java;Myeclipse;Servlet
[摘要]本书精要的介绍了JSP的语法、Servlet技术、JDBC技术、标签库技术、表达式语言等基本问题,并对热门的使用开发技术Struts、JavaServerFace、Spring MVC、Hibernate等进行详细的介绍和分析。本书的后面的部分主要是一些实例的分析,对用户开发项目有很大的帮助。
[4][书名]JSP完全学习手册
[作者]张银鹤,冉小旻,刘治国
[出版社]北京:清华大学出版社,2008.6
[关键词]JSP;Java Web;JavaBean;Servlet;XML;Ajax
[摘要]本书主要从JSP的基础知识入手,介绍JSP开发工具、运行环境那个、基本语法、JSP页面元素、JSP内置对象、JavaBean技术、Servlet技术和数据库技术,并对这些基础技术进行扩展,介绍XML技术、自定义标签。在熟悉这些知识后,介绍Web的流行框架和技术,入Struts、JSF、Ajax。最后是一些网站开发的实例,演示JSP技术开发网站的过程及文件的部署。
[5][书名]轻量级Java EE企业应用实战(第3版)
[作者]李刚
[出版社]北京:电子工业出版社,2012.01
[关键词]Struts;Spring;Hibernate
[摘要]本书重点介绍如何整合Struts2.2+Spring3.0+Hibernate3.6进行Java EE开发,主要包括三部分。第一部分介绍JavaEE开发的基础知识,以及如何搭建开发环境。第二部分详细讲解Struts2.2、Spring3.0和Hibernate3.6三个框架的用法,介绍三个框架时,从Eclipse IDE的使用来上手,一步步带领读者深入三个框架的核心。这部分内容是笔者讲授“疯狂Java实训”的培训讲义,因此是《轻量级Java EE企业应用实战(第3版):Struts 2+Spring 3+Hibernate整合开发(超值纪念版)》的重点部分,既包含了笔者多年开发经历的领悟,也融入了丰富的授课经验。第三部分示范开发了一个包含7个表、表之间具有复杂的关联映射、继承映射等关系,且业务也相对复杂的工作流案例,希望让读者理论联系实际,将三个框架真正运用到实际开发中去,该案例采用目前最流行、最规范的JavaEE架构,整个应用分为领域对象层、DAO层、业务逻辑层、MVC层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。该案例既提供了IDE无关的、基于Ant管理的项目源码,也提供了基于Eclipse IDE的项目源码,最大限度地满足读者的需求。
[6][书名]Java语言程序设计
[作者]吕凤翥,马皓
[出版社]北京:清华大学出版社,2006.1
[关键词]Java;Java Applet;HTML;Java网络编程
[摘要]本书前面的章节主要介绍Java语言的特点和Java程序的实现,以及该语言的语法基础。中间章节介绍Java语言面向对象的特征。后续章节介绍了图形 用户界面设计。最后介绍了异常处理及县线程的创建。
[7][书名] Tomcat权威指南
[作者] 布里泰恩
[出版社]北京:中国电力出版社,2009.9
[关键词Apache Tomcat;web;server;Windows
[摘要] 《Tomcat权威指南》这本书是一本万能工具,其主题涵盖了Apache Tomcat这一广受欢迎的开源servlet、JSP容器和高性能的web server。《Tomcat权威指南》对管理员和web站点管理员而言,具有较强的参考价值;对在开发或产品中要使用Tomcat作为web应用程序服务器的开发者而言,这是一本有用的指南书;对Tomcat感兴趣的人而言,这是一本优秀的介绍工具。本书是最新Tomcat版本的更新,这是第二版,提供了关于servlet容器安装、配置、维护和安全防护的完整指南。实际上,鉴于具有如此多的最新信息,这本书本质上是一本新书,而不是原书的简单翻版。通过本书,您会了解到在所有主要操作系统(Windows、Linux、OSX、S01aris和FreeBSD)上使用Tomcat的详细信息,包括关于Tomcat配置文件以及部署和运行web应用程序的交互建议的详细信息。
[8][书名] MAVEN实战
[作者] 许晓斌
[出版社]北京:机械工业出版社,2011.1.1
[关键词]Java;Maven;Archetype;m2eclipse插件
[摘要] 本书是国内第一本公开出版的Maven专著。它内容新颖,基于最新发布的Maven 3.0,便于正在使用Maven 2.x版本的用户能更好地理解。本书它内容全面,以从专家的角度阐释Maven的价值开篇,全面介绍了Maven的安装、配置和基本使用方法,以便于初学者参考;详细讲解了坐标和依赖、Maven仓库、生命周期和插件、聚合与继承等Maven的核心概念,建议所有读者仔细阅读;系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有选择性的阅读;扩展性地讲解了如何Maven和Archetype插件,这部分内容对需要编写插件扩展Maven或需要编写Archetype维护自己的项目骨架以更便于团队开发的读者来说尤为有帮助。它实战性强,不仅绝大部分知识点都有相应的案例,而且本书还在第4章设计了一个背景案例,后面的很多章节都是围绕这个案例展开的,可操作性极强。
[9][书名] Eclipse核心编程
[作者] 李大卓
[出版社]北京:人民邮电出版社,2007.4
[关键词]Java;Java Web;Eclipse;Java网络编程
[摘要] 全书共分4篇10章,以“Eclipse快速入门篇→Eclipse图形应用开发篇→Eclipse RCP开发篇→Java Web应用程序开发篇”为线索具体展开,涵盖了Eclipse插件、界面和Web开发的方方面面的内容。书中给出大量实际、生动的案例,难度由低到高、内容循序渐进,并注重技巧的归纳和总结。
[10][书名] MySQL技术内幕:InnoDB存储引擎
[作者] 姜承尧
[出版社]北京:机械工业出版社,2011.1
[关键词]Java;Java Web;InnoDB;MySQL
[摘要] 《MySQL技术内幕:InnoDB存储引擎》是国内目前唯一的一本关于InnoDB的著作,由资深MySQL专家亲自执笔,中外数据库专家联袂推荐,权威性毋庸置疑。内容深入,从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量最佳实践,能帮助你系统而深入地掌握InnoDB,更重要的是,它能为你设计和管理高性能、高可用的数据库系统提供绝佳的指导。注重实战,全书辅有大量的案例,可操作性极强。全书首先全景式地介绍了MySQL独有的插件式存储引擎,分析了MySQL的各种存储引擎的优势和应用环境。接着以InnoDB的内部实现为切入点,逐一详细讲解了InnoDB存储引擎内部的各个功能模块,包括InnoDB存储引擎的体系结构、内存中的数据结构、基于InnoDB存储引擎的表和页的物理存储、索引与算法、文件、锁、事务、备份,以及InnoDB的性能调优等重要的知识,最后深入解析了InnoDB存储引擎的源代码结构,对大家阅读和理解InnoDB的源代码有重要的指导意义。《MySQL技术内幕:InnoDB存储引擎》适合所有希望构建和管理高性能、高可用性的MySQL数据库系统的开发者和DBA阅读
附录C:部分页面代码
登录页面(Login.jsp):
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="org.jeecgframework.core.util.SysThemesUtil,org.jeecgframework.core.enums.SysThemesEnum"%> <%@include file="/context/mytags.jsp"%> <!DOCTYPE html> <% String lang = org.jeecgframework.core.util.BrowserUtils.getBrowserLanguage(request); String langurl = "plug-in/mutiLang/" + lang +".js"; SysThemesEnum sysTheme = SysThemesUtil.getSysTheme(request); String lhgdialogTheme = SysThemesUtil.getLhgdialogTheme(sysTheme); %> <html> <head> <title></title> <link rel="shortcut icon" href="resources/fc/images/icon/favicon.ico"> <script src=<%=langurl%> type="text/javascript"></script> <!--[if lt IE 9]> <script src="plug-in/login/js/html5.js"></script> <![endif]--> <!--[if lt IE 7]> <script src="plug-in/login/js/iepng.js" type="text/javascript"></script> <script type="text/javascript"> EvPNG.fix(\'div, ul, img, li, input\'); //EvPNG.fix(\'包含透明PNG图片的标签\'); 多个标签之间用英文逗号隔开。 </script> <![endif]--> <link href="plug-in/login/css/zice.style.css" rel="stylesheet" type="text/css" /> <link href="plug-in/login/css/buttons.css" rel="stylesheet" type="text/css" /> <link href="plug-in/login/css/icon.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" type="text/css" href="plug-in/login/css/tipsy.css" media="all" /> <style type="text/css"> html { background-image: none; } label.iPhoneCheckLabelOn span { padding-left: 0px } #versionBar { background-color: #212121; position: fixed; width: 100%; height: 35px; bottom: 0; left: 0; text-align: center; line-height: 35px; z-index: 11; -webkit-box-shadow: black 0px 10px 10px -10px inset; -moz-box-shadow: black 0px 10px 10px -10px inset; box-shadow: black 0px 10px 10px -10px inset; } .copyright { text-align: center; font-size: 10px; color: #CCC; } .copyright a { color: #A31F1A; text-decoration: none } .on_off_checkbox { width: 0px; } #login .logo { width: 500px; height: 51px; font-size:40px; font-family:"STHupo"; text-align:center; padding-top:10px; } #register_title{ visibility:hidden; } </style> </head> <body> <div id="alertMessage"></div> <div id="successLogin"></div> <div class="text_success"><img src="plug-in/login/images/loader_green.gif" alt="Please wait" /> <span><t:mutiLang langKey="common.login.success.wait"/></span></div> <div id="login"> <div class="ribbon" style="background-image: url(plug-in/login/images/typelogin.png);"></div> <div class="inner"> <div class="logo">小宇宙体育用品商店</div> <div class="formLogin"> <form name="formLogin" id="formLogin" action="loginController.do?login" check="loginController.do?checkuser" method="post"> <input name="userKey" type="hidden" id="userKey" value="D1B5CC2FE46C4CC983C073BCA897935608D926CD32992B5900" /> <div class="tip"> <input class="userName" name="userName" type="text" id="userName" title="" iscookie="true" value="admin" nullmsg="" /> </div> <div class="tip"> <input class="password" name="password" type="password" id="password" title="" value="123456" nullmsg="" /> </div> <div> <div style="float: right; margin-left:-150px; margin-right: 20px;"> <img id="randCodeImage" src="randCodeImage" /> </div> <input class="randCode" name="randCode" type="text" id="randCode" title="" value="" nullmsg="" /> </div> <div class="loginButton"> <div style="float: left; margin-left: -9px;"> <input type="checkbox" id="on_off" name="remember" checked="ture" class="on_off_checkbox" value="0" /> <span class="f_help"><t:mutiLang langKey="common.remember.user"/></span> </div> <div style="float: right; padding: 3px 0; margin-right: -12px;"> <div> <ul class="uibutton-group"> <li><a class="uibutton normal" href="#" id="but_login"><t:mutiLang langKey="common.login"/></a></li> <li><a class="uibutton normal" href="#" id="register_user">注册</a></li> </ul> </div> <%-- <div style="float: left; margin-left: 30px;"><a href="init.jsp"><span class="f_help"><t:mutiLang langKey="common.init.data"/></span></a></div> --%> <br> <t:dictSelect id="langCode" field="langCode" typeGroupCode="lang" hasLabel="false" defaultVal="zh-cn"></t:dictSelect> </div> <div class="clear"></div> </div> <div> <div style="float: right; margin-left:-30px; margin-right: 40px;"> 技术支持: <font color="red">小宇宙体育用品商店</font> QQ群: <font color="red">106838471</font> 官网: <font color="red"><a href="http://www.jeecg.org" target="_blank" >www.jeecg.org</a></font> </div> </div> </form> </div> </div> <div class="shadow"></div> </div> <!--Login div--> <div class="clear"></div> <div id="versionBar"> <div class="copyright">© <t:mutiLang langKey="common.copyright"/> <span class="tip"><a href="http://www.jeecg.org" target="_blank" title=<t:mutiLang langKey="common.platform"/>>小宇宙体育用品商店</a> <t:mutiLang langKey="common.browser.recommend"/><a href="http://www.jeecg.org" target="_blank" title=<t:mutiLang langKey="common.platform"/>> 小宇宙体育用品商店</a></span></div> </div> <!-- Link JScript--> <script type="text/javascript" src="plug-in/jquery/jquery-1.8.3.min.js"></script> <script type="text/javascript" src="plug-in/jquery/jquery.cookie.js"></script> <script type="text/javascript" src="plug-in/login/js/jquery-jrumble.js"></script> <script type="text/javascript" src="plug-in/login/js/jquery.tipsy.js"></script> <script type="text/javascript" src="plug-in/login/js/iphone.check.js"></script> <script type="text/javascript" src="plug-in/login/js/login.js"></script> <!-- <script type="text/javascript" src="plug-in/lhgDialog/lhgdialog.min.js"></script> --> <%=lhgdialogTheme %> </body> </html>