1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 基于BS模式的航材电子商务交易平台(1)

基于BS模式的航材电子商务交易平台(1)

时间:2021-10-22 22:52:54

相关推荐

基于BS模式的航材电子商务交易平台(1)

第一章引言

1.1背景

随着社会经济的发展,航空运输在国民经济中的地位日益提高,由于其舒适、快捷的特性,成为越来越多的人的外出首选交通工具。但是,近几年民航业出现了经济效益滑坡的现象,引起了各大航空公司的高度重视。除了在营销手段上做文章外,民航业越来越注意到控制飞机的维修成本的重要性。其中,控制维修成本的关键在于航材成本的控制,而我国的各大航空公司在航材管理方面缺乏主动性,因此造成航材储备资金居高不下,成本过高而影响经济效益。

飞行安全是民航的生命线,因而保证航材的质量和及时供应历来是各个航空公司实施安全管理的前提条件,也是航材管理部门的最高目标。为了保证航材的及时供应,很长一段时间以来,我国民航界的航材保障一直沿用“实物供应、无限供给”的供应模式。随着市场竞争的加剧,这种供应方式已经变得越来越不适应!库存的航材占据了大量的流动资金,因而各航空公司不仅要保证及时的供应、注重航材的质量,同时也要注意经济效益,做到最低限度地降低库存,减少流动资金占用。

与我国航空公司相比,国外一些发达国家的航空公司,在航材管理的方式上要先进许多,并且占有一定的优势。最近几年在欧洲开始盛行一种新的航材管理模式:包机公司——即航空公司将航材库存卖给从事第三方航材供应的公司,由其来实现航材的供给。这种方式特别适用于那些中小型的航空公司,因为对于它们而言,维持一个全面的航材库存其费用十分昂贵,但为了确保飞机的正常运行还是不得不存放在库里,这样做不仅购置、维护和保养航材花销巨大,而且将重要的航材从基地运到其他航站所需费用也很大。而包机公司可使航空公司解决这些耗资巨大的航材支援保障方面的问题,可以使航空公司腾出大量的资金用于核心业的经营,正是因为这些原因,目前欧洲愈来愈多的小型航空公司开始将航材供应保障业务外包出去。

如今基于互联网的电子商务系统越来越流行,部件维修商需要查询电子部件的供应商和价格。通过价格对比,从而确定所需要购买的航材,此外,部件供应商也可以通过该平台发布自己所要卖的航材,而AEP是一个在互联网上进行航材部件需求信息发布和部件询价以及建立客户关系的电子商务系统。电子部件维修商可以通过这个电子商务系统发布自己的需求信息。部件供应商也可以发布自己的需求信息。同时在此基础上实现供应商报价和维修商订单生成。

该平台的实现,从实质上解决了维修商和供应商之间的航材需求问题。通过相对通用的报价管理策略,订单生成以及权限设置等等,来建立更加完善、更加严格的平台交易系统,从而达到双方的共赢。

1.2技术要求

1) 功能模块划分合理,采用MVC设计模式,即典型的J2EE三层结构,表现层、业务逻辑层、数据服务层;

2) 采用struts2的框架结构;

3) 使用mysql数据库;

4) 业务逻辑层采用的是Hibernate3.5+Spring3.0的组合方案;

5) 对数据采用Hibernate二级缓存的优化;

6) 使用JavaMail的类库来实现邮件系统的设计;

7) 利用ajax、struts2和hibernate实现分页;

8) 使用dojo增加用户的体验性;

9) 采用dwr增强页面数据和后台的交互;

10) 利用dwr的反向ajax技术实现消息系统;

11) 利用quartz实现邮件的定时发送;

12) 通过相关技术实现相对通用的报价管理策略。

第二章航材电子商务系统的相关技术介绍和分析

2.1开发过程相关技术和框架介绍

2.1.1Web开发-jsp技术

JSP的全称是Java Server Pages,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(*.html,*.htm)中加入JAVA程序片段和JSP标记,就构成了JSP页面。JSP具有以下的优点:

