【基于JSP的网上拍卖网站设计与实现9400字(论文)】_第1页
【基于JSP的网上拍卖网站设计与实现9400字(论文)】_第2页
【基于JSP的网上拍卖网站设计与实现9400字(论文)】_第3页
【基于JSP的网上拍卖网站设计与实现9400字(论文)】_第4页
【基于JSP的网上拍卖网站设计与实现9400字(论文)】_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

[5]。

第三章本网上拍卖管理系统概要设计3.1系统功能和数据设计在设计和实施该在线拍卖管理系统时,有必要对在线拍卖管理体系进行全面和详细的分析。该系统分为前系统和后系统。前后系统有几个功能模块,系统的每个模块都或多或少相关。将本网上拍卖管理系统的前台系统分为7个模块来实现,后台系统分为5个模块来实现,使项目的整个架构更加完整,有利于代码的编写,便于后期人员的维护。本系统的整体功能结构如图3-1所示。图3-1整体功能结构图3.1.1E-R图设计通过对本网上拍卖系统的需求与系统设计的分析,设计在线拍卖系统中使用的用户实体、管理员实体、商品类别实体、投标人组件、商品订单实体、接收地址实体、评论和收集实体。在线拍卖系统的E-R图如图3-2所示。图3-2E-R图3.1.2系统用例图设计通过对本网上拍卖管理系统的需求分析,规定了适合本网上拍卖管理系统的角色。(1)用户角色的用例图主要是用来搜索商品信息、浏览商品信息、参与竞拍并评论和收藏操作、管理收藏信息和修改个人信息,具体信息如图3-3所示。图3-3用户用例图(2)管理员角色的用例图主要具有竞价商品详情管理、竞价商品分类管理、竞价商品订单状态管理、用户的信息查看以及管理员账户修改等等,具体信息如图3-4所示。图3-4管理员用例图3.1.3系统类图设计本网上拍卖管理系统的类图主要描述了用户、商品类别、竞拍商品、竞价成功后的评论、收藏、后台管理员,商品订单,收货地址等实体类结构。(1)竞价商品类别类图,如图3-5所示。图3-5竞价商品类别类图(2)会员用户类图,如图3-6所示。图3-6会员用户类图(3)竞价商品类图,如图3-7所示。图3-7竞价商品类图(4)竞价商品收藏类图,如图3-8所示。图3-8竞价商品收藏类图(5)管理员类图,如图3-9所示。图3-9管理员类图(6)地址类图,如图3-10所示。图3-10地址类图(7)竞价商品订单类图,如图3-11所示。图3-11竞价商品订单类图3.2系统数据库设计(1)本网上拍卖系统的用户表,用于记录广大用户的信息,如表3-1所示。表3-1用户表(user)字段类型备注约束user_idint(10)用户编号主键,自增user_namevarchar(25)用户名notnulluser_nicknamevarchar(50)用户昵称notnulluser_passwordvarchar(50)用户密码notnulluser_realnamevarchar(20)真实姓名user_gendertinyint(1)用户性别notnulluser_birthdayuser_addressuser_homeplaceuser_profile_picture_srcidentitydatechar(6)char(6)varchar(100)varchar(255)出生日期地址编码居住地址用户头像身份证号notnullnotnullnotnull(2)本网上拍卖系统设计的一个商品类别表,用于区分商品的种类,如表3-2所示。表3-2竞价商品类别表(category)字段类型备注约束category_idint(10)类别编号主键,自增category_namecategory_image_srcvarchar(20)varchar(255)类别名称类别图片notnullnotnull(3)本网上拍卖系统设计的一个地址表,用于用户注册时家庭住址的填写以及用户竞拍商品成功后,发货地址的填写,如表3-3所示。表3-3地址表(address)字段类型备注约束address_areaIdchar(6)地址编号主键,自增address_nameaddress_regionIdvarchar(50)char(6)地区名邮政编码notnullnotnull(4)本网上拍卖系统设计的一个管理员表,用于储存管理员的信息,如表3-4所示。表3-4管理员表(admin)字段类型备注约束admin_idint(10)管理员编号主键,自增admin_nameadmin_nicknameadmin_passwordadmin_profile_picture_srcvarchar(25)varchar(50)varchar(50)varchar(255)用户名昵称管理员密码管理员头像notnullnotnullnotnull(5)本网上拍卖系统设计的一个收藏表,用于记录用户收藏的感兴趣的竞拍商品,如表3-5所示。表3-5收藏表(collection)字段类型备注约束idint(11)收藏编号主键,自增user_idproduct_idstatuscreate_dateint(11)int(11)varchar(255)varchar(50)用户编号商品编号收藏状态创建时间(6)本网上拍卖系统设计的一个商品表,用于储存竞拍商品的信息,如表3-6所示。表3-6商品表(product)字段类型备注约束product_idint(10)商品编号主键,自增product_nameproduct_titleproduct_priceproduct_sale_priceproduct_create_dateproduct_category_idproduct_isEnabledstart_dateend_datestepcurrent_priceuser_idpm_statusvarchar(100)varchar(100)decimal(10)decimal(10)datetimeint(10)tinyint(1)varchar(50)varchar(50)int(11)decimal(10)int(11)varchar(255)商品名称商品标题商品价格商品售价创建时间商品分类编号是否在售竞价开始时间竞价结束时间价格增幅当前价格最后加价人id是否停止拍卖notnullnotnullnotnullnotnull(7)本网上拍卖系统设计的一个商品图片表,用于储存竞拍商品的图片信息,如表3-7所示。表3-7商品表(product_image)字段类型备注约束productimage_idint(10)图片编号主键,自增productimage_typeproductimage_srcproductimage_product_idtinyint(1)varchar(255)int(10)图片类型商品图片所属的商品编号notnullnotnullnotnull(8)本网上拍卖系统设计的一个订单表,用于储存竞拍商品的订单信息,如表3-8所示。表3-8订单表(product_order)字段类型备注约束productorder_idint(10)订单编号主键,自增productorder_codeproductorder_addressproductorder_detail_addressproductorder_postvarchar(30)char(6)varchar(255)char(6)商品订单编号收货地址详细地址邮政编码notnullnotnullnotnull续表3-8字段类型备注约束productorder_receivervarchar(20)收货人姓名notnullproductorder_mobileproductorder_pay_dateproductorder_delivery_dateproductorder_confirm_datechar(11)datetimedatetimetinyint手机号码成交时间发货时间确认时间notnullproductorder_statusint(10)订单状态notnull(9)本网上拍卖系统设计的订单详情表,用于储存订单详情信息,是用户在付款前对竞拍商品的确认,用户还可以在订单详情中可对商家进行留言,如表3-9所示。表3-9竞价商品订单详情表(product_order_item)字段类型备注约束productorderitem_idint(10)订单详情编号主键,自增productorderitem_numbersmallint(5)订单数量notnullproductorderitem_pricedecimal(10)订单价格notnullproductorderitem_product_idint(10)商品编号notnullproductorderitem_order_idint(10)订单编号productorderitem_user_idint(10)用户编号notnullproductorderitem_userMessagecurrent_pricestatusvarchar(255)decimal(10)varchar(255)用户留言当前价格状态(10)本网上拍卖系统设计的分类属性表,用于储存分类属性信息,如表3-10所示。表3-10分类属性表(property)字段类型备注约束property_idint(10)分类属性编号主键,自增property_namevarchar(25)属性名称notnullproperty_category_idint(10)分类编号notnull(11)本网上拍卖系统设计的商品属性表,用于储存商品属性信息,如表3-11所示。表3-11商品属性表(propertyvalue)字段类型备注约束propertyvalue_idint(10)商品属性编号主键,自增propertyvalue_valuevarchar(100)商品属性notnullpropertyvalue_property_idpropertyvalue_product_idint(10)int(10)分类属性编号商品编号notnullnotnull(12)本网上拍卖系统设计的评价表,用于储存用户对竞拍商品的评价,只有竞拍到商品且确认收货的用户才能进行评价,因此表中设置了用户编号。如表3-12所示。表3-12评价表(review)字段类型备注约束review_idint(10)评价编号主键,自增review_contentmediumtext评价内容notnullreview_createdatereview_user_idreview_product_idreview_orderItem_iddatetimeint(10)int(10)int(10)评价时间用户编号商品编号订单详情编号notnullnotnullnotnull

