[优秀毕业设计精品] 企业电子商城设计.doc_第1页
[优秀毕业设计精品] 企业电子商城设计.doc_第2页
[优秀毕业设计精品] 企业电子商城设计.doc_第3页
[优秀毕业设计精品] 企业电子商城设计.doc_第4页
[优秀毕业设计精品] 企业电子商城设计.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

*工程学院web程序设计期末考查报告项目名称:企业电子商城院 系 计算机科学与工程学院班 级 计算机科学与技术084班指导教师 *小组名称 mlh小组成员:*,*,*二一一年十二月三十日系统开发分工:姓名完成任务*需求分析、系统分析与设计、文档书写、前台商品显示模块、商品与订单查询模块。*系统总体框架与界面设计、前台购物车模块、后台商品与订单设置模块。*数据设计、前台会员管理与后台会员管理模块。小组分工摘 要关键字: 电子商务 网上购物 管理 myeclipse窗体顶端电子商务是即被熟知的电子交易, 是由基于电子系统如互联网和其他的电脑网络的产品或服务的买 卖组成的.随着互联网的迅速发展电子交易的实施也在迅速的成长。电子商务的实质并不只是通过 网络购买东西,而是利用 internet 技术,彻底改变传统的商业运作模式。信息技术真正的能力不在 于它使传统的工作方法更有效率,而在于它使企业打破了传统的工作规则,并创造新的工作方式,这 正是企业流程重组的核心内容。 该系统是通过学习当前流行的网上电子商务网站的主要实现来进行 开发的, 系统运用 java 语言作为开发语言,以 myeclipse 作为开发工具, sqlserver2005 作为后台数据库, 以 基于 b/s 模式开发的商务网站的设计与实现。整个系统从符合操作简便、界面友好、灵活、实用的 要求出发主要实现了前台用户对产品的浏览和购买,后台管理员对用户、商品的管理等功能。 目录1问题陈述52需求分析62.1系统描述62.2用例图72.3用例规约73分析与设计103.1系统架构分析与设计103.1.1注册103.1.2维护个人信息133.1.3维护购物车153.1.4生成订单193.1.5管理订单213.2类图设计233.3时序图234数据库设计244.1er图244.2表设计275总结(小组与个人总结)296安装使用手册316.1.1附加数据库sql server 2005316.1.2将程序发布到tomcat下317系统开发运行环境318安装过程318.1.1操作注意事项318.1.2操作流程321 问题陈述当今,网上购物已成为一种时尚。本网站主要是为普通购物用户和管理员服务。普通购物用户在系统中注册过,可以在登陆页面输入密码和账号。如果信息正确,用户就可以购物,否则只能做一般的页面浏览。进入系统后,用户也可以选择维护自己的信息,比如修改账号、密码和联系地址等。如果直接进行购物,系统可让用户首先浏览商品信息,使之对商品的数量和种类有一个大概的了解。如果用户对某件商品感兴趣,就可以选择特定商品查看详细信息,接着选择将商品加入购物车,或继续查看其他商品。当购物结束时,用户首先要浏览一下已经保存在购物车中的商品项目,包括商品数量、单击、总价。这时用户可以更改任何已经保存在购物车中的商品数量。如果确定要购买购物车内的商品,系统即生成一份订购商品的订单(包括所有商品的名称、单价、小计和总价),然后由用户填写包括用户姓名、家庭地址、信用卡号码和电子邮件地址等信息,并提交订单。以后,系统自动将用户信息、信用卡信息和购物总价发送到银联系统,由银联系统验证信用卡信息并执行扣款,并将银联系统操作成功与否的信息返回到系统。系统根据银联系统的操作结果,向用户发送e-mail,提示用户操作成功与否的消息。如果扣款成,就与物流系统链接,安排给用户派送购买的商品。管理员进入系统时,首先要输入口令。如果检查通过,就可以对系统中的信息进行维护和管理,其主要工作包括:1) 管理用户信息,包括启用或冻结用户账号。当有些用户不正常操作时,如填写订单时不存在的信用卡号码,应将此用户账户冻结,但管理员无权修改客户信息。2) 管理系统中商品信息,例如有新的商品时,管理员可向系统中添加此商品。当商品的价格或规格发生变化时,管理员也可以对它们作修改,使用户及时了解商品的最新情况。若某件商品没用存货或不再出售时,管理员可删除系统中的此项商品记录。3) 管理客户订单。及时获得客户的资料(资料中有电子邮件地址),以便与客户联系。要求系统对数据库的存取速度要尽快,并保证系统在配置完成以后24小时都可用。还要求系统有较高的安全性,当生成订单时,用户的信用卡号码要在网上传输,所以必须提供额外的安全措施。2 需求分析2.1 系统描述如今是网络化的电子信息时代,在广阔的internet网络中有各种各样的电子商城,它们可以使客户通过网络购物、浏览商品、查询订单和销售排行。通过对电子商务网站订购环境以及购物过程的调查研究,要求系统具有以下功能:l 展示网站最新的商品信息。l 展示网站特价的商品信息。l 为用户提供修改个人资料和查看在网站操作情况的平台。l 提供用户在网站上购物的平台。l 展示网站发布的公告信息。l 展示商品的销量排行。l 展示网站的友情链接信息。l 对商品详细信息以及分类信息进行管理。l 对用户基本资料、交易制度、消费情况及留言信息进行管理。l 对用户提交的订单进行管理。l 对管理员信息、网站公告信息、商业资讯信息及友情链接信息进行管理。l 系统运行稳定,具有强大的数据处理能力。2.2 用例图2.3 用例规约1.注册1.1.简要说明本用例主要用于向顾客提供注册功能。每位顾客必须注册后才能购物。注册信息包括使用本系统的账号、密码、联系地址和电子邮件等。注册完成后,系统保存这些信息,以方便管理员管理及联系用户。1.2.事件流1.2.1.基本流当用户进行注册时,开始执行以下基本流:系统要求用户填写个人信息,包括使用本系统的账号、密码、联系地址和电子邮件等。用户填写个人信息系统验证用户所填写的信息的格式和内容。保存该用户信息。1.2.2.备选流用户信息验证错误 如果系统检测到用户输入的信息格式或内容有错,例如账号中含有非法字符、输入密码和确认密码不一致等,会给与错误提示,并清空错误的文本框,要求用户重新输入。用户信息保存失败如果系统发行数据库中已经保存了同样账号和用户记录,会向用户报告保存失败的错误信息,并使页面调回注册页面,要求用户修改注册信息。1.3.特殊要求无 1.4.前置条件用户必须首先访问网上购物的主页,然后单击注册。1.5.后置条件如果该用例成功,系统数据库中将添加一条该用户的信息。否则,系统维持原状。1.6.扩展点无2.维护个人信息2.1.简要说明本用例主要用于给顾客维护个人信息。包括修改本人的账号、密码和联系地址等信息。2.2.事件流2.2.1.基本流当顾客查看并修改个人信息时,开始执行以下基本流:系统返回给当前顾客在系统数据库中目前存储的个人信息。顾客可以对本人信息的一项或几项进行修改。顾客向系统提交修改后的个人信息。保存该用户信息。2.2.2.备选流用户信息验证错误 如果系统检测到用户输入的信息格式或内容有错,例如账号中含有非法字符、输入密码和确认密码不一致等,会给与错误提示,并清空错误的文本框,要求用户重新输入。2.3.特殊要求无 2.4.前置条件用户必须首先登陆系统,然后才能进入本用例。2.5.后置条件如果该用例成功,系统数据库中的个人信息会被修改。否则,系统维持原状。2.6.扩展点无3.维护购物车3.1.简要说明本用例主要用于向顾客提供购物车。凡是登陆到系统的顾客,系统会为他产生一个购物车。在生成顾客订单之前,购物车里的商品种类和数量都由顾客本人维护。3.2.事件流3.2.1.基本流当顾客想要维护自己的购物车时,开始执行以下基本流:顾客请求查看购物车,系统显示当前购物车中信息。一旦顾客确定了对购物车的操作,则转向以下字流程:如果顾客选择了“删除购物车中的商品“,则”删除商品“子流程开始执行;如果顾客选择了“修改购物车中的商品“,则修改商品“子流程开始执行;删除商品当顾客想要删除购物车中的某商品时,选中该商品进行删除。修改商品当顾客想要修改购物车中的某商品时,选中该商品进行修改,如商品的数量。3.2.2.备选流修改商品数量失败 当顾客查看购物车时,可能希望对已选商品的数量进行修改。如果修改的数值大于此时商品库存数量,或者超过该商品的限量出售值,系统将向顾客返回修改失败的信息,并告知顾客失败的原因。3.3.特殊要求无 3.4.前置条件使用本例顾客必须先登录到该系统中。3.5.后置条件无3.6.扩展点无4.生成订单4.1.简要说明本用例主要用于生成顾客订单。它要求顾客填写个人信息和银行账号信息,获得当前购物车中顾客选定的商品信息(包括所有商品id、名称、单价、数量和总价),然后将生成的订单发送给银联系统。4.2.事件流4.2.1.基本流当顾客确定要购买购物车中的商品时,开始执行以下基本流;顾客填写用户名、家庭地址和银行账号等必要信息,系统生成具有顾客信息的订单。系统从当前购物车中获取购物车中的商品信息,计算出所有商品总价并填入订单。系统生成了具有顾客信息和商品信息的订单。系统将订单发送给银联系统处理。4.2.2.备选流提交订单失败 如果顾客提交的信息不完整的订单,则系统将向顾客返回错误信息,并要求顾客重新检查并填写订单信息或者取消该订单。顾客取消订单提交如果顾客取消提交订单,则系统销毁该订单。4.3.特殊要求无 4.4.前置条件顾客确定要购买购物车中的商品。4.5.后置条件如果该用例成功,则把生成好的完整订单发送给银联系统。否则,系统维持原状。4.6.扩展点无5.管理订单5.1.简要说明本用例是管理员用来管理顾客订单信息之用。该用例接收从银联系统反馈来得关于某顾客的订单是否扣款成功的信息,然后把该信息以电子邮件的方式通知该客户。对于扣款成功的订单,通知物流系统给该订单的顾客配送所购商品。5.2.事件流5.2.1.基本流当接收到银联系统发回的订单反馈信息时,本用例开始。根据银行的反馈信息,进行不同的处理;银行账号存在且余额充足,扣款成功,并将订单递交给物流系统。形成内容为“扣款成功并发货“的电子邮件;银行账号不存在,管理员冻结该用户账号。形成内容为“冻结用户账号“的电子邮件;银行账号存在但余额不足或欠费,扣款不成功。形成内容为“余额不足扣款不成功“的电子邮件。根据订单号获取该订单顾客的个人信息,主要是获得该顾客的电子邮件地址。向顾客发送电子邮件5.2.2.备选流发送电子邮件失败 如果该用例发送电子邮件失败,则系统会向管理员发送错误信息。5.3.特殊要求无 5.4.前置条件管理员必须首先登陆到该系统中。5.5.后置条件如果该用例成功,会生成通知顾客订单是否成功扣款的电子邮件,并把扣款成功的订单转发给物流系统。否则,系统维持原状。5.6.扩展点无3 分析与设计3.1 系统架构分析与设计3.1.1 注册为注册用例进行用例分析,并建立静态模型和动态模型。1、 确定分析类如图3.1.1所示为注册用例的分析类。边界类:本例使用“注册表单”来抽象顾客与系统交互的图形界面。控制类:本例控制类为“注册控制者”,负责接收边界类“注册表单”的消息,将其发给实体类。实体类:本用例只涉及顾客的注册,所以实体类也只有“顾客”。图3.1.1注册用例的分析类2、 静态模型用图3.1.2所示参与类图各类之间的关系。图3.1.2参与类图各类之间的关系3、 动态模型 如图3.1.3和图3.1.4所示是注册用例的时序图和协作图。图3.1.3注册用例的时序图图3.1.4注册用例的协作图说明:首先由顾客输入注册时需要填写的个人信息,“注册控制者”接收由“注册表单”发送过来的信息,由顾客实体类在数据库中验证是否有相同的帐号。若顾客所填信息符号要求,则“注册控制者”向顾客实体类发送添加顾客的消息,将该顾客添加到数据库中。由于顾客注册时需要填写个人信息,包括使用本系统的账号、密码、联系地址以及电子邮件等。所以可得出顾客实体类的属性有:customerid,customername,customeraddr,customeremail。交互图中的每一个消息对应消息接收对象的一个服务,即方法,本例将使用以下方法:注册表单的方法:输入个人信息enterindividualinfo()。注册控制者的方法:注册顾客regcustomer()。顾客的方法:验证顾客信息hascustomer(),添加顾客addcustomer()。3.1.2 维护个人信息为维护个人信息用例进行用例分析,并建立静态模型和动态模型。1、 确定分析类如图3.1.5所示为维护个人信息用例的分析类。边界类:本例使用“维护个人信息表单”来封装面向客户这个参与者的接口。控制类:本例控制类为“维护个人信息控制者”,负责接收边界类“维护个人信息表单”的消息,将其发给实体类。实体类:本用例是顾客用来维护注册时填写过的个人信息,所以实体类只有“顾客”。图3.1.5为维护个人信息用例的分析类2、 静态模型用图3.1.6所示参与类图各类之间的关系。图3.1.6参与类图各类之间的关系3、 动态模型如图3.1.7和图3.1.8所示是维护个人信息用例的时序图和协作图。如图3.1.7维护个人信息用例的时序图如图3.1.8维护个人信息用例的协作图说明:顾客申请查看其在注册时填写的个人信息,通过“维护个人信息表单”向“维护个人信息控制者”发出获得其信息的请求,顾客实体类从数据库中取得该顾客的个人信息,交付给“维护个人信息表单”加以显示。然后顾客对他的个人信息进行编辑修改,之后发送给“维护个人信息控制者”,最后由其向顾客实体类更新顾客信息的消息。这样,数据库中该顾客的记录将被修改。交互图中的每一个消息对应消息接收对象的一个服务,即方法,本例将使用以下方法:维护个人信息表单的方法:输入个人信息checkindividualinfo(),编辑个人信息editindividualinfo(),显示个人信息displyindividualinfo()维护个人信息控制者的方法:请求顾客信息requestcustomerinfo(),接收已编辑的个人信息receiveeditindividualinfo()。顾客的方法:获得顾客信息getcustomer(),更新顾客信息updatecustomer()。3.1.3 维护购物车为维护购物车用例进行用例分析,并建立静态模型和动态模型。1、 确定分析类如图3.1.9所示为维护购物车信息用例的分析类。边界类:本例使用“维护购物车信息表单”来封装面向客户这个参与者的接口。控制类:本例控制类为“维护购物车控制者”,负责接收边界类“维护购物车表单”的消息,将其发给实体类。实体类:本用例涉及的实体类有“购物车”和“购物项目”。图3.1.9为维护购物车信息用例的分析类2、 静态模型用图3.2.0所示参与类图各类之间的关系。图3.2.0参与类图各类之间的关系3、 动态模型(1)、维护购物车如图3.2.1和图3.2.2所示是维护购物车用例的时序图和协作图。如图3.2.1维护购物车用例的时序图。 图3.2.2维护购物车用例的协作图。说明:在顾客进行维护购物车之前,首先向“维护购物车表单”发送“查看购物车”的消息,从“维护购物车控制者”获取当前购物车的信息。当购物车实体类从数据库中取得当前购物车的信息后,即用“维护购物车表单”加以显示。接下来顾客便可以进行确认操作,如删除购物车中的商品和修改商品数量等。(2)、子事件 、从购物车中删除商品:如图3.2.3和图3.2.4所示是从购物车中删除商品的时序图和协作图。如图3.2.3购物车中删除商品的时序图图3.2.4购物车中删除商品协作图。说明:顾客选中要删除的商品,发送“从购物车中删除商品”的消息给“维护购物车表单”,“维护购物车表单”请求其进行删除确认,如果顾客确认删除,则发送删除的消息给“维护购物车控制者”,由其购物车实体类发送删除商品的消息。 、从购物车中修改商品信息:如图3.2.5和图3.2.6所示是从购物车中修改商品的时序图和协作图。如图3.2.3购物车中修改商品的时序图图3.2.4购物车中修改商品协作图。说明:顾客选中要修改的商品,发送“从购物车中修改商品”的消息给“维护购物车表单”,“维护购物车表单”请求其进行修改确认,如果顾客确认修改,则发送修改的消息给“维护购物车控制者”,由其购物车实体类发送修改商品的消息。3.1.4 生成订单为“生成订单”用例进行用例分析,并建立静态模型和动态模型。1、 确定分析类如图3.2.5所示为生成订单用例的分析类。边界类:有两个边界类,它们分别是“生成订单表单”和“银联系统”。控制类:本例控制类为“生成订单控制者”,负责接收边界类“生成订单表单”的消息,将其发给实体类。实体类:本用例是用来生成订单的,所以实体类只有“订单”。图3.2.5生成订单用例的分析类2、 静态模型用图3.2.6所示参与类图各类之间的关系。图3.2.6参与类图各类之间的关系3、 动态模型如图3.2.7和图3.2.8所示是生成表单用例的时序图和协作图。如图3.2.7生成表单用例的时序图如图3.2.8生成表单用例的协作图说明:顾客顾客确定要购买购物车中的商品后,填写姓名、地址和银行账号等信息,然后由“生成订单表单”向控制者发送“生成表单”的消息,接着从购物车中获取当前购物车中的商品,计算所有商品总价之和并加入订单,这样,订单实体类就负责向数据库中添加新订单信息。最后,将生成的订单发送给银联系统进行处理。3.1.5 管理订单为“管理订单”用例进行用例分析,并建立静态模型和动态模型。4、 确定分析类如图3.2.9所示为管理订单用例的分析类。边界类:有三个边界类,它们分别是“管理订单表单”、“物流系统”和“银联系统”。控制类:本例控制类为“管理订单控制者”。实体类:本用例是用来生成订单的,所以实体类只有“订单”。图3.2.9管理订单用例的分析类5、 静态模型用图3.3.0所示参与类图各类之间的关系。图3.3.0参与类图各类之间的关系6、 动态模型如图3.3.1和图3.3.2所示是生成表单用例的时序图和协作图。如图3.3.1生成表单用例的时序图如图3.3.2生成表单用例的协作图说明:首先由边界类银联系统获得订单反馈信息,然后发送给“管理订单控制者”,由其向实体类订单发送消息;再由实体类订单负债登记反馈信息到数据库中。3.2 类图设计3.1所示3.3 时序图3.1所示4 数据库设计4.1 er图公告实体的e-r图管理员信息实体的e-r图会员订单明细实体的e-r图会员订单实体的e-r图会员实体的e-r图商品大类别实体e-r图商品实体的e-r图商品小类别实体e-r图友情链接实体的e-r图实体关系图24.2 表设计tb_affiche(公告信息表) tb_bigtype(商品大类别信息表)tb_goods(商品信息表)tb_link(友情链接表)tb_manager(后台管理员信息表)tb_member(会员信息表)tb_order(订单信息表)tb_orderdetail(订单信息明细表)tb_smalltype(商品小类别信息表)5 总结(小组与个人总结)区永伦:在该系统制作过程中,我熟悉了jsp和java语言的使用,同时深入了解mvc框架,在以前的我,总喜欢把所有代码都写着一个jsp文件里,觉得这样开发web程序很方便,但后期修改的时候,jsp代码显得很臃肿,别说让别人看或者修改,就连自己也不愿一看了。可想这样做的程序,可维护性和可扩展性是多么的糟糕。但如果使用mvc框架的话,就不同了,像这次程序开发那样,把视图、控制、业务逻辑分开来,这样的或我们就可以每人负责一个模块,并行的开发,从而大大的提高开发效率。同时,在后期的修改和扩展,只需修改或添加特定的模块,而在修改或添加模块的过程,不会影响其他模块的正常使用,从而大大的提高了程序的可维护性和可扩展性。还有这样做的好处是,模块功能清晰,在以后做别的项目时,需要到某一块功能,能很方面的找出来,从而很好的积累代码,形成自己的代码库。麦瑞德:所谓的软件是文档加源码,设计规范的文档,可以极大提高软件开发的效率,产生出较为优质的软件。对文档的编写过程其实也就是对整个系统设计过程,所以文档的前期编写工作对后续的开发起到了至关重要的地位。所以在整个项目的开发中文档的编写就占了很大的部分。本人依据小组的分工对文档方面按照软件工程的思想进行了全面的设计与编写,大致包括需要分析、问题描述、系统分析与设计、数据库设计、安装使用手册、环境搭配及总结和小组分工。首先,需求分析与对问题的描述是项目开发的前提条件,如果没有明确的需求与对问题的实质把握,那么对后面的开发可能会迷失方向或不知所措,而后果将导致开发出来的项目不符合原先的要求,也就是说没有实际的应用价值。其次,系统的分析与设计是整个文档编写中最为重要的组成部分,对整个项目的开发起到实质性的指导作用,所以我们在此部分的编写中要有全局的观念,要把握整个系统的总体框架、大致方向。具体的方面可应用面向对象的分析与设计思想,采用构建分析模型与设计模型的方法进行详细设计。可采用画具体的类图,具体阐述各种时序图,以及各种类,比如控制类、逻辑、持久层类等的设计(方法、属性等)。再次,数据库设计编写是整个项目开发的基础性工作,它直接影响到了整个项目的实质性作用,所以对数据库的设计也要有一个较为详细的分析与设计过程,如对数据库的需求与分析、实体与属性的构造、实体之间的关联、表与视图的具体设计等。最后是完成安装使用手册、系统开发环境、安装过程、总结等的编写,这些部分是对项目实现的具体保障。好的软件必定要有一份好的文档来加以指导,通过本次的项目开发,我更加懂得了文档设计与源码编写的关系,懂得了如何编写好的设计文档,对的学习与工作将会起到很大的帮助。黄裕鸿:通过这次与组员合作开发这个购物网站,我收获到组员之间合作开发的经验,相对于个人开发来说,团队开发给我们的难度更大更多,我们不仅要自己熟悉自己负责的模块,还要与组员协调与沟通,我觉得这个沟通与你拥有开发能力同等重要,因为沟通不足的话,每个人有每个人的开发习惯,会造成混乱,反而出错的机会大大提高。还有,因为这次开发结合了软件工程的思想去做,通过这次参与开发,对软件工程有更深的一层认识,软件工程虽然要设计很多文档,这个过程是很繁琐,但通过这次试练,软件工程的优点显而易见,构建和维护更加有效了。小组总结:通过本次的web程序设计,我们小组最大的收获是懂得了怎么有效地分工与合作,利用团队开发,达到对资源的有效利用与整合,开发出完美的项目。6 安装使用手册6.1.1 附加数据库sql server 2005(1)将tm03 database文件夹中的扩展名为db_shopping_data.mdf和db_shopping_log.ldf的两个文件拷贝到sql server安装路径下的data文件夹中。(2)打开sql server 2005中的“sql server management studio”,然后展开本地服务器,在“数据库”数据项上单击鼠标右键,在弹出的快捷菜单中选择“所有任务”/“附加数据库”菜单项。(3)将弹出“附加数据库”对话框,在该对话框中单击【】按钮,选择所要附加数据库的db_shopping_data.mdf文件,单击【确定】按钮,即可完成数据库的附加操作。6.1.2 将程序发布到tomcat下(1)将“tm03”文件夹拷贝到tomcat安装路径下的webapps文件夹中。(2)选择开始菜单中的“所有程序apache tomcat 6.0monitor tomcat”命令,这时在windows的系统托盘中会显示标识tomcat服务器启动状态的图标,如果显示为,则说明tomcat服务器没有启动,这时可以在该图标上单击鼠标右键在弹

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论