1) 将业务层与表示层分离:使用JSP技术,网络开发人员可充分使用HTML来设计页面显示部分(如字体颜色等),并使用JSP指令或者JAVA程序片段来生成网页上的动态内容;

2) 能够跨平台:JSP支持绝大部分平台,包括现在非常流行的LINUX系统,应用非常广泛的Apache服务器也提供了支持JSP的服务;

3) 一次编写,处处运行:作为JAVA开发平台的一部分,JSP具有JAVA的所有优点,包括Write once,Run everywhere。

2.1.2Dwr反向ajax技术

反向Ajax的基本概念是客户端不必从服务器获取信息,服务器会把相关信息直接推送到客户端。这样做的目的是解决Ajax传统Web模型所带来的一个限制:实时信息很难从技术上解决。原因是,客户端必须联系服务器,主动询问是否存在变更,如果有变更就会更新页面(或者页面的一部分)。虽然可以非常快速完成这个操作,让人感觉好像是实时的,但是实际上不是实时的。我们需要的是,服务器联系查看其页面的所有浏览器,并通告所发生的变更。

2.1.3Hibernate二级缓存技术

在单个类或类的单个集合的粒度上配置第二级缓存。如果类的实例被经常读但很少被修改,就可以考虑使用第二级缓存。只有为某个类或集合配置了第二级缓存,Hibernate在运行时才会把它的实例加入到第二级缓存中。用户管理缓存的方式第一级缓存的物理介质为内存,由于内存容量有限,必须通过恰当的检索策略和检索方式来限制加载对象的数目。第二级缓存的物理介质可以是内存和硬盘,因此第二级缓存可以存放大量的数据,数据过期策略的maxElementsInMe-mory属性值可以控制内存中的对象数目。管理第二级缓存主要包括两个方面:选择需要使用第二级缓存的持久类,设置合适的并发访问策略:选择缓存适配器,设置合适的数据过期策略。

Hibernate二级缓存可以提升系统的数据访问性能,但是前提是合理使用,并不是所有的数据都可以使用二级缓存。

2.1.4JavaBean简介

JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBeans 通过提供符合一致性设计模式的公共方法将内部域暴露称为属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 属性。

用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。

JavaBean的任务就是: “Write once, run anywhere, reuse everywhere”,即“一次性编写,任何地方执行,任何地方重用”。这个任何实际上就是要解决困扰软件工业的日益增加的复杂性,提供一个简单的、紧凑的和优秀的问题解决方案。

2.1.5Struts框架

Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。和其他的java架构一样,Struts 也是面向对象设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。Structs 框架的核心是一个弹性的控制层,基于如 Java Servlets,JavaBeans,ResourceBundles与XML等标准技术,以及 Jakarta Commons 的一些类库。Struts有一组相互协作的类(组件)、Serlvet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是一个传统 MVC设计模式的一种变化类型。

Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,如 JDBC / EJB ,以及其它第三方类库,如 Hibernate / iBATIS ,或者 Object Relational Bridge(对象关系桥)。在视图层,Struts能够与JSP,包括 JSTL 与 JSF,以及 Velocity 模板,XSLT 与其它表示层技术。

Struts 为每个专业的 Web 应用程序做背后的支撑,帮助为我们的应用创建一个扩展的开发环境。

2.1.6Hibernate框架

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

2.1.7Spring框架

Spring 也表示是一个开源框架,是为了解决企业应用程序开发复杂性由Rod Johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

2.1.8DWR框架

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。

2.1.9Dojo工具

Dojo是一个用JavaScript语言实现的开源DHTML工具包。它是在几个项目捐助基础上建立起来的(nWidgets, Burstlib, f(m)),这也是为什么叫它a unified toolkit的原因。Dojo的目标是解决开发DHTML应用程序遇到的那些、长期存在 、历史问题,以及DHTML 跨浏览器问题。

Dojo能够让你更容易使Web页面具有动态能力,或者在任何能够稳定支持JavaScript语言的环境中发挥作用。

例如图2-1所示,在用户输入企业代码时页面中出现的提示信息。

图2-1 提示信息图

2.1.10Ajax