第四章本网上拍卖管理系统的详细设计与实现4.1用户信息模块的设计与实现4.1.1管理员后台商品管理(1)算法设计思路管理员在后台系统可以随时添加商品,成功添加商品后,商品会在前台上架显示,若添加失败,则在后台controller事务回滚;管理员也可以更新商品的信息,比如重新设置商品的价格增幅、竞价开始时间和竞价结束时间,在后台用List整合需要更新的产品属性;管理员也可以按商品的名字和竞价商品的标题来查询商品信息;管理员按ID删除商品图片并返回最新结果。(2)实现代码/***更新商品信息*/@RequestMapping(value="admin/product/{product_id}")publicStringupdateProduct(@RequestParamStringproduct_name){JSONObjectjsonObject=newJSONObject();Productproduct=newProduct().setProduct_id(product_id).setProduct_name(product_name).setProduct_sale_price(product_sale_price).setProduct_create_date(newDate());if(!StringUtils.isEmpty(userId)){product.setUserId(Integer.valueOf(userId));}if(!StringUtils.isEmpty(currentPrice)){product.setCurrentPrice(Double.valueOf(currentPrice));}product.setStartDate(startDate);product.setEndDate(endDate);booleanem=productService.update(product)}4.1.2管理员后台商品分类管理(1)算法设计思路管理员在后台系统可以随时添加商品分类并且按照条件查询分类。使用ajax整合添加商品分类后,分类会在前台主页面用轮播图显示,若添加失败,则在后台controller事务回滚;管理员在后台系统可以更新竞价商品的分类信息,例如重新设置竞价商品分类的类别及名称;管理员可以通过ajax上传分类文件图片,获取文件图片的上传路径。(2)实现代码4.1.3用户注册功能(1)算法设计思路用户填写用户名、登录密码等后,并选择性别后,按注册按钮确认密码与密码不符,无法注册,反之,将查询发送到后台。查询参数包含用户在后台填写的个人信息,相应的Controller方法检索传递到页面的数据,并在用户窗口右侧有提醒时使用该方法确定用户填写的用户名是否存在;如果不存在,服务调用将用户添加到成员方法中,服务调用映射器将用户信息添加到数据库中,最后一个后台通道将被注册成功地将信息转发到登录页并要求用户注册。(2)实现代码4.2拍卖商品模块的设计与实现(1)算法设计思路只有管理员才可以发布拍卖商品,在后台系统网站上发布竞购商品。设置好竞拍起始价、时间限制、加价幅度等等,填写关于物品的信息(例如商品品牌、商品属性、商品价格等等),数据传递到controller,整合商品预览图片、详情图片和产品属性等等,若商品发布成功,则在后台显示新增商品的ID值,添加失败,则事务回滚。(2)实现代码4.3竞购商品模块的设计与实现4.3.1用户竞价功能(1)算法设计思路用户可以根据自己的需求,在拍卖系统中搜索自己心仪想要的商品。搜索到用户想要的商品,就可在登录注册之后对商品进行竞拍,参加拍卖活动,然后判断是否竞价成功。在后台的service里,用for循环和和list获取所有付款没有结束的商品,并判断当前的商品是否竞价结束;竞价结束后,在订单处理数据,用if语句判断商品是否符合发货要求,将符合的改为“等待商家发货”,不符合的改为“已退款”。(2)实现代码/***竞价功能*/@Override@Scheduled(cron="0/1****?")publicvoiddealPay(){//获取所有付款没结束的货物List<String>list=productOrderMapper.orderList();for(Stringid:list){//判断当前货物是否结束Integerover=productOrderMductIsOver(id);if(over!=0){ProductOrderorder=productOrderMductOrder(id);if(ObjectUtils.isEmpty(order)){continue;}ProductOrderproductOrder=newProductOrder().setProductOrder_id(order.getProductOrder_id()).setProductOrder_status((byte)1);productOrderMapper.updateOne(productOrder);ProductOrderrefund=newProductOrder().setProductOrder_id(order.getProductOrder_id()).setProductOrder_status((byte)8);refund.setProduct_id(id);productOrderMapper.updateNotIn(refund);}}}4.3.2获取商品最新价(1)算法设计思路当第一个用户参与竞拍,填写收货信息,支付成功之后,商品价格数值传到后台controller,用get方法获取产品ID和价格数据,界面刷新后,竞拍商品的价格会根据后台管理员设置的价格增幅自动提升,更新成为当前的最新价格。当下一位用户参与竞拍时,则会以当前最新价格参与竞拍,往复循环,直到后台管理员设置的竞拍时间结束。(2)实现代码/***获取商品当前最新价格*/@RequestMapping(value="currentPrice/{pid}")publicStringdetailWhoBy(HttpSessionsession,@PathVariable("pid")Stringpid){if(userId!=null){Useruser=userService.get(Integer.parseInt(userId.toString()));}Integerproduct_mid=Integer.parseInt(pid);Stringproduct=productService.getCurrentPrice(product_mid);JSONObjectjsonObject=newJSONObject();jsonObject.put("curPrice",product);returnjsonObject.toJSONString();}4.3.3显示参与竞拍的用户(1)算法设计思路每当一个用户参与竞拍,支付成功之后,竞拍商品的详情页自动更新,显示出每一个用户参与竞拍的昵称、竞拍时间以及竞购价格,竞拍过程完全公开透明,拒绝暗箱操作,使拍卖系统更加完善合理,用户的竞购体验升级。在后台controller层下,用if语句判断用户是否付款,查询支付成功的用户,将其竞购信息显示到前台界面。(2)实现代码/***显示参与竞拍的用户*/@RequestMapping(value="whoBy/{pid}/{time}")publicStringwhoBy(HttpSessionsession,@PathVariable("pid")Stringpid,){Integerproduct_id=Integer.parseInt(pid);List<ProductOrder>productList=productService.whoBy(product_id,time);Stringbig=null;if(null!=productList&&0!=productList.size()){big=productList.get(0).getProductOrder_pay_date();for(inti=0;i<productList.size();i++){if(productList.get(i).getProductOrder_pay_date().compareTo(big)>0){big=productList.get(i).getProductOrder_pay_date();}}}if(null==big&&null!=time&&!"".equals(time)){big=time;}jsonObject.put("productOrder",JSONArray.parseArray(JSON.toJSONString(productList)));jsonObject.put("maxTime",big);returnjsonObject.toJSONString();}4.4支付模块的设计与实现(1)算法设计思路用户挑选好需要竞价的商品后便可以直接用虚拟支付功能结算提交订单。该功能将模拟真实的支付环境,使支付业务更加完善,系统更加。支付成功后通过订单项ID数组获取订单信息,检查订单项的合法建立,验证通过后用户才能填写收货地址,将收货地址等相关信息存入Cookie中,获取省份信息。填写个人信息之后,点击“支付”按钮将会跳转到支付页面,点击确认支付,即可支付成功。(2)实现代码4.5拍卖商品订单模块的设计与实现4.5.1管理员管理订单功能(1)算法设计思路管理员可以在后台查看到用户的订单,可以按照自动生成的订单号或用户填写的邮政编码查询订单信息,也可以根据订单的不同状态查询订单信息,该模块还设置了ECharts统计图,在后台统计当月的拍卖总数量;管理员可以在后台给订单状态为“等待卖家发货”的买家用户发货,即参与竞拍出价最高的买家;竞拍未成功的买家则显示“交易关闭”或“竞价失败,已退款”的字样,且管理员无法为其发货。(2)实现代码/***管理员更新订单信息*/@RequestMapping(value="admin/order/{order_mid}")publicStringupdateOrder(@PathVariable("order_mid")Stringorder_mid){ProductOrderproductOrder=newProductOrder().setProductOrder_delivery_date(newDate());booleanem=productOrderService.update(productOrder);if(em){jsonObject.put("success",true);}else{jsonObject.put("success",false);thrownewRuntimeException();}jsonObject.put("order_mid",order_mid);returnjsonObject.toJSONString();}/***管理员按条件查询订单*/@RequestMapping(value="admin/order/{index}/{count}")publicStringgetOrderBySearch(@PathVariableIntegercount){if(productOrder_status_array!=null&&(productOrder_status_array.length<=0||productOrder_status_array.length>=5)){productOrder_status_array=null;}if(productOrder_code!=null){productOrder_code="".equals(productOrder_code)?null:productOrder_code;}if(productOrder_post!=null){productOrder_post="".equals(productOrder_post)?null:productOrder_post;}ProductOrderproductOrder=newProductOrder().setProductOrder_code(productOrder_code).setProductOrder_post(productOrder_post);OrderUtilorderUtil=null;returnobject.toJSONString();}4.5.2用户查看订单功能(1)算法设计思路用户转到前台可以清楚直观的看见自己的订单信息,包括竞价成功、交易成功和确认收货等状态。用户参与竞拍后,在商品最后的竞拍时间之内,显示“已竞拍”;在竞拍活动结束后,若用户成功拍下商品,则在订单业面显示“等待卖家发货”;若未拍下商品,则显示“竞价失败,已退款”;若商家已发货,则会在用户订单页面显示“确认收货”按钮;用户确认收货后,则显示“交易成功”的字样。(2)实现代码4.6拍卖商品收藏模块的设计与实现(1)算法设计思路商品收藏功能。用户碰见喜爱或者感兴趣的竞拍商品即可进行收藏与取消收藏操作。点击收藏,将商品收藏成功,并且图标变成已收藏。点击移除,则取消对该商品的收藏。点击“☆”进行收藏,通过controller判断用户是否收藏过该商品信息,若已收藏,将出现在收藏列表,若未收藏,则移除出列表;用户添加收藏或取消收藏时,页面都会弹出对应的提示信息,提高用户的体验感。(2)实现代码/***用户收藏商品功能*/@RequestMapping("/add/{productId}")publicStringadd(HttpSessionsession){if(user!=null){List<Collect>list=collectionService.selectByProductId(user.getUser_id(),productId);if(list!=null&&!list.isEmpty()){return"0";}else{Collectclt=newCollect();clt.setUserId(user.getUser_id());clt.setProductId(productId);clt.setStatus("0");clt.setCreateDate(format.format(newDate()));collectionService.save(clt);}return"0";}else{return"-1";}/***用户取消收藏商品功能*/@RequestMapping("/delete")publicStringupdate(Integerid){collectionService.update(id);return"0";}

第五章结论本课题研究的主要内容是MySQL数据库、SpringBoot框架和JSP在网上拍卖系统中的应用。SpringBoot提供了代码全注解与配置的方式来编写代码,这将大大的提高了编程效率。本项目主要的编程思想依旧是通过MVC、页面和controller级下的service层交互。MySQL数据库为系统的数据提供了持久化操作,MySQL是轻量级的数据库,适合本系统前后台的使用开发。JSP能以模板化的方式更加简单、高效地添加动态网页内容,并且继承了Java语言的易用性,更容易与静态内容相结合。本系统网页上的数据绝大多数浏览器都可以支持显示,以此提升用户的体验感。利用ECharts可视化实现拍卖商品数量的月统计,使后台管理员能够一目了然的看到当月销售总数量。本网上拍卖管理系统已经实现了用户的登录注册,用户对竞拍商品的搜索、竞价、评论以及收藏的功能。此系统还设置了管理员,可对拍卖商品和用户的信息进行维护与管理;管理员在系统网站中发布竞拍商品;买家根据需求浏览搜索心仪的商品并竞拍;之后便为商品结算,支付结算订单;商品拍卖完成后管理员和用户都可对商品订单进行管理,更好的满足多方面的需求。本系统对绝大部分操作都有相应的提示信息,以防用户操作失误,界面简洁化,普通的用户在使用该系统时直接可以上手而不用经过培训。

参考文献曹珂,严明义.我国网上拍卖竞买者出价行为特征分析——基于函数性稀疏数据聚类方法的实证研究[J].当代经济科学,2017,39(06):115-121+126.陈阁.分布式处理技术在电台播控传输网中的应用[J].记者摇篮,2020(11):159-160.杨开振.深入浅出SpringBoot2.x[M].人民邮电出版社.

温馨提示

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

评论

0/150

提交评论