基于iphone-os-的O2O电子商务平台系统设计与实现毕业设计论文_第1页
基于iphone-os-的O2O电子商务平台系统设计与实现毕业设计论文_第2页
基于iphone-os-的O2O电子商务平台系统设计与实现毕业设计论文_第3页
基于iphone-os-的O2O电子商务平台系统设计与实现毕业设计论文_第4页
基于iphone-os-的O2O电子商务平台系统设计与实现毕业设计论文_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

商丘师范学院2014届本科毕业论文(设计)引论随着移动互联网时代时代的到来,网购已经成为生活中必不可少的一项活动,网购也给人们生活带来了很大的便利,用户可以足不出户,买到自己偏爱的物品。不同于传统的网上购物,用户可以在线上选好商品后,以包裹的形式受到商品,在O2O电子商务模式下,最终用户买到的商品不是以包裹的形式寄到我们身边,而是一种服务,可以在线下去亲身体验消费感受。1O2O电子商务平台系统综述O2O电子商务简要介绍O2O顾明思议就是英文中的OnlinetoOffline,浅显的翻译也就是线上到线下。但是什么线上到线下呢?这里指的是用户从线上到线下。具体的解释是这样的:用户下载购物类的移动应用软件,在客户端,浏览不同的界面,或者在网站上浏览不同的商品商家或相关服务类的信息,遇到自己心仪的商品,或者满意的服务时,通过支付宝,或者其他第三方的支付手段,在线支付,线上付款成功后,会收到相关的凭证(比如短信凭证)。之后,用户再通过此凭证到线下实体店去消费体验享受服务的一个过程。这种模式促进了线上的消费者转移到线下实体店中去体验,感受服务,通过线上的宣传比较,大大增加了商家的客户量。O2O电子商务的主要特点就是在网上,在线上进行了商品,商户等信息的传递,以及资金的流转,用户体验在实体店线下进行,商品的流转也在线下进行。通过O2O电子商务App,商家可以更多的宣传展示自身的品牌,自己的产品,也可以及时得到消费者的反馈信息,及时调整改变自己不足的地方,与此同时商家也可以通过消费者的消费信息,浏览习惯等掌握用户的资料,进而进一步挖掘数据,分析消费者的行为,实现进一步的营销。消费者可以足不出户,轻松地获得各个商家商品的详细信息,能够轻松、及时、全面的筛选信息,了解优惠产品,打折信息,不仅仅拥有了更好的用户体验,给自己生活带来了便利,也是自己生活的小助手,轻易的找到最划算最适合自己的产品。无疑,此模式是一种双赢互利的模式,商家与用户相辅相成,相互促进,各取所需,各获其力。1.2市场现状与分析据CNNIC发布第33次《中国互联网络发展状况统计报告》显示,截至2013年12月,中国网民的数量已经高达6.18亿,互联网的普及率已经达到45.8%[2]。而其中,移动端手机网络的用户数量已经高达5亿[2]。移动手机端用户的持续增长的促进了手机移动客户端各类App的发展。2013年以网络购物(例如淘宝,阿里巴巴)、团购(例如美团,拉手网)等为主的移动客户端App应用一直在稳步发展与前进。[2]2013年,中国移动端网络购物的数量相比上以一年已经有了很大的提高。由此可见移动应用有着非常强大的市场,而以网络购物为主的商务类应用也保持着较高的发展速度,O2O电子商务系统不仅仅给人们生活带来很大的便利也有着有很大的发展空间与市场。随着iphone5c,iphone5s,ipadAir的相继上市,ios7.0,ios7.1的相继发布,苹果产品与新的设计理念备受关注,苹果用户也相继增高,与此同时苹果的软件市场也在为人们关注的热点之中。据新浪科技统计显示,2013年在苹果市场的软件收益已经超过100亿美元[3]。由此可见苹果移动端App应用软件市场有着巨大的潜质与发展空间,而电子商务类移动端App也有着很好的发展前景。1.3基本功能简要描述O2O电子商务平台移动端App主要分为首页、专题、周边、订单、搜索、应用中心、返现状态、摇一摇、购物车九大功能模块。首页上端展示了广告轮播,为商品提供了很好的展示平台,根据相关不同状态,点击可以跳转到到商品详情,商户详情,以及登陆注册的界面。界面下端使用轮播图对商品商户提供了很好的展示,同样也可以跳转到商品商户详情页面。而中间主要提供了返现状态,摇一摇,购物车等界面的入口。返现状态,记录了所有已支付的记录的商品对应的返现记录,在用户登录状态下可以直接浏览,否则跳转到登录界面。摇一摇,用户在摇晃手机后,随机匹配出商品信息,用户可以根据自己的喜好选择摇到的商品。购物车,用户在未登录的情况下,会跳转进入登录界面,登录以后点击购物车按钮,通过Http请求,Json解析显示出用户加入购物车的产品。应用中心,如果用户已经注册,并且登录的情况下,用户可以直接进入应用中心界面。如果没有登录否则跳转进入登录注册的界面。在应用中心这一模块中用户可以设置自己个人资料,查看我的消息,账户记录,以及安全中心。用于也可以对软件进行相关的设置,反馈建议。查看关于软件的信息。专题,主要以列表的形式对特卖商品进行了相关的展示,用户可以浏览此界面,根据个人偏好,跳转到不同的商品详情,商户详情。周边,首先进行用户定位。用户可在筛选框中,选择适合自己的条件,分别有分类,距离,默认排序。然后展示出相关商品,供用户选择。订单,用户在未登录的情况下,跳转进入登录界面;在登录的情况下,通过Http请求,Jason解析,展示出用户交易完成后形成的不同的订单。2开发环境、开发工具以及重要技术点介绍2.1开发环境2.1.1MacOSX操作系统OSX是苹果公司开发的操作系统,被应用于Mac系列产品。苹果操作系统是全球第一个选用“面向对象”的思想而且是在UNIX系统的基础上开发的操作系统[1]。史蒂夫·乔布斯(SteveJobs)在1985年由于种种缘故被迫离开了苹果公司,之后乔布斯又重新成立了NeXT公司,而“面向对象操作系统”就是在这段时间所开发出来的。苹果操作系统的版本命名基本上都是以大型猫科动物命名以及版本号。苹果操作系统版本命名对猫科动物偏爱有佳,10.0到10.8版本的命名依次如下所示:猎豹(Cheetah),美洲豹(Puma),美洲虎(Jaguar),黑豹(Panther),老虎(Tiger),豹子(Leopard),雪豹(SnowLeopard),狮子(Lion),美洲狮(MountainLion)[8]。2013年6月10日在WWDC大会上,10.9版本的OSX的命名结束了之前9个版本的命名规则,不再是以大型猫科动物命名,取而代之的是Mavericks(巨浪)这一命名。本系统在MacOSX10.8.4的环境下开发。2.1.2iphoneos操作系统iphoneos即ios,是Apple公司的移动操作系统。因为苹果移动端设备都使用iPhoneOS操作系统,所以在2010WWDC大会上苹果宣布其原来的名字iphoneos改名为iOS。iOS是iPad、iPhone、iPod