国内翻译常为“阿贾克斯”和阿贾克斯足球队读音一样。Web应用的交互如Flickr, Backpack和Google在这方面已经有质的飞跃。这个术语源自描述从基于Web的应用到基于数据的应用的转换。在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态地写入网页中,给缓慢的Web应用体验着色使之像桌面应用一样。 虽然大部分开发人员在过去使用过XMLHttp或者使用Iframe来加载数据,但仅到现在我们才看到传统的开发人员和公司开始采用这些技术。就像新的编程语言或模型伴随着更多的痛苦,开发人员需要学习新的技巧及如何最好利用这些新技术。

AJAX的最大机遇在于用户体验。在使应用更快响应和创新的过程中,定义Web应用的规则正在被重写;因此开发人员必须更注重用户。现在用户已经逐渐习惯如何使用Web应用了。例如用户通常希望每一次按钮点击会导致几秒的延迟和屏幕刷新,但AJAX正在打破这种长时间的状况。因此用户需要重新体验按钮点击的响应了[8][11]。

在本系统中大量使用了ajax技术,其中最有代表性的就是公告板信息的ajax分页功能。其基本流程本人理解如下:

当用户在页面中选择了“下一页”时,在页面中把这一事件交给javascript进行处理,通过其将分页信息提交给相应的action进行处理,在对应的action中,内部处理方式的原理就是把相应的查询信息“包装”成xml文件的形式,并将其返回客户端,在客户端javascript中对信息进行解析,最终显示出来。

在传递中文参数时,为了解决ajax url的传值乱码问题,需要进行两次加密和两次解密的过程,具体做法在后文中有所介绍。

2.1.11Quartz框架

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。

第三章 航材电子商务系统的需求分析

软件需求分析也称为需求分析工程,是软件生命周期中重要的一步,也是决定性的一步。在可行性分析阶段,对开发新系统的基本思想和过程进行了初步分析和论证,对系统的基本功能、性能及开发时间的限制、人员安排、投资情况等做出了客观的分析。在需求分析阶段,要对经过可行性分析所确定的系统目标和功能做进一步的详细论述,确定系统“做什么”的问题。

本章节就航材电子商务交易平台进行了系统的可行性分析,详细阐述了该系统的需求功能模块,并使用UML统一建模语言进行用例分析,完成了系统用例图和功能性描述。

3.1可行性分析

3.1.1经济可行性

在经济上,该项目是可行的。本网站的制作只需安装了MyEclipse、TOMCAT,JDK, MySQL的计算机系统,另外还使用了一些诸如Hibernate3.5,Spring3.0,dojo,dwr,quartz等等一些免费的开源项目,从外界所需的条件来讲成本比较低,开发时无需网络支持,发布时只需要在网上有空间,系统管理员定期对网站进行维护,网站就可以正常运行。

3.1.2技术可行性

在技术上,该项目是可行的。本网站是采用系统以系统用Java开发,以Struts2.1,Hibernate3.5,Spring3.0为框架,用Hibernate和Spring的组合链接Mysql数据库开发,更加满足系统可移植性的需求。在JSP中使用一些dojo技术实现动态网页的效果,增加用户体验。使用JavaMail来保证用户邮件的发送,利用quartz来实现定时邮件的发送。采用反向ajax技术实现实时消息的发送/接受。保证网站正常使用的前提下,页面用户体验性强,内容丰富多彩。

3.1.3操作可行性

在操作上,该项目是可行的。用户只要在网站上注册相关企业的账户,便可以在网站上发布询价单、报价单、购买相关航材、生成属于自己的订单、添加自己的供应商联系人、添加自己公司认证的供应商,浏览/查询相关信息(求购/租产品、出售/租产品、网站管理),进行实时消息的交流等,操作较为方便。

3.1.4社会可行性

当今社会是一个信息技术的时代,计算机的发展越来越快,电子维修业也快速的发展起来,部件维修商需要查询电子部件的供应商和价格,同时接触和使用计算机的用户、企业也显著增加,在这样一个时代,航材维修信息的需求量是非常大的,因此,该商务平台网站能够很好的满足社会的需求。

综上所述,航材电子商务交易平台的开发是可行的。

