设为主页 | 加入收藏 | 联系我们
您当前的位置:首页 > 销售网络
电商平台搭建--商品管理功能模块开发(一)
时间:2019-01-28 05:41:48  来源:本站  作者:

  Hi,大家好,我们又见面了。相信通过前面几篇博文的学习,大家已经对如何搭建一款属于自己的电商平台有了初步的了解,也大致懂了SSM框架的主要开发流程,那么在接下来的几篇博文中,我将带领大家完成商品管理功能模块的开发,还在等什么,直接进入正题吧!

  电商平台的商品管理模块,一般都分为前台和后台,所以在后端要写前台的商品管理,也要写后台的商品管理。按照正常顺序,先来完成前台商品管理的功能。

  相对于后台来讲,前台的商品管理比较简单,主要功能一共就两个,获取商品详情、前台商品搜索。在这两个功能里面,获取商品详情比较简单,我们会在前台商品搜索中把分页逻辑写好,方便前台调用。

  首先来看,在getProductDetail方法中,ServerResponse的泛型被指定为ProductDetailVo类型。这里的Vo是value-object也就是值对象的简称。什么是值对象呢?它的本质也是一个JavaBean,只不过是为了专门解决一种或多种需求独立出来的JavaBean。有了VO以后,对数据的处理就会更加灵活,因为我们可以单独的封装它们,这样即保证了数据的独立性,也不会对项目的整体数据造成影响,当我们的VO处理完毕以后,并入到项目中,也降低了各个功能之间的依赖性。就前台-获取商品详细信息来看,我封装了一个ProductDetailVo这么一个值对象,它里面存放了和商品所有有关的信息字段以及getter和setter方法。

  先回到该方法,传递一个productId来在数据库中查询相关的商品信息。如果productId为空,则提示参数错误,否则就向数据库中查询,将查询结果返回给product,如果其为空表示产品已下架或已删除,还有一种情况是根据商品的状态,根据返回值来判断商品的状态,这个ProductStatusEnum会在下面补充。当商品的校验状态通过以后,就可以直接调用封装好的assembleProductDetailVo方法来处理商品的详细信息,最后直接返回productDetailVo即可,这个字段里面就包括了商品的详细信息。

  为了使用这个VO,我们不能在其内部去写方法,然后在外部调用,这样是不符合情理的。对于这种情况,可以在对应的Service中封装一个处理VO的方法,这样一来,就可以实现“点对点”的功能服务。在该方法中,我写了一个处理商品详情的VO方法。

  像处理JavaBean一样,处理VO的方法类型一定要是当前VO类型的并传递给VO需要的Product数据,否则数据无法处理。首先在该方法中new出一个当前ProductDetailVo的实例,然后把需要处理的数据用setter方法设置好,然后有一个category判断。如果getCategoryId为空,就把它的父节点id也设置为空,否则就把当前的id值更新到父节点id上。最后再设置一下更新商品或者创建商品的创建时间和更新时间,返回productDetailVo,就处理完了ProductDetailVo值对象。

  这里提一下,ImageHost字段为自己的图片服务器地址,因为所有的图片都是保存在图片服务器上面的,所以修改图片要通过图片服务器的方式进行修改,切记。

  因为和功能有关的逻辑在Service层中已经处理完善了,所以在Controller里直接返回处理结果即可,别忘了这里的泛型一定是ProductDetailVo类型。

  在前台商品搜索中,我们需要处理很多事情。首先是搜索方式,可以通过关键词进行搜索,也可以通过categoryId进行搜索(这个categoryId是后端为每一个商品单独添加的id,会直接存放在数据库中对应商品)。其次就是将搜索结果进行一个分页处理,如果没有分页的话,商品列表页会看着非常乱,会严重影响用户体验,这在企业中也是不允许的。

  跟字段验证的方法相似,首先验证keyword和categoryId是否为空,如果为空,则提示参数错误,否则进行下一步操作。像上述方法一样,对于复杂数据的处理,应该封装一个VO,这里的是ProductListVo(下面有介绍)。回到方法中,分页的实现是之前提到的Mybatis三剑客的PageHelper,这是一个开源的GitHub项目()。使用PageHelper进行分页处理,需要三步实现。第一步,调用PageHelper的startPage方法,传入分页数量和每页显示的数量;第二步,填充分页数据;第三步,开始分页。注意,全部用List集合进行处理。对排序逻辑的处理,分为默认排序和价格升降序排序。其实默认排序就是把直接进行搜索的结果显示出来就行,不需要再处理,所以这里的代码是不用写的,只需处理价格的高低即可。因为每排一次序就是重新显示一个界面,所以在处理价格排序时要重新进行分页,逻辑和上述相同不再赘述。因为涉及到排序,所以getProductByKeywordCategory方法的泛型需要为PageInfo,否则无法进行排序。最后将排序处理后的结果返回,就完成了该方法的编写。

  因为和功能有关的逻辑在Service层中已经处理完善了,所以在Controller里直接返回处理结果即可。 这里又用到了RequestParam注解来为每个字段设置默认值。keyword和categoryId的默认值为false,表示如果前台不传递这两个字段给后台也是可以进行排序的,即这两个字段不是非必须的。pageNum默认值为1,表示默认只有一页,pageSize默认值为10,表示每页显示10条记录。orderBy默认值为空,表示默认使用默认排序,若使用价格排序,需要前台传入orderBy的值。

  (3)、笔者默认认为你已经有一定的JavaBean基础,所以在商品模块没有对JavaBean进行详细的解释;

  (4)、值对象VO是依赖POJO的,所以在处理值对象VO的方法中传入的是对应的POJO类型,例如这里的Product;

  写到这里,前台商品模块所有功能就实现完毕了,在本篇博文中,我们用了较长的篇幅来搭建商品模块的开发基础,希望大家能动手写写,体会一下前台商品模块的开发流程。如果有不懂的地方,欢迎关注,欢迎评论留言。我们下篇再见!!

  大家好,在本篇博文中,我们将完成商品管理模块后台管理的部分功能。一、商品管理功能模块-后台-管理商品上下架状态功能的实现       需要在Controller包下新建一个ProductManag...来自:Steafan_的博客

  无限分类1.表的变化 所谓无限分类,就是用一张表来实现所有分类,在原来简单分类表的基础上,加了个pid字段,这就是数据表方面的变化。 2.控制器,模型的变化 我们原先的分类是一级的,就是分...来自:发现美,玩起来

  各位朋友,狗年第一篇,希望各位朋友继续关注,谢谢大家的支持!    我们先来看一下商品管理功能模块开发的思维导图前两篇博文,我们已经实现了商品管理模块的主要核心功能,纵观博文,还有两个功能没有实现,后...来自:Steafan_的博客

  前言找完工作以后感觉一段时间失去了学习的激情,再加上毕业论文的工作,懒散拖沓了好久才开始继续我的项目学习。其实这些内容吧,你说难那是一点也不难,重要的在于处理业务的经验,防患漏洞的经验,以及隐藏在项目...来自:winxblast的博客

  商品是所有系统中的核心,电子商务网站,ERP系统都是围绕着商品展开的,商品是一切信息的基础,这一节我们看下商品管理模块有哪些功能以及和商品有关的属性。 商品的主要功能包括添加,修改,查询,和商品关联的...来自:游响云停专栏

  三,投诉模块设计           对投诉管理模块的设计,要重点从三块来设计,一是添加模块,二是更改模块,三是浏览模块。          1,投诉管理模块          投诉管理模块在窗...来自:life is wonderful

  客户管理系统的模块设计可分为登录模块,主模块,客户模块,服务模块和其他模块(更改密码模块,客户列表选择模块)等五大模块。        一,登录模块设计        登录模块用来判断管理员是否是合法...来自:life is wonderful

  技术要求(html+css+angularjs) 1.  完成页面布局(button按钮可以用普通按钮) 2.Ø声明数据对象,初始化商品信息,数据自拟且不低于四条 3.  用ng-repaet指令将对...来自:Lay_y的博客

  经过上文的学习,我相信大家都知道富文本编辑器的使用方法了,我们能走到这步,实属不易,本文终于可以来实现商品添加这个功能了。  在item-add.jsp页面当中,当点击提交按钮后,会触发submit...来自:熊诗言的博客

  SSM实战之商品信息管理系统《二》 1.前言 本系统属于SSM的常用功能整合使用练习。 涉及到SSM框架整合+前端框Bootstrap+Ajax校验+登录+图片文件上传+日期类型转换器+j...来自:zout邹涛的博客

  分类层级 商品信息表–放在缓存中– 加权平均成本 文件服务器,CDN 图片...来自:小炫的博客

  先上车,再解释 前面搞过一次产品模块设计,然而感觉各种不顺畅,新学习了各位大神的思想,在此记录下来 Product:商品表,这个一个具体的商品,其中已包括所有商品该有的属性,与类型(Type)...来自:小动物的圈圈

  电商的一般架构   一、 电商简介 “电商”一词是业内人士对电子商务的简称。 广义上讲,电子商务指的是通过电子手段进行的商业活动。通过使用互联网等电子工具,使公司内部、供应商、客户和合作伙伴之间,利用...来自:皇总监的博客

  案例1:查询商品分类信息案例2:查询首页上的基本信息(热门商品和最新商品)案例3:查询商品详细信息案例4:分页查询分类下的商品信息 编程中的注意事项: java是处理业务逻辑的不具备存储数据的功能,...来自:weixin_42286648的博客

  购物车模块技术要点: 1、商品总价计算复用封装 2、高复用的逻辑方法封装思想 3、解决商业运算丢失精度的坑 一、购物车模块功能 1、购物车添加商品 2、更新商品数量 ...来自:小刺猬喜歡獨角獸

  面试:订单模块技术要点 技术要点: 1、安全漏洞解决方案 2、订单号生成规则 3、强大的常量、枚举设计 一、前台创建订单 Controller层: //创建订单 ...来自:小刺猬喜歡獨角獸

  Hi,大家好,新年已经过完了,伴随着我们的是又要开始工作了。祝愿大家在新的一年里工作顺利,生活愉快,年薪升的比火箭还快。一、购物车模块-概括      在正是进入开发之前我们先来看一下购物车模块都有哪...来自:Steafan_的博客

  Hi,大家好,我是Steafan。在本篇博文中我们将完成订单管理模块中的后台所有功能的开发,从而完成订单管理模块的所有功能点,赶快来学习吧!一、订单管理模块-后台-获取订单列表功能的开发public ...来自:Steafan_的博客

  说明:搜索模块针对的是买家用户,在找菜品找的很费劲下的一种查询方面。目前也是快速的检索商品。           对于移动端的APP买家用户而言,要求的速度在3秒内完成。支持模糊查询,由于业务实战表面...来自:NotBugger的博客

  一、功能介绍 登录功能、用户名验证、注册、忘记密码、提交问题答案、重置密码、获取用户信息、更新用户信息、退出登录 二·、横向越权、纵向越权安全漏洞 横向越权:攻击者尝试访问与他拥有相同权限的的用...来自:黑面宝宝的博客

  在OFBIZ中商品的管理是由目录管理应用(Catalog)来完成的。从后台商品上下架到前台商品展示,都由这一应用来管理。本文重点放在讲解如何发布商品,并在前台进行展示。我们以鞋子为例子,以品种和品牌两...来自:孟令杰

  欢迎大家来访,本篇博文会完成最后的用户模块功能  再来看一下这张图经过前两篇博文的介绍,我们已经完成了登录、注册、获取用户登录信息、获取用户详细信息、退出登录等核心功能,那么在本篇博文中,我们将完...来自:Steafan_的博客

  Hi,大家好,我是Steafan!项目开发到这里,基本上已经进行了90%了。项目中最关键的也是最难开发的就是今天我要向大家介绍的订单管理模块了。在实际的项目开发中,订单管理模块和支付模块往往是并行开发...来自:Steafan_的博客

  一、阿里云小型电商服务平台架构介绍 电商平台初创之初,访问量不大,但将来可能访问量暴增,初期阶段业务模式调整频繁,对价格敏感,因此希望服务器平台架构具有良好的功能拓展性及性能伸缩性,所有平台软件最好...来自:坚强的技术专栏

  1.创建商品类型的vo实体类 用户的vo之前已经创建 2.定义DAO接口—-实现类 a.实现用户通用的CRUD以及增加对用户的状态(激活,锁定)修改,查询的操作 b.实现对商品类型的C...来自:kikock的博客

  渣写法,纯属娱乐 预览图: 红框右下角那玩意儿仿的淘宝,HTML 和 CSS 来自互联网 然后我顺手撸了一份放到了 GitHub:来自:Right! Im Max Sky.

  前言商品模块是相对来说比较复杂的部分,这里会涉及到分页的设计,虽然说我们会使用相关的分页插件来辅助我们完成工作,但是学习其分页的写法也是非常重要的,知其然还要知其所以然~商品模块跟用户模块一样,也分为...来自:winxblast的博客

  任何一个大型网站都是经历用户积累然后成长,从一台服务器到多台服务器才能构架支撑网站现有数据、用户、页面请求等。大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,...来自:赖忠标

  终于进入商品搜索功能的开发中了,本文我来教大家编写实现商品搜索功能的Dao层代码。 我们现在是在开发商品搜索功能,访问索引库也就是数据访问,那么Dao层应该使用什么来访问呢?使用SolrServer...来自:李阿昀的博客

  本项目主要用于互联网电商企业中,使用Spark技术开发的大数据统计分析平台,对电商网站的各种用户行为(访问行为、购物行为、广告点击行为等)进行复杂的分析。...来自:Erik_ly的博客

  请描述一下这个系统?【回答技巧】 从3个方面来回答这个问题: --系统背景及系统概述 --系统包括的业务模块及主业务流程 --责任模块【回答示例】 第一个方面:系统背景及系统概述优购时尚商...来自:一诺

  搜索功能对于电商类产品而言尤为重要,当用户带着明确的目的去搜索自己需要的产品时,却没有得到他想要的结果,这在很大程度上直接影响了用户对于产品的体验。本文作者结合自己的经验,来探讨关于电商类产品搜索功能...来自:闲聊的互联网

  Hi,大家好,我是Steafan。在上篇博文中我们完成了购物车核心功能的开发,在本篇博文中,我们将完成购物车中最后的两个功能,它们并不是很难,一起来看看吧。      无论是全选还是全返选,单选还是单...来自:Steafan_的博客

  分拆素数和 把一个偶数拆成两个不同素数的和,有几种拆法呢? Input 输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。 Output 对应每个偶数,输出其...来自:zhao10jain的专栏

  博学,切问,近思--詹子知(在密码学中,恺撒密码(或称恺撒加密、恺撒变换、变换加密)是一种最简单且最广为人知的加密技术。它是一种替...来自:zhiqiangzhan的专栏

  相信学习编程的同学,或多或少都接触到算法的时间复杂度和空间复杂度了,那我来讲讲怎么计算。        常用的算法的时间复杂度和空间复杂度 一,求解算法的时间复杂度,其具体步骤是: ⑴ 找出算法...来自:杨威的博客

  Ⅰ、写在前面本文讲述的内容是Keil MDK-ARM版的介绍、下载、安装与注册,如果需要了解Keil C51版相关的文章,可以到我博客,或微信公众号查看并下载。 Keil(C51)介绍、下载、安装与注...来自:strongerHuang的专栏

  强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...来自:九野的博客

  yanluandai1985:源代码文件,在经过编译处理以后,lombok会使用自己的抽象语法树去进行注解的匹配,如果在项目中的...


来顶一下
近回首页
返回首页
上一篇新闻:閿€鍞綉缁滃浘
下一篇新闻:天信红包平台appV132安卓版
现在评论本文
[!--temp.news_pl--]
热门排行榜
古城国税 组织收看“云岭先锋” 9574
组图:酷妞!马思纯漫游重庆街头吃冰 9574
娜斯 (NARS) 隆重亮相北京汉光再 9573
浙江义乌:萌娃毕业照来袭_高清图 9571
如何进行大客户管理 9567
360网盘挂了国内的网盘基本快玩 9566
享受影音生活!六套极品私家影院图 9560
推荐几个比较好的免费下载小说的 9557
剑网3指尖江湖电脑版 9556
陈凯歌任第三届澳门国际影展评审 9554
热门图文
热评新闻
・AG环亚娱乐
・Ag环亚娱乐初窥2018 G2E用游戏重新定义娱乐
・AG环亚娱乐集团初窥G2E用实力重新定义娱乐!
・杨威双胞胎女儿庆生 AG环亚集团细数娱乐圈
・游戏: 极速畅玩最新游戏环亚娱乐AG平台动态
・恒峰娱乐赞助澳门格兰披治三级方程式大赛
・强强联手恒峰娱乐携手AG集团打造最强品牌
・AG环亚集团助力电子竞技发展 打造泛娱乐化
・幸运宝贝空降环亚娱乐 台湾网红与你亲密互
・论情怀AG环亚集团盘点再差都有死忠粉的球队
关于我们 | 服务与支持 | 人才招聘 | 联系方式 | 网站地图 | 免责声明
Copyright © 2016-2019 Myshadu Corp. Ltd. All Rights Reserved
网站备案:皖ICP备06014805号信誉棋牌游戏平台提供CDN内容加速服务 版权所有 信誉棋牌游戏平台