touch等苹果移动设备的操作系统。ios具有简单易用的界面,以及超强的稳定性。ios系统从最初的iPhoneOS1.2,ios4,ios5,ios6到现在得ios7经历了漫长的时间和蜕变。2.2开发工具与主要技术2.2.1主要使用语言Object-C

诞生于20世纪80年代的Objective-C语言,是由BradCox发明,其目的在于将Smalltalk语言与C语言结合在一起[6]。Objective-C是不仅仅是对C语言的一个扩展集,也是面向对象的编程语言。由于MacOSX的技术源自NextStep的OpenStep操作系统,并且其软件框架(framework)都是基于Objetive-C,顺利成章的Objective-C成为最适合苹果开发的语言[3]。Object-C的一些主要特点:a.Object-C不像C++一样支持命名空间原则,解决这一缺陷一般都是在类名称加前缀。b.Object-C不支持运算符重载,它只支持单继承,不允许多重继承,但是object-C中的协议可以解决这一缺点。c.Object-C的消息传递模型,对象是不调用方法的,而是互相传递消息。2.2.2Xcode与InterfaceBuilderXcode主要用于开发苹果操作系统和苹果移动客户端各类软件,是苹果公司向开发人员提供的专门开发苹果App的集成开发环境。Xcode是由NeXT的ProjectBuilder慢慢的演变过来的。它支持C语言、C++、Objective-C、Objective-C++、Java等语言[5]。作为Xcode套件的一部分,InterfaceBuilder,也就是界面编辑器,主要用于苹果操作系统的软件视图界面的开发。苹果开发者使用界面编辑器来设计,创建和修改App的不同的图形界面。界面编辑器的数据是以XML的格式被储存在.xib的文件中。但是在过去,界面编辑器的数据则是被储存在.nib文件中。界面编辑器向开发者提供了一系列包含着各种各样的用户界面对象的工具箱。这些对象包括按钮,列表,风火轮,文本框,滑动图片,滚动条,进度条等不同的控件。使用界面编辑器,开发者只是通过拖拽选定的对象到面板上,这样就创建了选中的对象,也可以移动此对象的位置,很容易的就布局了整个图形界面。开发者不但可以使用苹果系统所提供的控件,也可以使用自己定义的控件,用这种方法创建对象,相比单纯代码创建对象容易的多,而且整个界面布局可以一目了然,可视化也强。。2.3JSON解析JSON也就是JavascriptObjectNotation,是一种比较方便阅读的,轻量级的并且以文字为基础的语言。[7]JSON描述数据结构时,主要一以下的形式存在:a.对象(object):对象的描述是以“{”开始,并遇到“}”结束。一个对象包含一系列没有排序的key/value键值对,每个key/value键值对之间都用用“,”逗号分割开。b.key/value键值对:key也就是关键字,value是与key相对应的值。关键字与其相对应的值之间用“:”隔开。一般的形式如右:{key:value}。key关键字只能是一个字符串,而与之相对应的value值既可以是字符串类型,也可以是数值,对象,布尔值,数组,或者null值等等。C.数组:数组中可以存放对象,或者基本数据类型,当然也可以存放不同的数组。不同的类型之间用“,”逗号分割开,最后使用“[”,“]”中括号括起来,这样就就形成了数组。最终服务器返回这样的格式,被开发人员解析出来使用。d.字符串:以""括起来的一串字符。e.数值:一系列0-9的数字组合,可以为负数或者小数。f.布尔值(Bool):表示为true或者false。3O2O电子商务平台系统需求分析3.1业务流程分析通过对O2O电子商务平台系统的需求分析,确定了O2O电子商务平台系统的各个模块的业务流程。O2O电子商务平台系统的流程图如图3-1所示3.2功能型需求分析根据客户需求以及功能要求,O2O电子商务平台系统简要需求分析如下:首页模块:通过HTTP通信,JSON解析,展示出广告轮播,以及相关活动展示,用户通过浏览相关界面可以跳转到相应的商品详情页面,商户详情页面,并且提供了摇一摇,返现状态,购物车,应用中心,搜索界面等功能的入口。返现状态模块:通过HTTP通信,JSON解析,在登录的情况下展示出所有已支付的记录的商品对应的返现记录,没有登录的状态下,跳转到登陆界面。摇一摇模块:用户在摇晃手机后,根据后台匹配出商品信息,展示到界面上,用户可以根据个人偏好,选择购买商品,或者退出此界面。购物车模块:未登录的时候显示登录界面,登录以后通过Http请求显示出用户加入购物车的产品,以列表的形式展示出来。应用中心模块:未登录的时候跳转进入登陆界面,未注册的时候,用户可以在登陆界面找到注册按钮,跳转到注册个人信息。完成注册登录以后,用户可以进入应用中心界面。在这一模块中用户可以设置自己个人资料,查看我的消息,账户记录,以及安全中心。用于也可以对软件进行相关的设置,反馈建议。查看关于软件的信息。专题模块:主要对特卖商品进行了相关的展示。用户可以根据个人喜好,选择适合自己的产品。周边模块:首先进行用户定位。用户可在筛选框中,选择适合自己的条件,分别有分类,距离,默认排序。然后展示出相关商品,供用户选择。订单模块:在登录的状态下,显示出用户交易完成后形成的不同的订单,否则跳转登录界面。图3-1系统业务流程图备注:应用中心,订单,以及购物车功能需要在登录成功的状态下才能显示出来,若没有登录用户显示登录界面。3.3与服务器端共用的数据字典分析3.3.1登录成功后获取个人信息请求报文:参数名称数据类型说明PhonenumString手机号码返回报文:参数名称数据类型说明NicknameString昵称UseridIntUseridUserimgString用户头像urlPhonenumString用户手机号SexyInt性别,0male1femaleBrithdayString生日ConstellationString星座LocalString所在地ProfessionalString职业InterestString兴趣BalanceFloat余额UnbanlanceFloat不可用余额EmailStringEmail3.3.2商品详情页请求报文:参数名称数据类型说明ProductidInt商品idLongitudeFloat经度LatitudeFloat纬度返回报文:返回数组参数名称数据类型说明ProductnameString商品名字ProductimgArray商品图片组urlRebateFloat返现比Is7dayInt1支持7天退换IsexpiredInt1支持过期退换IsbackInt1支持随时退isgenuineInt1正品IsinvoiceInt1支持提供发票StorenameString商户名字StocknumInt库存数量BuyernumInt购买人数BuerendtimeString购买截止日期ConsumptiontimeString消费截止日期EvaluateArray用户评价数组StoreidInt所属商户idDistanceFloat距离PhoneString商户电话DetailinfoString图文详情urlHotproductArray本店热门商品数组(数组中包含productid和productname)ProducturlString商品url3.3.3商户详情页请求报文:参数名称数据类型说明shopidInt商户idLongitudeFloat经度LatitudeFloat纬度返回报文:返回数组参数名称数据类型说明ProductnameString商品名字ProductimgArray商品图片组urlRebateFloat返现比Is7dayInt1支持7天退换IsexpiredInt1支持过期退换IsbackInt1支持随时退isgenuineInt1正品IsinvoiceInt1支持提供发票StorenameString商户名字StocknumInt库存数量BuyernumInt购买人数BuerendtimeString购买截止日期ConsumptiontimeString消费截止日期EvaluateArray用户评价数组StoreidInt所属商户idDistanceFloat距离PhoneString商户电话DetailinfoString图文详情urlHotproductArray本店热门商品数组(数组中包含productid和productname)ProducturlString商品url3.3.4周边页面请求报文:参数名称数据类型说明LongitudeFloat经度LatitudeFloat纬度TypeidInt周边的分类SordInt排序种类DistanceInt距离返回报文:参数名称数据类型说明ImgurlString图片urlProductidInt商品idProductnameString商品名字IsnewInt判断是否最新PriceFloat价格ProductprecentFloat返现比例LongitudeFloat经度LatitudeFloat纬度TypeInt标记是人气,最新,还是无4O2O电子商务平台系统设计系统App设计,是指在在分析App功能模块的前提下,充分了解用户的需求,然后再设计出以能满足用户需求为目标,实现基本功能的过程[8]。系统设计的主要内容包括:确定设计方针和方法将系统分解为若干子系统了解各个子系统的目标,并且确定各个子目标的功能及各个子目标之间的相互关系,便于后期开发决定对子系统的管理体制和控制方式对各子系统进行技术设计和评价对全系统进行技术设计和评价等。本阶段的主要目标是划分O2O电子商务平台App的模块,并且对各个模块进行分析,了各个模块以及子模块所使用的开发的技术要点,以及各个界面的切换逻辑。O2O电子商务平台系统功能模块如图4-1。图4-1O2O电子商务平台系统功能模块5O2O电子商务平台系统的实现5.1首页功能模块的实现如图5-1所示:图5-1首页功能模块图部分功能代码实现如下:购物车功能模块的入口-(IBAction)cartAction:(id)sender{点击购物车按钮后,通过gGlobalSetting.loginUser判断是用户是否登录,假如用户没有登录,则跳转进入登录界面。if(!gGlobalSetting.loginUser){LoginViewController*login=[[LoginViewControlleralloc]init];UINavigationController*navi=[[UINavigationControlleralloc]initWithRootViewController:login];navi.navigationBarHidden=YES;[gRootViewControllerpresentModalViewController:navianimated:YES];[loginrelease];[navirelease];return;}登录了以后跳转进入购物车界面CartViewController*vc=[[CartViewControlleralloc]init];[selfpushViewController:vcanimated:YESgestureEnable:YES];[vcrelease];}摇一摇功能模块的入口-(IBAction)shakeAction:(id)sender{跳转进入摇一摇界面ShakeViewController*vc=[[ShakeViewControlleralloc]init];[selfpushViewController:vcanimated:YESgestureEnable:YES];[vcrelease];}返现状态模块的入口-(IBAction)rebateAction:(id)sender{判断是否登录,没有登录的话,跳转登陆界面if(!gGlobalSetting.loginUser){LoginViewController*login=[[LoginViewControlleralloc]init];UINavigationController*navi=[[UINavigationControlleralloc]initWithRootViewController:login];navi.navigationBarHidden=YES;[gRootViewControllerpresentModalViewController:navianimated:YES];[loginrelease];[navirelease];return;}登陆成功了以后,进入返利状态界面。RebateStatusViewController*vc=[[RebateStatusViewControlleralloc]init];[selfpushViewController:vcanimated:YESgestureEnable:YES];[vcrelease];}5.2专题功能模块的实现如图5-2所示图5-2专题功能模块图代码实现如下:专题下部分下拉列表的实现:-(BOOL)refreshAction{上拉刷新列表,加载更多[gNetworkManagergetActivityListByPageIndex:FMUSTRING_WRAP_D(_currentPage)perpageCount:FMUSTRING_WRAP_D(_countPerPage)delegate:self];returnYES;}-(BOOL)moreAction{下拉刷新列表,加载更多。[gNetworkManagergetActivityListByPageIndex:FMUSTRING_WRAP_D(_currentPage)perpageCount:FMUSTRING_WRAP_D(_countPerPage)delegate:self];returnYES;}5.3周边功能模块的实现代码实现如下:-(void)viewDidLoad{[superviewDidLoad];//排序种类1默认排序2距离最近3最新发布4销量最高5价格最低6价格最高[selfloadConditions];[gNetworkManagergetCategories:self];[gNetworkManagergetAreas:self];}-(void)loadConditions{self.categories=[NSMutableArrayarray];self.areas=[NSMutableArrayarray];NSArray*tmp=[gStorageManagerfetchArrayForFileName:@"nearby_category.plist"];安全性判断,防止系统崩溃。if(tmp.count>0){NSArray*cache_category=[FMBeanobjectsWithArray:tmpclassType:[BLCategoryclass]];[self.categoriessetArray:cache_category];}tmp=[gStorageManagerfetchArrayForFileName:@"nearby_areas.plist"];if(tmp.count>0){NSArray*cache_areas=[FMBeanobjectsWithArray:tmpclassType:[BLCategoryclass]];[self.areassetArray:cache_areas];}self.distances=[NSMutableArrayarray];self.sorts=[NSMutableArrayarray];[self.distancesaddObject:@{@"name":@"距离不限",@"id":@"10000"}];[self.distancesaddObject:@{@"name":@"1000米",@"id":@"1000"}];[self.distancesaddObject:@{@"name":@"3000米",@"id":@"3000"}];[self.distancesaddObject:@{@"name":@"5000米",@"id":@"5000"}];[self.distancesaddObject:@{@"name":@"10000米",@"id":@"10000"}];[self.sortsaddObject:@{@"name":@"默认排序",@"id":@"1"}];[self.sortsaddObject:@{@"name":@"距离最近",@"id":@"2"}];[self.sortsaddObject:@{@"name":@"最新发布",@"id":@"3"}];[self.sortsaddObject:@{@"name":@"销量最高",@"id":@"4"}];[self.sortsaddObject:@{@"name":@"价格最低",@"id":@"5"}];[self.sortsaddObject:@{@"name":@"价格最高",@"id":@"6"}];}如图5-3a5-3b:图5-3(a)周边功能模块检索图 图5-3(b)周边功能模块展示图5.4订单功能模块的实现 图5-4订单功能图部分功能实现如下:页面上的订单显示-(void)fmTable:(FMTableController*)fmTableControllerdidSelectItem:(id)itematIndexPath:(NSIndexPath*)indexPathtag:(NSInteger)tag{Order*order=item;OrderDetailViewController*detail=[[OrderDetailViewControlleralloc]init];detail.order=item;[selfpushViewController:detailanimated:YESgestureEnable:YES];[detailrelease];}5.5摇一摇功能界面的实现 如图5-5(a),5-5(b)所示图5-5(a)摇一摇展示图图5-5(b)摇一摇初期界面图代码实现如下:-(IBAction)detailAction:(id)sender{if([self.shake.objTypeisEqualToString:@"1"]){//商户[gAlertshow:nildelegate:self];self.tmpRequest=[gNetworkManagergetShopDetailByAccountId:self.shake.storeiddelegate:self];}elseif([self.shake.objTypeisEqualToString:@"2"]){//商品[gAlertshow:nildelegate:self];self.tmpRequest=[gNetworkManagergetProductDetailByProductid:ductiddelegate:self];}}5.6购物车功能模块的实现如图5-6所示图5-6购物车功能模块代码实现如下:展示出购物车列表-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath{CartCell*cell=nil;if(!cell){NSArray*nib=[[NSBundlemainBundle]loadNibNamed:@"CartCell"owner:selfoptions:nil];for(idobjinnib)if([objisKindOfClass:[CartCellclass]])cell=(CartCell*)[objretain];}cell.delegate=self;ShoppingCart*cart=[ShoppingCartsharedCart];ShoppingCartItem*item=[cart.cartItemsobjectAtIndex:indexPath.section];Product*p=[ductsobjectAtIndex:indexPath.row];[cellreloadData:p];return[cellautorelease];}选中购物车中商品,跳转进入商品详情页面-(void)tableView:(UITableView*)tableViewdidSelectRowAtIndexPath:(NSIndexPath*)indexPath{ShoppingCart*cart=[ShoppingCartsharedCart];ShoppingCartItem*item=[cart.cartItemsobjectAtIndex:indexPath.section];Product*p=[ductsobjectAtIndex:indexPath.row];ProductDetailViewController*vc=[[ProductDetailViewControlleralloc]init];duct=p;[selfpushViewController:vcanimated:YESgestureEnable:YES];[vcrelease];}5.7应用中心功能模块的实现如图5-7所示图5-7应用中心模块代码实现如下:用列表的形式展示-(void)tableView:(UITableView*)tableViewdidSelectRowAtIndexPath:(NSIndexPath*)indexPath{switch(indexPath.row){case1:{跳转进入个人资料界面UserInfoViewController*uinfo=[[UserInfoViewControlleralloc]init];[selfpushViewController:uinfoanimated:YESgestureEnable:YES];[uinforelease];}break;case2:{跳转进入我的消息界面MessageViewController*msg=[[MessageViewControlleralloc]init];[selfpushViewController:msganimated:YESgestureEnable:YES];[msgrelease];}break;case4:{跳转进入关于界面AccountViewController*account=[[AccountViewControlleralloc]init];[selfpushViewController:accountanimated:YESgestureEnable:YES];[accountrelease];}break;case5:{[gAlertshow:nildelegate:nil];self.tmpRequest=[gNetworkManagergetSecurityInfoByUserId:gGlobalSetting.loginUser.useriddelegate:self];}break;case7:{跳转进入个人设置界面SettingViewController*s=[[SettingViewControlleralloc]init];[selfpushViewController:sanimated:YESgestureEnable:YES];[srelease];}break;case8:{跳转进入返利状态的界面FeedbackViewController*s=[[FeedbackViewControlleralloc]init];[selfpushViewController:sanimated:YESgestureEnable:YES];[srelease];}break;case9:{跳转进入关于界面AboutViewController*s=[[AboutViewControlleralloc]init];[selfpushViewController:sanimated:YESgestureEnable:YES];[srelease];}break;default:break;}}以表的形式展示出界面-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath{NSArray*titles=@[@"个人中心",@"个人资料",@"我的消息",@"账户中心",@"账户记录",@"安全中心",];NSArray*icons=@[@"",@"icon_userinfo.png",@"icon_msg.png",@"",@"icon_account.png",@"icon_secure.png",@"",@"icon_setting.png",@"icon_feedback.png",@"icon_help.png"];UITableViewCell*c=nil;if(indexPath.row==0||indexPath.row==3||indexPath.row==6){UserCenterSection*cell=nil;if(!cell){NSArray*nib=[[NSBundlemainBundle]loadNibNamed:@"UserCenterSectiowner:selfoptions:nil];for(idobjinnib)if([objisKindOfClass:[UserCenterSectionclass]])cell=(UserCenterSection*)[objretain];[cellsetSectionTitle:[titlesobjectAtIndex:indexPath.row]];c=cell;}}else{UserCenterCell*cell=nil;if(!cell){NSArray*nib=[[NSBundlemainBundle]loadNibNamed:@"UserCenterCell"owner:selfoptions:nil];for(idobjinnib)if([objisKindOfClass:[UserCenterCellclass]])cell=(UserCenterCell*)[objretain];}NSUIntegeridx=indexPath.row;[cellsetCellTitle:[titlesobjectAtIndex:idx]iconImage:[UIImageimageNamed:[iconsobjectAtIndex:idx]]];c=cell;}return[cautorelease];}5.8搜索界面功能模块的实现如图5-8所示:图5-8搜索功能模块代码实现如下:点击搜索按钮-(IBAction)searchAction:(id)sender{if(_searchField.text.length==0){[gAlertshow:@"请输入关键字~"delegate:nil];}else{if([self.typeisEqualToString:@"2"]){按商品搜索,选中搜索的某一个内容,跳转进入相应的商品详情页面ProductListViewController*vc=[[ProductListViewControlleralloc]init];=_searchField.text;vc.sort=@"1";[selfpushViewController:vcanimated:YESgestureEnable:YES];[vcsetTitleString:_searchField.text];[vcrelease];[[FrontiagetStatistics]logEvent:@"SearchProduct"eventLabel:_searchField.text];}elseif([self.typeisEqualToString:@"1"]){按商户搜索,选中搜索商户的某一个内容,跳转进入相应的商户详情页面ShopListViewController*vc=[[ShopListViewControlleralloc]init];=_searchField.text;vc.sort=@"1";[selfpushViewController:vcanimated:YESgestureEnable:YES];[vcsetTitleString:_searchField.text];[vcrelease];[[FrontiagetStatistics]logEvent:@"SearchShop"eventLabel:_searchField.text];}}}5.9商品详情界面的实现如图5-9所示图5-9商品详情页代码实现如下:展示出商品详情页面-(void)reloadData{[selfreloadContainer1];if(duct.evaluate.count!=0){[selfreloadcontainer2];}//container3_shopname.text=_product.storename;_shopaddress.text=[NSStringstringWithFormat:@"地址:%@",_product.addRess];//doublea=[_product.distancefloatValue]*1000.0;_shopdistance.text=[NSStringstringWithFormat:@"距离:%.0fm",_product.distance.floatValue*1000];//contaner4[_tablereloadData];}-(void)reloadContainer1{读取出商品详情页面上端的商品图片for(inti=0;i<_ductimg.count;i++){ProductImage*pi=[_ductimgobjectAtIndex:i];UIImageView*bg=[[UIImageViewalloc]initWithFrame:CGRectMake(i*110+10-2,10-2,100+4,100+4)];bg.backgroundColor=[UIColorclearColor];bg.image=gGlobalSmonStretchBg;[_imgsScrollViewaddSubview:bg];[bgrelease];FMImageControl*c=[[FMImageControlalloc]initWithFrame:CGRectMake(i*110+10,10,100,100)];c.imageView.contentMode=UIViewContentModeCenter;c.imageView.image=[UIImageimageNamed:@"default_img_100.png"];c.imageView.contentModeAfterDownload=UIViewContentModeScaleToFill;[c.imageViewloadImageByUrl:pi.middle_url];c.tag=i;[_imgsScrollViewaddSubview:c];[caddTarget:selfaction:@selector(imgAction:)forControlEvents:UIControlEventTouchUpInside];[crelease];}展示出商户详情上端的产品图片[_imgsScrollViewsetContentSize:CGSizeMake(_ductimg.count*120,_imgsScrollView.frame.size.height)];intreba=_product.rebate.floatValue*100;NSString*rebat=[NSStringstringWithFormat:@"返利%d%%",reba];_rebate.text=rebat;_productname.text=_ductname;NSMutableArray*marks=[NSMutableArrayarray];if(_product.is7day.boolValue){[marksaddObject:_mark7days];}if(_product.isexpired.boolValue){[marksaddObject:_markExpired];}if(_product.isback.boolValue){[marksaddObject:_markBack];}if(_product.isgenuine.boolValue){[marksaddObject:_markGenuine];}if(_product.isinvoice.boolValue){[marksaddObject:_markInvoice];}CGFloatmark_start_x=_mark7days.frame.origin.x;for(inti=0;i<marks.count;i++){UIImageView*m=[marksobjectAtIndex:i];CGRectr=m.frame;r.origin.x=mark_start_x;m.frame=r;mark_start_x+=r.size.width+10;m.hidden=NO;}_price.text=[NSStringstringWithFormat:@"%@元",_product.price];if(_egerValue<0){_storeNum.text=@"库存:不限";}elseif(_egerValue==0){_storeNum.text=@"库存:无";}else{_storeNum.text=[NSStringstringWithFormat:@"库存:%@件",_product.stocknum];}_buyerNum.text=[NSStringstringWithFormat:@"%@人购买",_product.buyernum];NSString*buyert=[_product.buerendtimesubstringWithRange:NSMakeRange(0,10)];_buyerEndtime.text=[NSStringstringWithFormat:@"购买截止:%@",buyert];NSString*consumptiont=[_product.consumptiontimesubstringWithRange:NSMakeRange(0,10)];_consumptionEndtime.text=[NSStringstringWithFormat:@"消费截止:%@",consumptiont];}-(void)reloadcontainer2{//container2_commentNum.text=[NSStringstringWithFormat:@"已有%d人评价",_product.evaluate.count];ProductEvaluate*aEvaluate=[_product.evaluateobjectAtIndex:0];_firstCommentName.text=aEvaluate.personName;_firstCommentContent.text=aEvaluate.content;CGFloatcommenScore=[aEmenScorefloatValue];[_rateViewsetPercent:commenScore/5.0f];}5.10商户详情界面的实现图5-10商品详情界面代码实现如下:加载界面的数据-(void)reloadData{加载商户名称,地址,联系电话等信息_logo.contentModeAfterDownload=UIViewContentModeScaleToFill;[_logoloadImageByUrl:self.shop.logo];[_starsetPercent:[_shop.startnumfloatValue]/5.0];_shopname.text=self.shop.storename;_address.text=self.shop.address;_phone.text=self.shop.phonenum;_rebateNum.text=self.shop.cashbacknum;_commentNum.text=self.shop.evaluatenum;_address.numberOfLines=0;[_addresssizeToFit];CGRectr=_container1.frame;r.size.height=_address.frame.origin.y+_address.frame.size.height+13;_container1.frame=r;[selfreadMark];}加载标志信息-(void)readMark{NSMutableArray*marks=[NSMutableArrayarray];if(_shop.is3hour.boolValue){[marksaddObject:_mark3h];}if(_shop.iscancard.boolValue){[marksaddObject:_markCard];}if(_shop.isdirect.boolValue){[marksaddObject:_markDirect];}if(_shop.ispasscar.boolValue){[marksaddObject:_markPark];}if(_shop.iswifi.boolValue){[marksaddObject:_markWifi];}if(_shop.isspecailstore.boolValue){[marksaddObject:_markSpecial];}CGFloatmark_start_x=_markWifi.frame.origin.x;for(inti=0;i<marks.count;i++){UIImageView*m=[marksobjectAtIndex:i];CGRectr=m.frame;r.origin.x=mark_start_x;m.frame=r;mark_start_x+=r.size.width+10;m.hidden=NO;}}结论经过几个月的开发和研究,O2O电子商务平台系统的设计与开发流程基本完成。其功能逻辑已经走通,基本满足用户需求。但是该App还很多不足很多有待优化的地方,在今后的开发过程中会进一步改,进一步优化。通过实现O2O电子商务系统地功能体会到毕业设计的目的不仅仅是自己完成设计,而在于学习新内容,了解更多知识,掌握解决问题的方法,把所学语言当成一种工具,在开发过程中正是熟练运用这种工具的过程。整个开发过程中,遇到了很多困难,解决问题,解决困难也使自己得到了很大的提升。基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究HYPERLIN

温馨提示

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

最新文档

评论

0/150

提交评论