3.2任务概述

主要内容:

1) 完成系统软件架构的设计;

2) 完成概要设计和详细设计的流程;

3) 进行数据库和界面方面的设计;

4) 完成子功能模块的实现;

5) 在编码完成后,进行测试和总结工作。

3.3需求分析

3.3.1系统功能需求

1) 用户必须在自己企业注册的情况下才能注册成为企业会员,否则只能注册为企业管理员;

2) 用户可以根据自己公司的需求添加相应的供应商联系人或者添加自己所在公司认证的企业;

3) 用户可以找回自己的密码;

4) 用户可以发布相应的求购或者出售零件的信息;

5) 用户可以进行实时消息的沟通;

6) 用户能够向相应的供应商询问价格;

7) 供应商也可以向相应的用户提供报价,并且可以查看报价草稿;

8) 企业和供应商完成线上或线下的交易。

3.3.2系统模块需求

1) 用户注册模块

a) 用户所在企业第一次注册时,只能注册为企业管理员;

b) 用户注册为企业会员时,必须获得该企业管理员的口令。

2) 找回密码模块

a) 用户输入的邮件地址必须与注册时相同;

b) 用户通过邮件获取密码。

3) 公告板模块

a) 用户发布求购,求租或者相应的销售信息;

b) 关键字查询发布信息。

4) 实时消息模块

a) 用户可以实时聊天,及时了解变化的信息。

5) 用户登录模块

a) 用户输入验证码登陆,其信息保存在session当中。

6) 询价管理模块

a) 用户输入具体的零件需求信息;

b) 用户可以向供应商联系人、认证供应商或者所有企业发送询价单;

c) 查询询价单。

7) 报价管理模块

a) 用户查询询价单,然后生成相应的报价单;

b) 发送报价单;

c) 查询报价草稿。

8) 邮件发送模块

a) 向系统提供邮件发送的接口。

9) 支付模块

a) 在签订合同后,用户向供应商支付款项。

3.3.3系统用例描述

系统用例图如图3-1所示:

图3-1 系统用例图

各个用例描述如下:

1) 登录/注销:用户在进行信息处理操作时,必须首先登录系统;

2) 注册:在用户所在企业未注册的情况下,必须首先注册企业和企业管理员。在用户注册个人信息时,必须获得己方管理员的口令才能注册;

3) 发布需求信息:用户可以根据自己的实际情况,选择发布信息的类型(求购、求租、出售)和需求说明;

4) 发布询价单:企业用户可以向供应商联系人、公司认证的供应商、所有企业发送询价单,询价单中包含有具体的询价信息和对应的零件信息;

5) 发送报价单:供应商可以针对相应的询价单生成报价草稿,确认无误后发送给询价人;

6) 处理订单: 企业通过报价单可以生成订单,同时在生成订单之后可以也取消订单;

7) 查看/修改信息:在这一个用例中包含了修改用户信息、修改询价单、修改需求信息、修改报价单四个子用例。用户可以根据自己需求的变更,及时修改相应的信息;

8) 增加联系人:主要包括增添用户认证的供应商公司信息和供应商联系人信息。

3.4系统软件架构

本系统采用的是典型的J2EE三层结构,即表现层、中间层和数据服务层。客户端不能直接与数据库进行交互,必须通过组件与中间层建立连接,由中间层负责与数据库进行交互。

1) 客户层

在基于web的J2EE应用中,用户的浏览器在客户层中进行,并从一个web服务器上下载web层中的静态html页面或是由jsp或是servlets生成的动态html页面。

2) Web层

J2EE Web组件可以由jsp页面、基于web的applets以及显示html页面的servlets组成。调用servlets或者jsp页面的html页面在应用程序组装时与web组件打包在一起。就像客户层一样,web层可能包括一个java bean类来管理输入,并将输入发送到在业务层中运行的Enterprise Beans类来处理。运行在客户层的web组件依赖容器来支持诸如客户请求、响应以及Enterprise Bean查询等。一般来讲,一个典型的web应用的末端应该是表现层。

3) Service层

