关于项目自己实现的模块

关于商品添加 :
首先先处理商品类目,使用RasyUI的tree
创建一个pojo来描述tree,id,text,state
根据parentId查询目录的节点,查询数据库,返回一个集合
遍历集合,创建EasyUITreeNode对象,设置对象的属性,添加到集合中

处理图片的方法,搭建fastDfs服务器,将图片上传到图片服务器上,缓解服务器的压力
使用的是KingEditor插件,富文本编辑器,
将图片上传到服务器上,使用封装好的工具类上传图片 
获得图片服务器上的url以及文件名
补全完整的url
封装到一个map中
将map转换成json数据
返回一个json数据

商品添加:
dao:涉及到两张表,一个商品表,一个商品描述表,向数据库中插入数据,使用逆向工程
service层:创建一个pojo接收表单的数据
参数TbItem item,String desc
返回值添加成功,E3Result,
业务逻辑:
使用IdUtils生成id
补全item对象的属性
向商品表中插入数据
创建商品描述表的对象
补全商品描述表的对象
向商品描述表中插入数据
返回添加成功

controller层:
url:/item/save
参数:TbItem item,String desc
返回值:E3Result
调用service层的服务

查询商品列表展示:
涉及到分页查询,使用pageHelper插件
依赖的jar包添加进来,在mybatis的xml中设置拦截器
查询商品列表
dao:逆向工程
service:getItemList
参数:page,rows
返回值,EasyUIDataGridResult的对象
创建一个EasyUIDataGridResult的pojo,
设置分页信息
执行查询
返回查询结果

商品详情页面的展示
dao:展示商品详情,涉及到两张表,商品表,以及商品描述表
单表查询,直接使用逆向工程即可
service层:
商品表
先去redis缓存中查找,如果缓存查不到去数据库中查找,
根据商品id查询数据库中商品表
将数据添加到缓存中
设置过期时间
返回查询到的结果

		商品描述表
		先去redis缓存中查找,如果缓存查不到去数据库中查找,
		根据商品id查询数据库中商品表
		将数据添加到缓存中
		设置过期时间
		返回查询到的结果
	controller层:
		url:/item/{itemId}
		参数:itemId,model
		
		调用服务层的itemService的两个方法
		取商品表,转换成item,
		取商品描述表
		将信息传递给页面
		返回“item”

购物车模块:分为两种情况,

		在controller写一个从cookie中获得购物车的方法
		利用cookie的工具类,获得cookie中的value值(json数据)
		判断json数据是否为空
		空,返回一个空集合
		不为空,将json数据转成商品列表
		
		未登入
			将购物车写入cookie中,
			调用获得购物车的方法,取到购物车
			判断cookie中的购物车是否有相同商品
			有,数量相加
			没有,根据id查询商品对象
			设置商品的id,获取一张图片url
			将商品添加到商品列表中
			使用cookieUtils写入到cookie中
			返回添加成功的界面:“cartSuccess”
			
		
		
		
		
		已登入:
			将购物车写入到redis服务器中
			写入之前,先判断用户是否登入了
			使用拦截器实现
			拦截器的实现:
				从cookie中获得token,判断
				获取不到,用户未登入,跳转到登入页面,放行
				获取到了token,调用单点登入系统,判断token中是否有user信息
				没有,登入过期
				有,登入状态
				把用户信息放入到request中,只需要判断request中是否有user信息
				
				需要配置拦截器
			
			将购物车添加到redis中
				使用的是hset数据类型
				判断商品是否存在
				存在,数量相加
				
				
				不存在,根据id查询商品
				设置购物车商品的数量
				取一张图片
				将商品添加到购物车中,写回redis中
				
				
			controller层:判断用户是否登入
						  从request中取出user
						  取不到,调用未登入的购物车
						  取到,调用已登入的购物车(redis)

订单模块:dao层:
涉及三个表,订单表,订单商品表,订单物流表
插入三张表,单表查询,可以直接使用逆向工程
插入数据之前,判断用户是否登入,使用拦截器实现

			拦截器实现:
				从cookie中去token,判断是否存在
				不存在,未登入,跳转到登入页面,登入成功,跳转到当前请求的url
				存在,调用sso登入系统,取用户信息user
				取不到,用户登入过期,未登入,跳转到登入页面,登入成功,跳转到当前请求的url
				取到,将用户user放入到request中
				判断cookie中是否有购物车
				有,合并购物车到redis中
				
			创建一个pojo来接受表单中的数据,继承订单表
			包含订单商品表,以及订单物流表
			
			业务逻辑:
				生成订单的id,使用redis的incr生成
				补全订单的属性
				向订单表插入数据
				
				向订单明细表中插入数据
				生成订单明细的id
				补全订单明细的属性
				向订单明细表插入数据
				
				向订单物流表中插入数据
				id等于订单的id
				补全属性
				向订单物流表插入数据
				
				返回E3Result.ok
				
			controller层:
				从request中取出用户的信息user
				将用户信息添加到订单表中
				调用service的服务,创建订单
				如果订单创建成功,需要清空cookie中的购物车
				把订单号传递给页面
				返回逻辑视图 “success”
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值