《基于Android的校园闲置物品交易系统设计》8900字(论文)_第1页
《基于Android的校园闲置物品交易系统设计》8900字(论文)_第2页
《基于Android的校园闲置物品交易系统设计》8900字(论文)_第3页
《基于Android的校园闲置物品交易系统设计》8900字(论文)_第4页
《基于Android的校园闲置物品交易系统设计》8900字(论文)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

基于Android的校园闲置物品交易系统设计目录TOC\o"1-3"\h\u27489摘要 摘要:本文基于Android开发和设计实现了一个限制物品交易app,主要采用Java编程语言进行后端开发,使用AndroidStudio进行Android的app开发。同时使用IntelliJIDEA集成开发环境采用Java语言编写后台api接口,数据库采用的是MySQL。用户可以通过该app实现随时随地限制物品交易,让用户体验到网上限制物品交易的乐趣。主要功能有注册登录功能,商品列表,商品详情页,限制物品交易车,客服咨询等。论文阐述了一个基于Android设计和开发一个限制物品交易app的过程。首先分析了现在的社会背景环境,然后介绍了需要用到的工具和环境,然后进行了需求分析和限制物品交易app的设计,然后再设计好数据库。然后再简单得介绍了商城的具体实现,贴出伪代码和主要代码帮助进行理解。最后进行总结,提出不足和对未来的展望。关键词:Android;Java;MySQL;网上限制物品交易;app;1引言本文的目的是开发一个基于Android操作系统的限制物品交易app。该系统主要分为Android的前端界面和采用springboot框架进行开发的服务端,使用MySQL作为数据库。本项目以idea和Androidstudio作为主要开发工具,希望能给用户设计出一个可以便捷实用的限制物品交易app。该系统应该实现用户注册登录,浏览商品,搜索商品,根据分类筛选商品,查看商品详情,与客服聊天,限制物品交易车等等基本的网购功能。对于商家来说,可以将商品通过该平台进行售卖,获得更大的流量,而且不用担心房租水电等的产生。对于消费者来说,通过智能手机进行网上限制物品交易更加方便。只要你有一台能上网的手机,即可在任何地方24小时随时随地查看并购买商品。而且商品内容极其丰富,你更容易买到你想买的小众商品。手机网上限制物品交易是时代的选择。2开发技术以及环境2.1AndroidAndroid也就是我们常说的“安卓”。是一个基于Linux内核和其他开源软件的开放源代码的移动操作系统,是由美国的Google公司成立的开放手机联盟持续地领导及开发。主要用于移动设备,如智能手机、平板电脑、电视盒子等,是目前世界上市场占有率最高的移动操作系统。安卓的发展可以说是非常迅速,2017年3月,安卓系统的全球网络流量和设备超过微软的Windows系统,正式成为全球第一大操作系统。国内的厂商比如小米、华为、oppo、vivo等等主流厂商。使用的也都是安卓系统。都是在安卓系统的基础上针对自家的品牌特色进行修改。2.2Springboot框架Springboot框架是由Pivotal团队基于Spring4.0进行设计的,它继承的Spring优秀特性的同时通过简化配置来进一步简化Spring应用的搭建和开发的过程。此外还继承大量的框架使依赖包版本冲突和引用不稳定的问题得到了很好的解决。Springboot有两个很重要的策略:开箱即用和约定优于配置。开箱即用(Outofbox)指在开发过程中,通过maven项目文件中的pom文件给项目添加依赖包,之后就可以使用相对应的注解来代替繁琐的xml配置文件和管理生命周期。这个特点使开发人员摆脱了复杂的配置文件工作和依赖管理工作,使开发人员可以更加注重于业务逻辑的实现。约定优于配置,Conventionoverconfiguration,是由springboot本身来配置目标的结构,开发者负责在结构中添加信息的一种软件设计范式。这个特点虽然降低了一些灵活性,使得bug的定位复杂一些,但是他减少了开发人员需要做出决定的数量,减少了大量的xml配置工作,可以将代码编译打包实现工作的自动化。2.3MySQLMysql由sun公司创建,然后又被甲骨文公司收购。由于它的性能高、成本低、可靠性高等有点。成为了最流行的开源数据库。通过key-values键值对的方式,也被我们称为关系型数据库。被广泛地用在各种中小型网站上。随着MySQL的不断发展完善,它也逐渐地被大规模网站和应用程序采用,比如Google和维基百科等网站都采用了MySQL。还有非常流行的开源组合LAMP其中的M就代表着MySQL。MySQL对PHP有着非常好的的支持,而目前最流行的Web开发语言是PHP。他采用了GPL协议,你甚至可以通过修改源码来开发实现自己的mysql系统。2.4开发软件环境AndroidStudio是一个基于IntelliJIDEA,专门为Android开发特殊定制的一个集成开发环境。2013年5月16日在Google发布会上发布,可以在windows,macos上运行。还提供了基于Gradle的构建支持,提供了专属于Android的重构和快速修复,支持ProGuard和应用前面,基于模板的向导来生成比如说登录,侧滑导航栏等等,拥有功能非常强大的布局编辑器,可以自由地拖拽ui控件的位置并预览效果。是一个非常强大的工具。他还内置apk分析仪,通过检查应用APK文件的内容,找到机会减小Android应用大小,即使该文件不是使用AndroidStudio构建的。检查清单文件、资源和DEX文件。比较两个APK,了解您的应用大小在应用版本之间有何变化。集成了一个仿真安卓虚拟机。还拥有实时分析器,通过内置的分析工具可以提供应用的CPU、内存和网络活动的实时统计信息。通过记录方法跟踪、检查堆和分配以及查看传入和传出的网络负载来识别性能瓶颈。2.5开发硬件环境笔记本一台:AMDRyzen74800H16.0GBRTX2060Windows11专业版21H2手机一台:RedmiNote7Pro6.0GBMIUI稳定版12.5.4Android10显示器一台:AOC23.8英寸I2490VXH/BS3系统分析与设计3.1需求功能分析注册功能:用户输入对应的信息即可完成注册。登录功能:用户在登录界面输入信息系统验证无误后即可登录成功。程序首页:首页有一个广告轮播图和一个和搜索框和推荐的商品列表。限制物品交易车:用户可以将商品添加到限制物品交易车,并在限制物品交易车可以调整数量显示合计金额。商品分类:在商品分类列表可以根据所选的分类并显示对应分类下的商品。商品查找:在搜索栏输入商品想要查询的商品,可以查询到对应的商品,支持模糊搜索。商品详情页:商品详情页有商品的轮播图,还可以点击查看大图,此外可以对商品进行收藏,查看商品评分。客服咨询:在客服咨询页可以与客服进行沟通。我的收藏:在我的收藏可以看到用户收藏的商品列表浏览记录:在浏览记录页面可以查看曾经浏览过哪些商品。用户打开app后默认进入商城首页,可以进行商品的浏览,根据商品分类查看商品,输入关键词进行模糊搜索商品以及查看商品详情等基础功能。不过当用户点击限制物品交易车用户信息等需要登录才能使用的功能时,会弹出提示框提示用户前往登录,用户可以选择取消或者继续登录操作。用户在进行注册登录之后,可以进行浏览商品,挑选自己喜欢的商品添加到限制物品交易车,完善个人信息比如收货地址联系方式等等,然后就可以生成订单进行支付,就可以完成商品的购买。还可以查看浏览记录,我的收藏等等。基于以上可以得出图3-1用户用例图、图3-2限制物品交易流程图、图3-3应用的功能结构图。图STYLEREF1\s3SEQ图\*ARABIC\s11用户用例图图STYLEREF1\s3SEQ图\*ARABIC\s12限制物品交易流程图图STYLEREF1\s3SEQ图\*ARABIC\s13功能结构图3.2性能分析启动时间:在普遍的手机配置下,应用的启动时间不应超过5s。响应时间:忽略网络和设备的配置影响,本地测试点击响应速度应为0.5s以内。运行内存占用:用户正常操作情况之下,运行内存占用不应超过100Mb。硬盘空间占用:用户在正常使用的情况之下,包括缓存,合计商城app所占硬盘空间不能超过700M;3.3数据库设计在一个系统设计中当中,数据库的选择和设计尤为重要。数据库的选择和设计直接影响到系统的性能和应用的设计。本系统采用了当下很流行的开源数据库MySQL。他以开源免费且性能良好的特点被许多公司所使用。然后我还选择了NavicatPremium作为数据库操作的辅助工具。他有着方便易用的可视化界面。3.3.1数据库的整体设计数据库方面共设计了13个表。分别是用户表(tbl_user)、用户地址表(tbl_address)、品牌表(tbl_brand)、优惠券信息表(tbl_discount_volume)、物流表(tbl_logistics)、订单表(tbl_order)、商品表(tbl_product)、商品图片表(tbl_product_pic)、商品类型表(tbl_product_type)、用户浏览记录表(tbl_user_browse_record)、限制物品交易车表(tbl_user_cart)、用户收藏表(tbl_user_collection)、用户反馈表(tbl_user_feedback)。可得数据库的整体关系模型如图3-4所示。图STYLEREF1\s3SEQ图\*ARABIC\s14数据库的整体关系模型3.3.2数据库表的具体设计(1)用户表(tbl_user)用户表拥有用户id(user_id)、用户名(username)、密码(password)、昵称(nike_name)、头像(head_pic)、联系电话(telno)、邮箱(email)字段。设置用户id为主键,自动生成。表结构如图3-5用户表表结构所示。图STYLEREF1\s3SEQ图\*ARABIC\s15用户表表结构(2)用户地址表(tbl_address)用户地址表拥有地址id(address_id)为主键采用自动生成,此外还有用户id(user_id)、收货人(Consignee)、手机号(telno)、省市区(province_and_city)和详细地址(detailed_address)字段。可得用户地址表图,如图3-6所示。图STYLEREF1\s3SEQ图\*ARABIC\s16用户地址表表结构(3)品牌表(tbl_brand)品牌表拥有品牌id(brand_id),品牌名(brand_name)和品牌图片地址(brand_pic_url)。品牌表结构图如图3-7所示。图STYLEREF1\s3SEQ图\*ARABIC\s17品牌表结构图(4)优惠券信息表(tbl_discount_volume)优惠券信息表有优惠券id(discount_volume_id)、用户id(user_id)、优惠券类型(discount_volume_type)、优惠券说明字段(preferential_volume_content)。优惠券信息表结构图如图3-8所示。图STYLEREF1\s3SEQ图\*ARABIC\s18优惠券信息表结构图(5)物流表(tbl_logistics)物流表有发货方式(preferential_volume_content)、物流id(logistics_id)、物流公司(logistics_company)、运单id(waybill_id)、物流详情(logistics_details)字段。其中物流id字段采用主键自动生成策略。物流表结构图,如图3-9所示。图STYLEREF1\s3SEQ图\*ARABIC\s19物流表结构图(6)订单表(tbl_order)订单表拥有订单id(order_id)、订单日期(order_date)、用户id(user_id)、订单说明(receiver_information)、订单金额(order_money)、订单状态(order_status)、优惠券id(discount_volume_id)、物流id(logistics_id)、运费(freight)、发票(invoice_rise)、支付模式(delivery_mode)、支付时间(delivery_time)、付款方式(payment_method)字段。其中订单id为主键采用自增的策略,通过用户id、优惠券id、物流id去关联相应的表。订单表结构图如图3-10所示。图STYLEREF1\s3SEQ图\*ARABIC\s110订单表结构图(7)商品表(tbl_product)商品表拥有商品id(product_id)、商品类型id(product_type_id)、商品名(product_name)、商品原价(old_price)、商品描述(description)、商品新价格(new_price)、商品图片(product_pic_url)、商品状态(flag)、商品单位(unit)、品牌id(brand_id)、库存(inventory)、上架时间(time)、商品规格(specification)字段。其中,商品id为主键,采用自增的策略。通过商品类型id、品牌id去关联相应的表。商品表结构图如图3-11所示。图STYLEREF1\s3SEQ图\*ARABIC\s111商品表结构图(8)商品图片表(tbl_product_pic)商品图片表拥有商品图片id(pic_id)、商品id(product_id)、商品图片路径(product_pic_url)字段。其中商品图片id采用自增策略。通过商品id去管理相对应的商品。商品图片表结构图如图3-12所示。图STYLEREF1\s3SEQ图\*ARABIC\s112商品图片表结构图(9)商品类型表(tbl_product_type)商品类型表有商品类型id(product_type_id)商品类型(product_type_name)、商品类型图(product_type_pic_url)字段。其中商品类型id为自增的主键。商品类型表结构图如图3-13所示。图STYLEREF1\s3SEQ图\*ARABIC\s113商品类型表结构图(10)用户浏览记录表(tbl_user_browse_record)用户浏览记录表有用户浏览记录id(user_browse_record_id)、用户id(user_id)、商品id(product_id)字段。其中以用户浏览记录编号为自增主键,通过用户id和商品id去关联用户表(tbl_user)和商品表(tbl_product)。用户浏览记录表结构图如图3-14所示。图STYLEREF1\s3SEQ图\*ARABIC\s114用户浏览记录表结构图(11)限制物品交易车表(tbl_user_cart)限制物品交易车表拥有用户id、商品数量、商品id字段。通过商品id去关联商品表(tbl_product)。限制物品交易车表结构图如图3-15所示。图STYLEREF1\s3SEQ图\*ARABIC\s115限制物品交易车表结构图如图(12)用户收藏表(tbl_user_collection)用户收藏表有用户收藏id(tbl_product)、用户id(user_id)、商品编号id(product_id)字段。其中用户收藏id为递增主键,通过用户id和商品id分别对应去关联用户表(tbl_user)和商品表(tbl_product)。用户收藏表结构图如图3-16所示。图STYLEREF1\s3SEQ图\*ARABIC\s116用户收藏表结构图(13)用户反馈表(tbl_user_feedback)用户反馈表拥有用户反馈id(user_feedback)、商品id(product_id)、用户id(user_id)、联系方式(contact_information)、反馈内容(feedback_content)、星级(star_class)的字段。以用户反馈编号为主键,采用递增的策略。通过用户id和商品id分别去连接用户表(tbl_user)和商品表(tbl_product)。用户反馈表结构图如图3-17所示。图STYLEREF1\s3SEQ图\*ARABIC\s117用户反馈表结构图3.4服务端设计服务端负责为限制物品交易app提供api接口。采用经典是MVC(Model-View-Controller)设计模式,结构清晰,方便理解使用简单。限制物品交易app为了展示数据库的数据,通过http向服务端发送请求。服务端收到限制物品交易app发来的请求后,进行相应的操作。然后将数据返回到限制物品交易app。主要实现的是对数据库的增删改查功能。3.5限制物品交易app前端设计3.5.1用户注册登录功能当用户需要进行注册登录的时候,可以跳转至相应的注册或者登录页面来实现注册登录。在注册页面,用户输入用户名和两次密码,验证用户名没有重复和两次密码输入一致的情况下即可完成注册。用户注册完毕后会自动给你跳转到登录页面,用户可以输入用户名和密码进行登录。如果忘记密码,也可以选择找回密码在找回密码页面进行找回密码操作。同时用户名和密码的输入加入了正则表达式判断用户的输入是否符合规范,避免密码过短过于简单或者是用户名太短的问题。用户的注册以及登录的流程图如图3-18和图3-19所示。图STYLEREF1\s3SEQ图\*ARABIC\s118用户注册流程图图STYLEREF1\s3SEQ图\*ARABIC\s119用户登录流程图3.5.2限制物品交易流程设计商品浏览功能为最基本的功能,即便用户不登陆也可以使用。用户通过各种商品列表页可以进行浏览商品,然后点击可以进入商品详情页。当用户登录后还可以在商品详情页用户可以对商品进行加入限制物品交易车,与客服聊天,收藏商品等操作。用户登录后商品浏览操作功能流程图如图3-20所示。图STYLEREF1\s3SEQ图\*ARABIC\s120用户登录后商品浏览操作功能流程图4商城功能具体实现App的文件结构见图4-1。Activity文件为主要的逻辑实现部分,而res/layout/文件夹下存放的是Android的布局文件。图STYLEREF1\s4SEQ图\*ARABIC\s11App的文件结构4.1注册登录页面的实现注册登录页面,用户可以输入账号密码通过验证后自动跳转至首页。针对用户的登录行为做了比较晚上的判断。如用户未输入用户名或密码点击登录的话,会提示用户名/密码不能为空。用户也可以点击下面的随便看看,跳过登录步骤进行商城的浏览。登录界面如图4-2所示。图STYLEREF1\s4SEQ图\*ARABIC\s12用户登录界面图在注册界面用户可以输入用户名和密码,通过验证后即可注册成功。如果输入过短或者使用连续数字等安全性极低的密码登录,则会提示用户修改密码以确保安全。具体界面见图4-3用户注册界面图。图STYLEREF1\s4SEQ图\*ARABIC\s13用户注册界面图4.2app首页的实现app首页上方是是一个搜索框,支持模糊搜索。用户可以输入相关的信息进行搜索。接下来是轮播图,可以展示商品的大图。以下是几个分类,下方则是根据用户的喜好来推荐商品。而最下方则是底部导航栏,是由几个fragment嵌套到activity完成。App首页见图4-4app首页图。图STYLEREF1\s4SEQ图\*ARABIC\s14app首页图Fragment的切换通过replaceFragment()方法,传入对应的fragment来实现,主要的代码如下。privatevoidreplaceFragment(Fragmentfragment){//1.实例布局对象(FragmentManager)fragmentManager=getSupportFragmentManager();//2.实例化FragmentTransactionFragmentTransactiontransaction=fragmentManager.beginTransaction();//3.设置动作transaction.replace(R.id.fragmentlayout,fragment);//4.执行事务mit();}4.3商品列表页实现商品列表页实现的地方这里就选取热门单品分类来说明。整体界面见图4-5商品列表图.图STYLEREF1\s4SEQ图\*ARABIC\s15商品列表图列表页主要是使用了官方自带的gridView来实现,通过设置单个商品item,然后通过服务端返回数据循环遍历出整个列表。主要实现的伪代码如下:list=商品数据;ProductAdapteradapterItemBrand=初始化单个商品的item,也就是适配器;gridView=findViewById(R.duct_grid_view);gridView.setAdapter(adapterItemBrand);//设置列表的适配器gridView.setOnItemClickListener(newAdapterView.OnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){//监听点击事件 //通过传入相关信息从而实现点击某个商品跳转到相应的商品详情页}});4.4限制物品交易车实现限制物品交易车实现相对复杂些,主要需要考虑的因素有商品的多选,数量修改,选中商品价格的合计金额。不能简单的设置单个适配器item就可以实现,要往适配器里添加自定义按钮,实现数量的修改。对数量的调整进行限制,要求数量是不超过商品库存的非0自然数,如果商品数量减到1时还继续点击减数量,则会提醒用户是否把该商品移出限制物品交易车。此外,如果想快速从限制物品交易车删除某个商品,在限制物品交易车左滑可以显示删除按钮。具体页面见图4-6限制物品交易车图和图4-7限制物品交易车左滑图。图STYLEREF1\s4SEQ图\*ARABIC\s16限制物品交易车图图STYLEREF1\s4SEQ图\*ARABIC\s17限制物品交易车左滑图主要实现的伪代码如下:holder.cut.setOnClickListener(newView.OnClickListener(){//单个item控制数量减的点击事件@OverridepublicvoidonClick(Viewview){finalintpostition=点击的坐标UserCartobject=初始化点击对象;if(如果商品数量=1){提示用户商品数量为1,如果继续点击则会把商品删除出限制物品交易车}else{holder.carProductNum.setText(“”)修改商品数量减一;setNum(userCart);//设置界面显示的商品数量}}});控制商品添加的主要实现伪代码如下: //单个item控制数量加的点击事件holder.add.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){finalintpostition=找到点击的坐标。UserCartobject=objects.get(postition);检查库存是否足够 holder.carProductNum.setText();//控制商品数量加1将商品数量显示到界面}});4.5商品详情页商品详情页是展示商品信息的主要页面,从上往下依次是顶部显示商品名称,然后到大的轮播图,用来展示商品。点击还可以进入大图浏览,支持双指移动缩放等基础操作,方便用户更好的了解商品。然后界面上还有商品的市场价,也称原价,还有现在的价格(会员价),还可以看到商品的评分。用户可以选择数量进行添加到限制物品交易车。整体界面见图4-8商品详情页图。图STYLEREF1\s4SEQ图\*ARABIC\s18商品详情页图如果用户想要进行加入限制物品交易车功能的时候,如果没有登录的话会弹出对话框提示先去登录。见图4-9对话框提示图。图STYLEREF1\s4SEQ图\*ARABIC\s19对话框提示图该功能实现代码主要为privatevoidgoLogin(){/*@setIcon设置对话框图标*@setTitle设置对话框标题*@setMessage设置对话框消息提示*setXXX方法返回Dialog对象,因此可以链式设置属性*/finalAlertDialog.BuildernormalDialog=newAlertDialog.Builder(DetailActivity.this);normalDialog.setTitle("提示");normalDialog.setMessage("您需要登陆以后才可以使用该功能哟~");normalDialog.setPositiveButton("去登陆",newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){//...To-doIntentintent=newIntent(DetailActivity.this,LoginActivity.class);startActivity(intent);}});normalDialog.setNegativeButton("取消",newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){//点击取消不用执行任何事件}});//显示对话框normalDialog.show();}商品的轮播图的实现主要是调用了一个开源的banner框架实现publicvoidbanner(){for(){list_path.add(list_path.get(0));//通过for循环给轮播图加入数据}Bannerbanner=findViewById(R.id.detail_img);banner.setImageLoader(newDetailActivity.MyLoader());banner.setImages(list_path);//设置轮播的动画效果,内含多种特效,可点入方法内查找后内逐一体验banner.setBannerAnimation(Transformer.Default);//设置轮播图的标题集合banner.setBannerTitles(list_title);//设置轮播间隔时间banner.setDelayTime(3000);//设置是否为自动轮播,默认是“是”。banner.isAutoPlay(true);//设置指示器的位置,小点点,左中右。banner.setIndicatorGravity(BannerConfig.CENTER);//以上内容都可写成链式布局,这是轮播图的监听。比较重要。方法在下面。//必须最后调用的方法,启动轮播图。banner.start();}4.6咨询客服页的实现客服聊天页主要是通过即使渲染的列表完成。首先根据聊天框等制作相对的item。然后当服务端收到聊天数据的时候,将聊天内容以及用户信息等添加到RecyclerView然后再进行渲染。具体界面见图4-10咨询客服聊天图。图STYLEREF1\s4SEQ图\*ARABIC\s110咨询客服聊天图主要的代码如下展示列表showMsg()方法privatevoidshowMsg(){msgList.add(msg);//把消息添加到列表adapter.notifyItemChanged(msgList.size()-1);//当有新消息时,刷新RecyclerView中的显示msgRecyclerView.scrollToPosition(msgList.size()-1);//将RecyclerView定位到最后一行}//监听发送按钮send.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){Stringcontent=userInputText.getText().toString();if(!"".equals(content)){ //判断如果输入不为空则继续执行代码msg=newMsg(content,Msg.TYPE_SENT);showMsg();//展示信息userInputText.setText("");//清空输入栏}}});4.7商品分类搜索页在该页面用户可以选择通过分类来进行筛选查找相关的商品,也可以在上方输入关键字来进行模糊搜索商品。具体界面如图4-11商品分类搜索页图。图表4-11.商品分类搜索页主要实现伪代码如下://监听输入文本框的文本改变searchView.setOnQueryTextListener(newSearchView.OnQueryTextListener(){@OverridepublicbooleanonQueryTextSubmit(Stringquery){//监听用户点击事件,用户输入商品关键字后点击搜索后跳转至相应的搜索结果页面Intentintent=实例化intent对象;intent.putExtra("search",query);//向intent插入数据用户输入框的数据;intent.putExtra(”查询结果");//向intent插入数据,拼凑出查询结果的标题;startActivity(intent);//执行跳转}});根据服务端返回的分类进行展示,用户点击即可转到相关分类的伪代码如下:list=服务端返回的商品类型listView=定位listView,进行初始化。ProductTypeAdapterproductTypeAdapter=实例化适配器listView.setAdapter(productTypeAdapter);//设置适配器//监听点击事件listView.setOnItemClickListener(newAdapterView.OnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){Intentintent=实例化intentintent.putExtra("typeId",list.get(position).getProductTypeId());//为跳转插入数据getContext().startActivity(intent);//开始跳转}});5服务端功能具体实现服务端由springboot实现,服务端文件结构如图5-1。其中config用来储存服务端的相关配置信息,比如说数据库配置文件,日志配置文件,应用配置文件等等。Controller文件里放的是各种api接口。Dao包里主要是操作数据库的集成支持,方便快速地对数据库进行操作,而model放的是实体类,主要是根据数据库文件来生成。图STYLEREF1\s5SEQ图\*ARABIC\s11服务端文件结构图5.1登录注册功能登录功能由login()方法实现,服务端接受客户端传来的user对象,然后通过遍历数据库,验证用户名和密码是否正确,如果正确则返回用户信息的数据。主要实现代码如下@RequestMapping({"/login"})publicUserlogin(@RequestBodyUseruser){UserExampleuExample=newUserExample();uExample.createCriteria().andUsernameEqualTo(user.getUsername()).andPasswordEqualTo(user.getPassword());List<User>list=this.userMapper.selectByExample(uExample);if(list.size()>0){return(User)list.get(0);}returnnull;}注册功能类似通过接收一个User对象,然后检查用户名是否存在,如果不存在将用户数据插入数据库然后返回用户信息即可完成@RequestMapping({"/register"})publicUserjoin(@RequestBodyUseruser){UserExampleuExample=newUserExample();uExample.createCriteria().andUsernameEqualTo(user.getUsername());List<User>list=this.userMapper.selectByExample(uExample);if(list.size()>0){returnnull;}this.userMapper.insert(user);returnuser;}5.2商品列表查询功能商品列表功能比较简单,可分为查询所有商品,根据查询,模糊查询等。就拿根据品牌查询做列子。限制物品交易app传入相对应的品牌id,然后在服务端通过传入的品牌id去搜索满足条件的商品最后再返回。实现代码如下:@RequestMapping({"/queryProductByBrand"})publicHashMapqueryProductByBrand(intbrandId){HashMapresult=newHashMap();ProductExampleproductExample=newProductExample();productExample.createCriteria().andBrandIdEqualTo(Integer.valueOf(brandId));result.put("result","succes");result.put("product",ductMapper.selectByExample(productExample));returnresult;}5.3限制物品交易车添加/修改功能当用户在限制物品交易app上点击添加限制物品交易车的时候,会向后端发送一个UserCart对象的http请求,该对象包含用户的id以及商品的信息等。服务端收到后,会遍历查询找到该用户,然后再找到相对应的商品,对限制物品交易车表进行插入操作。具体代码实现如下://限制物品交易车添加功能@Transactional(propagation=Propagation.REQUIRED,rollbackFor={Exception.class})@RequestMapping({"/addUserCartByUser"})publicUserCartaddUserCartByUser(@RequestBodyUserCartuserCart)throwsException{UserCartExampleuserCartExample=newUserCartExample();UserCartExampleuserCartExample2=newUserCartExample();userCartExample.createCriteria().andUserIdEqualTo(userCart.getUserId());List<UserCart>list=this.userCartMapper.selectByExample(userCartExample);if(list.size()>0){userCartExample2.createCriteria().andUserIdEqualTo(userCart.getUserId()).andPr

温馨提示

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

评论

0/150

提交评论