Service层也称作业务逻辑层,主要负责实现业务逻辑。业务逻辑以DAO层为基础,通过对DAO层组件的模式包装,完成系统所要求的业务逻辑。

4) DAO层

该层主要负责与持久化对象进行交互,封装了数据的增、删、改、查的操作。

5) 数据持久层PO

该层通过实体关系映射工具将关系型数据库的数据映射成对象。该系统采用Hibernate作为ORM框架。Spring的作用贯穿了整个中间层,讲web层、service层、DAO层以及PO无缝整合。

第四章航材电子商务系统的设计

本章节在上一章的基础上,对系统进行了详细的UML模型设计。依次对用户注册模块、用户添加联系人模块、用户找回密码模块、询价模块、报价模块和在线支付模块进行了时序图的设计,并且设计了Bean对象的实体类图,以及接口之间的逻辑关系。

4.1系统的设计思路

4.1.1系统的设计思想

该系统的设计本着MVC的设计思想,将系统大致分为客户层、web层、service层、DAO层以及数据持久层PO,并且采用了struts等框架的集成。

采用框架开发大大增强了代码的可重用性、平均开发费用的降低、开发速度快、开发人员减少、进行维护时也较为方便、增强系统的灵活性和适应性。

采用框架开发的主要特点为:

1) 领域内的软件结构一致性好;

2) 建立更加开放的系统;

3) 重用代码大大增加,软件生产效率和质量也得到了提高;

4) 软件设计人员要专注于对领域的了解,使需求分析更充分;

5) 有了经验,可以让那些经验丰富的人员去设计框架和领域构件,而不必限于底层编程;

6) 允许采用快速原型技术,有利于在一个项目内多人进行共同协作。

4.1.2系统的设计方式

为了有效地管理航材,将系统分为用户注册、用户添加联系人、用户找回密码、询价、报价、实时消息和在线支付七个模块。

1) 用户注册模块:主要包括企业、企业会员和管理员的注册;

2) 用户添加联系人模块:主要包括用户添加相应的供应商联系人和公司认证的供应商;

3) 用户找回密码模块:主要包括用户电子邮箱的验证和发送密码的功能

4) 询价模块:主要提供一张询价单所对应的多种零件种类的询价功能;

5) 报价模块:主要针对维修商所发出的询价单提供真实的报价单;

6) 实时消息模块:主要为用户提供在线交流的功能;

7) 在线支付模块:主要是通过支付宝中介完成用户线上的交易,其中需要调用支付宝的接口。

4.2类图设计

4.2.1系统实体类图

系统实体类图,如图4-1所示:

图4-1 系统实体类图

说明:

1) AEPCorp(企业类)

私有属性:

CORP_ID:String 企业代码

CORPNAME_CN:String 企业名称(中文)

CORPNAME_EN:String 企业名称(英文)

NATION:String 国家

MAD_CN:String 企业地址(中文)

MAD_EN:String 企业地址(英文)

TELNUM:String 电话号码

FAXNUM:String 传真号码

CONTACT:String 联系人

POSTCODE:Int 邮政编码

EMAIL:String 邮箱地址

CORPTYPE:String 企业类型: MFR:制造商;SPL:供应商;ALC:航空公司;REP:维修商

2) AEPUser(企业用户类)

私有属性:

USERNBR:String 用户代码

FNAME:String 姓名

CORP_ID:String 企业代码

TELNUM:String 办公室电话号码

MPHONE:String 个人移动电话号码

FAXNUM:String 传真号码

UADD:String 地址

POSTCODE:String 邮政编码

EMAIL:String Email地址

PASSWORD:String 口令

AST:Stirng 用户账户状态

ROLE:String 用户角色 MFR:制造商;SPL:供应商;ALC:航空公司;REP:维修商;SYS:系统;USER:注册用户;ADMIN:管理员;GUEST:未注册来客

3) AEPMessage(发布信息类)

SID:Int 唯一ID

SBJ:String 主题

MTY:String 信息类型

CONT:String 内容

CDATE:Date 发布日期

EXDAY:Int 有效期

EXDATE:Date 截止日期

CONTACT:String 联系人代码/姓名

