先看一下图,之前完成了查询商品,但是只是完成了查询功能,还有新增、编辑、删除、上架、下架没有完成,不过CURD这种工作还是很简单的,今天来完成一个新增功能,其他的基本上就是重复操作了,就不在演示,自行摸索一下。
这是新增商品页面的,可以看到这里有一个选择类目,今天先完成该功能。
该功能是个查询操作,我们先来分析一下。
点击父节点,请求初始化子节点动作是tree空间封装好的。没打开一个父节点做以前ajax请求。
请求参数:id:当前节点id。根据此id查询子节点。
返回结果:
一个是json数据,是一个列表:
先在taotao-common项目导入一个POJO类
package com.taotao.common.pojo;
import java.io.Serializable;
/**
* tree 控件的节点的pojo
*
*/
public class EasyUITreeNode implements Serializable {
private Long id;
private String text;
private String state;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
之后就可以进入开发工作了,先开发服务层工程,开发顺序一般都是先从服务层开始的。
创建一个接口
因为是有参数传递进来的,所以定义接口的时候,创建参数。接口内容
package com.taotao.service;
import java.util.List;
import com.taotao.common.pojo.EasyUITreeNode;
public interface ItemCatService {
/**
* 查询分类列表
* @param parentId
* @return
*/
public List<EasyUITreeNode> getItemCatListByParentId(Long parentId);
}
实现它,在下图项目中,创建ItemCatServiceImpl实现类。
创建好之后,实现ItemCatService接口
然后就来分析一下:
1、注入mapper,选择TbItemCatMapper
2、创建example,这里创建TbItemCatExample,有很多的example别搞错了
3、设置查询的条件,条件是什么呢?parentId,Criteria创建该类的对象,注意使用example对象来创建的。
4、执行查询 list<ibitemCat>
5、转换需要的数据类型List<EasyUITreeNode>,前面导入的EasyUITreeNode就派上用场了。
6、返回转换后的
实现类内容
package com.taotao.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.taotao.common.pojo.EasyUITreeNode;
import com.taotao.mapper.TbItemCatMapper;
import com.taotao.pojo.TbItemCat;
import com.taotao.pojo.TbItemCatExample;
import com.taotao.pojo.TbItemCatExample.Criteria;
import com.taotao.service.ItemCatService;
@Service
public class ItemCatServiceImpl implements ItemCatService {
@Autowired
private TbItemCatMapper catmapper;
@Override
public List<EasyUITreeNode> getItemCatListByParentId(Long parentId) {
//1.注入mapper
//2.创建example
TbItemCatExample example = new TbItemCatExample();
//3.设置查询的条件
Criteria criteria = example.createCriteria();
criteria.andParentIdEqualTo(parentId);//select * from tbitemcat where parentId = 1
//4.执行查询 list<ibitemCat>
List<TbItemCat> list = catmapper.selectByExample(example);
//5.转成需要的数据类型List<EasyUITreeNode>
List<EasyUITreeNode> nodes = new ArrayList<>();
for (TbItemCat cat : list) {
EasyUITreeNode node = new EasyUITreeNode();
node.setId(cat.getId());
node.setText(cat.getName());
node.setState(cat.getIsParent()?"closed":"open");//"open",closed
nodes.add(node);
}
//6.返回
return nodes;
}
}
写完之后,在该项目的配置文件中,发布服务
发布内容
<dubbo:service interface="com.taotao.service.ItemCatService" ref="itemCatServiceImpl" timeout="300000"/>
服务层就开发完成了,接下来开发表现层,启动的时候记得把有修改过的项目安装一下哦!
在taotao-manager-web项目创建controller类
表现层的开发步骤:
1、引入服务,这个不能忘记
2、注入服务了
3、调用方法并返回
引入服务
<dubbo:reference interface="com.taotao.service.ItemCatService" id="itemCatService" timeout="300000"/>
表次层代码:
package com.taotao.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.taotao.common.pojo.EasyUITreeNode;
import com.taotao.service.ItemCatService;
@Controller
public class ItemCatController {
@Autowired
private ItemCatService catservice;
//url:'/item/cat/list',
//参数:id
//返回值:json
//method:get post
@RequestMapping("/item/cat/list")
@ResponseBody
public List<EasyUITreeNode> getItemCatList(@RequestParam(value="id",defaultValue="0") Long parentId){
//1.引入服务
//2.注入服务
//3.调用方法
List<EasyUITreeNode> list = catservice.getItemCatListByParentId(parentId);
return list;
}
}
安装修改过的项目,然后分别先启动服务层和表现层,记得先启动服务层哦,还有启动zookeeper虚拟机。
然后访问后台管理系统,这就是我们刚刚做好的了,本来访问是一片空白的。
今天的任务完成!