Migo商城2.0 商品详情页面的实现 二十一
分析:
正常来说,这块是可以单独拿出来做一个系统,然后进行页面静态化,提高响应速度,这里就不做那么麻烦了,直接找后台管理系统这里对外提供web服务,页面静态化以后有时间再做,反正也没多少技术含量
我们打开一个商品的链接,大概是如下的形式:
http://www.migo.com/item/{itemId}.html

从上图应该就可以看到jd商品详情页面应该是一个单独的工程,后面直接跟了商品的id,好了,分析完毕,开搞代码:
如图:

通过商品id查询商品,返回数据加入modelAndView中
portal系统中导入POJO
注意点如图:

| 1 | package com.migo.portal.pojo; | 
controller代码:
| 1 | package com.migo.portal.controller; | 
service代码:
| 1 | package com.migo.portal.service; | 
manage系统提供接口服务:
| 1 | package com.migo.controller.webs; | 
测试结果:


添加商品描述:

portal工程controller model加入itemDesc属性
代码:
| 1 | package com.migo.portal.controller; | 
service实现
| 1 | 
 | 
manage系统提供相应接口服务
| 1 | /** | 
测试结果:

显示商品规格参数
portal工程controller model加入itemParam属性
controller代码:
| 1 | package com.migo.portal.controller; | 

如此图所示,得到itemParam后直接显示,那么需要对得到数据里面参数做页面格式化:
所以service代码为:
| 1 | public String queryItemParamItemByItemId(Long itemId) { | 
manage系统提供服务接口:
controller代码
| 1 | /** | 
service代码:
| 1 | /** | 
测试得到结果:


portal和后端manage系统中相应service中加入缓存逻辑:
portal端添加逻辑代码:
| 1 | package com.migo.portal.service; | 
manage端添加缓存代码:
ItemService
| 1 | public Item queryByIdse(Long itemId) { | 
ItemParamItemService
| 1 | /** | 
ItemDescService
| 1 | package com.migo.service; | 

关于两个系统间缓存同步问题会在后面通过消息中间件处理,这里就不添加临时解决方案了
上面的代码其实还有进一步 的优化方法,这里留给读者思考了,又搞到凌晨1点多了,睡觉!