CON_INF:String 联系人的联系方式

4) AEPCorpSpl(企业实体认证的供应商类)

CORP_ID:String 企业代码

SPL:String 供应商代码

LDATE:Date 有效日期

NOTES:String 备注

5) AEPMySplContact(我的供应商联系人类)

MY_ID:String 我的代码

CONT_ID:String 我的联系人的代码

FNAME:String 姓名

LNAME:String 姓

CORP_ID:String 企业代码

TELNUM:String 办公室电话号码

FAXNUM:String 传真号码

MPHONE:String 个人移动电话号码

UADD:String 地址

POSTCODE:String 邮政编码

EMAIL:String Email邮箱地址

6) AEPInq(询价单类)

IID:String 询价单号

OIC:String 询价者内部询价单编号

BUYER_ID:String 用户代码

CDATE:Date 询价日期

STATUS:String 报价单状态

REM:String 备注

7) AEPInqParts(询价零件类)

IID:String 询价单号

IIN:Int 询价单项次编号

PNR:String 件号

MFR:String 制造商代码

KWD:String 关键字(英文)

KWD_CN:String 关键字(中文)

BQU:Int 采购数量

UNT:String 计量单位代码

CND:String 状态代码

LTM:String 订货至交货时间

PRI:Int 优先级

REM:String 备注

CERT:String 证书

8) AEPQfn(报价单类)

Ifn:String 报价单号

Enterprise:String 询价企业

Fname:String 询价人姓名

iid:String 询价单号

wcontact:String 我的联系人

q_enterprise:String 报价公司名称

qcontact:String 报价联系人

qname:String 报价人姓名

state:Int 报价单状态

cdate:Date 报价日期

9) AEPQfnParts(报价零件类)

Pnr:String 件号

actprice:double 实际价格

discprice:double 折扣价格

oneprice:double 单价

rem:String 备注

totalprice:double 总价

ifn:String 报价单代码

4.2.2系统逻辑关系类图

1) 系统逻辑关系类图,如图4-2所示:

图4-2 系统逻辑关系类图

2) 接口设计

a) AccountManager

私有属性:待定

公共操作:

saveAEPCorp(AEPCorp bc); 保存公司信息

saveAEPUser(AEPUser bu); 保存员工信息

saveAEPSpl(AEPCorpSpl bcs); 保存认证公司信息

updateAEPCorp(AEPCorp bc); 更新公司信息

updateAEPUser(AEPUser bu); 更新用户信息

updateAEPSpl(AEPCorpSpl bcs); 更新公司认证信息

findByCorpId(String id); 根据公司ID查找

getMyContact(String uid); 根据用户ID查找联系人信息

save(AEPMySplContact bmc); 保存联系人信息

update(AEPMySplContact bmc); 更新联系人信息

getUser(String cid, String unbr);根据公司ID和用户ID查找用户信息

findByUserId(String uid); 根据用户ID查找用户信息

getCerCorp(String uid); 根据用户id查找联系人

getAllCorp(String uid); 查找除用户ID外的所有公司信息

findAEPUserByProperty(String propertyName, Object value);

根据属性和对应的值查找用户信息

getInqContact(String uid); 根据我的ID查找我的联系人

findAEPCorpByProperty(String propertyName, Object value);

根据属性和对应的值查找公司信息

findSplByProperty(String corpid);根据公司ID查找已认证公司信息

findCorp(); 查找系统中所有公司信息

validateUser(String username, String pass, String vcode, String vcode1); 验证用户登录信息

b) InqManager

私有属性:待定

公共属性:

findInqByProperty(String propertyName, Object value);

根据属性和对应的值查找发出去的询价单信息

findInqSplByProperty(String propertyName, Object value);

根据属性和对应的值查找供应商收到的询价记录表信息

saveInq(AEPInq bi); 保存询价单信息

saveParts(AEPInqParts biq); 保存部件列表

saveInqSpl(AEPInqSpl bs); 保存供应商收到的询价记录表

findById(String id); 根据询价单号查找询价单信息

getInqRow(); 获得询价单表中的记录数

updateInq(AEPInq bi); 更新询价单

