宜立方商城—后台实现(技术:FastDFS+nginx),问题:修改商品跳不出界面的解决
zookeeper以及dubbo的安装看以及测试看博客分类有介绍。
功能实现:
一、查询商品(分页查看)
1 分页处理
****生成的代码是不支持分页处理的,如果想进行分页需要自己编写mapper,这样就失去****的意义了。为了提高开发效率可以使用mybatis的分页插件PageHelper。
分页插件PageHelper(我这里是将一个demo导入本地仓库获得坐标)。
响应的json数据格式EasyUIResult
我这里定义返回数据格式的类
二、插入(选择类目)
要求返回json结果为
创建一个pojo来描述tree的节点信息,包含三个属性id、text、state。放到e3-common工程
查询的表:
tb_item_cat
查询列:
Id、name、isparent
查询条件parentId
三、插入(图片上传)
FastDFS架构(安装较为复杂)我用的培训班的镜像
FastDFS+nginx参考:我的这篇https://blog.csdn.net/qq_39136928/article/details/80398773
四、 商品添加功能实现(苹果8)
请求的url:/item/save
参数:表单的数据。可以使用pojo接收表单的数据,要求pojo的属性和input的name属性要一致。
使用TbItem对象接收表单的数据。
TbItem item,String desc
返回值:
Json数据。应该包含一个status的属性。
可以使用E3Result,放到e3-common中。
业务逻辑:
1、生成商品id
实现方案:
a) Uuid,字符串,不推荐使用。
b) 数值类型,不重复。日期+时间+随机数20160402151333123123
c) 可以直接去毫秒值+随机数。可以使用。
d) 使用redis。Incr。推荐使用。
使用IDUtils生成商品id
2、补全TbItem对象的属性
3、向商品表插入数据
4、创建一个TbItemDesc对象(****生成)
5、补全TbItemDesc的属性
6、向商品描述表插入数据
7、E3Result.ok() 导入的工具类
7.3. Service层
参数:TbItem item,String desc
业务逻辑:略,参加上面
返回值:E3Result
@Override
public E3Result addItem(TbItem item, String desc) {
// 1、生成商品id
long itemId = IDUtils.genItemId();
// 2、补全TbItem对象的属性
item.setId(itemId);
//商品状态,1-正常,2-下架,3-删除
item.setStatus((byte) 1);
Date date = new Date();
item.setCreated(date);
item.setUpdated(date);
// 3、向商品表插入数据
itemMapper.insert(item);
// 4、创建一个TbItemDesc对象
TbItemDesc itemDesc = new TbItemDesc();
// 5、补全TbItemDesc的属性
itemDesc.setItemId(itemId);
itemDesc.setItemDesc(desc);
itemDesc.setCreated(date);
itemDesc.setUpdated(date);
// 6、向商品描述表插入数据
itemDescMapper.insert(itemDesc);
// 7、E3Result.ok()
return E3Result.ok();
}
发布服务
7.4. 表现层
引用服务
7.4.1. Controller
请求的url:/item/save
参数:TbItem item,String desc
返回值:E3Result
@RequestMapping("/save")
@ResponseBody
public E3Result saveItem(TbItem item, String desc) {
E3Result result = itemService.addItem(item, desc);
return result;
}
五、商品删除、上架下架/*
* 商品删除功能
*/
@RequestMapping(value="/rest/item/delete", method=RequestMethod.POST)
@ResponseBody
public E3Result delete(long ids){
E3Result result = itemService.deleteItem(ids);
return result;
}
/*
* 商品下架功能
*/
@RequestMapping(value= "/rest/item/instock", method=RequestMethod.POST )
@ResponseBody
public E3Result updateStatusDown(long ids){
E3Result result = itemService.updateStatusDown(ids);
return result;
}
/*
* 商品上架功能
*/
@RequestMapping(value="/rest/item/reshelf", method=RequestMethod.POST )
@ResponseBody
public E3Result updateStatusUp(long ids){
E3Result result = itemService.updateStatusUp(ids);
return result;
}
六、商品的修改(先数据回显后修改)
前台jsp得修改,不然一直回显不了结果,而现在商品描述就是出不来,待我找到错误再更新
/*
* 商品编辑-查看描述
*/
@RequestMapping(value="/rest/item/query/item/desc")
@ResponseBody
public E3Result findTbItemDescById(long id){
E3Result result = itemService.findTbItemDescById(id);
return result;
}
/*
* 商品编辑-查看
*/
@RequestMapping(value="/rest/item/param/item/query")
@ResponseBody
public E3Result findTbItemById(long itemId){
E3Result result = itemService.findTbItemById(itemId);
return result;
上一篇: WCF学习笔记-枚举类型
下一篇: python装饰器运用实例讲解