update(AEPInqSpl bs); 更新询价单涉及的零件

findSpl(String id); 根据用户id查找供应商

public AEPInqSpl findSplByids(String iid, String sellerid);

根据用户和卖方id查找供应商

c) MessageManager

私有属性:待定

公共属性:

getAEPMessage(String context, String type, PageBean pageBean);

分页根据公告标题或内容和公告类型查找公告信息

getAEPMessage(String context, String type);

根据公告标题或内容和公告类型查找公告信息

save(AEPMessage bm) 保存公告信息

findNewId(); 生成公告信息ID

d) QfnManager

私有属性:待定

公共属性:

saveQfn(AEPQfn qfn); 保存报价单信息

saveQfnParts(AEPQfnParts AEPQfnParts); 保存报价单涉及部件

findbyId(String id); 根据id查找报价单

findQfnsByName(String name, int state);根据名称查找报价单

update(AEPQfnParts AEPQfnPart); 更新报价零件

updateQfn(AEPQfn q); 更新报价单

findPartsById(String pnr); 根据id查找报价零件

4.3模块时序图

4.3.1用户注册时序图

1) 用户企业尚未注册时,系统需要让用户先行注册企业和企业管理员。其时序图如图4-3所示:

图4-3 用户注册时序图(1)

2) 用户企业已经注册时,需要对用户提供的企业和管理员口令进行验证,无误后,用户可以输入自己的相关信息,注册成为企业会员。其时序图如图4-4所示:

图4-4 用户注册时序图(2)

4.3.2户添加供应商联系人时序图

当用户添加供应商联系人时,系统需要提供所有供应商的信息让用户进行选择,选择后系统将其逐一保存。其时序图如图4-5所示:

图4-5 用户添加供应商联系人时序图

4.3.3户找回密码时序图

当用户提出找回密码请求时,系统会验证用户提供的email是否与用户输入的匹配,若匹配成功,系统将会把密码以邮件的方式发送给用户。其时序图如图4-6所示:

图4-6 用户找回密码时序图

4.3.4价时序图

1) 查询已发送的询价单时,系统会按照用户id将询价单查询出来。其时序图如图4-7所示:

图4-7 查询已发送的询价单时序图

2) 查看询价单详细信息时,系统将根据询价单号查找出相应的询价单,之后再得到所有询价单中所涉及的零件,然后创建BUY_INQ_EDITVO对象,将其返回客户端。其时序图如图4-8所示:

图4-8 查看询价单详细信息时序图

3) 新增一个询价单时,系统首先创建BUY_INQ_EDITVO对象,然后将当前用户对象、用户联系人对象和供应商企业对象中的相关属性保存到BUY_INQ_EDITVO对象中。其时序图如图4-9所示:

图4-9 新增询价单时序图

4) 发送询价单时,系统将向用户提供三种发送对象的选择方案(我的联系人、供应商、所有企业),用户选择后,系统会从BUY_INQ_EDITVO对象中获得相应属性,保存该询价单。然后从用户所输入的零件信息中映射出询价的零件对象,并将该对象保存。最后,系统保存询价联系人相关信息。其时序图如图4-10所示:

图4-10 发送询价单时序图

4.3.5报价时序图

1) 新建一个报价单时,系统将查找出相应的询价单和对应的零件对象,并将其存储到session对象中。其时序图如图4-11所示:

图4-11 新建报价单时序图

2) 生成报价草稿时,系统将查找出相应的询价单对象,并且创建一个新的报价单对象。然后根据用户id查找出买方用户对象和卖方用户对象,并且将二者对象的信息保存在报价单对象中,随后保存报价单,更新询价单中的报价单代码,再从询价单中查找出相应的零件进行报价,将相关零件的报价价格记录到报价零件中。最后,完成对报价零件价格的逐一保存。其时序图如图4-12所示:

图4-12 生成报价草稿时序图

3) 发送报价单时,系统将根据报价单代码查找报价单对象和对应的询价单对象,并且允许用户修改相应零件的报价价格,最后系统更新报价单对象。其时序图如图4-13所示:

图4-13 发送报价单时序图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。