目录
3.2 将一种类型的bean数组转换成成另一种bean类型的数组
一、树形结构相关代码
1.1 树形结构构造 -- 常用于构造目录
@Override
public CatResult getItemCatList() {
CatResult catResult = new CatResult();
// 调用递归的函数
catResult.setData(getCatList(0));
return catResult;
}
/**
* 递归查询分类
* @param parentId
* @return
*/
private List<?> getCatList(long parentId) {
// 创建查询条件
TbItemCatExample example = new TbItemCatExample();
TbItemCatExample.Criteria criteria = example.createCriteria();
criteria.andParentIdEqualTo(parentId);
// 执行查询
// 先取出父节点是 parentId 的节点
List<TbItemCat> lists = tbItemCatMapper.selectByExample(example);
List resultList = new ArrayList<>();
// 由于界面显示,只显示14个parentId == 0
int count = 0;
// 循环构造成需要的格式
for (TbItemCat tbItemCat : lists) {
CatNode catNode = new CatNode();
// 判断是否为父节点
if(tbItemCat.getIsParent()) {
if(parentId == 0) {
catNode.setName("<a href='/products/"+tbItemCat.getId()+".html'>"+tbItemCat.getName()+"</a>");
} else {
catNode.setName(tbItemCat.getName());
}
catNode.setUrl("/products/" + tbItemCat.getId() + ".html");
catNode.setItem(getCatList(tbItemCat.getId()));
resultList.add(catNode);
// 由于界面显示,只显示14个parentId == 0
count++;
if(parentId == 0 && count >= 14) {
break;
}
} else {
resultList.add("/products/" + tbItemCat.getId() + ".html|" + tbItemCat.getName());
}
}
return resultList;
}
1.2 循环删除节点 -- 循环操作某个节点及其子节点
一次性查出所有要删除的索引,使用 in 删除
/**
* 删除节点
* @param parentId
* @param nodeId
* @return
*/
@Override
public TaotaoResult removeContentCategory(Long parentId, Long nodeId) {
// 获取所有要删除的节点内容
List<Long> lists = getNeedRemoveItemIdList(nodeId);
// 删除当前节点
TbContentCategoryExample tbRemoveExample = new TbContentCategoryExample();
TbContentCategoryExample.Criteria rmCriteria = tbRemoveExample.createCriteria();
rmCriteria.andIdIn(lists);
int count = tbContentCategoryMapper.deleteByExample(tbRemoveExample);
}
/**
* 获取所有要删除的id
* @param nodeId
* @return
*/
@Override
public List<Long> getNeedRemoveItemIdList(Long nodeId) {
List<Long> idList = new ArrayList<>();
// 先添加自己
idList.add(nodeId);
// 判断当前节点是否是其他节点的父节点
TbContentCategoryExample example = new TbContentCategoryExample();
TbContentCategoryExample.Criteria criteria = example.createCriteria();
criteria.andParentIdEqualTo(nodeId);
List<TbContentCategory> list = tbContentCategoryMapper.selectByExample(example);
// 若当前节点是其他节点的父节点
if(list.size() > 0) {
// 循环删除子节点
for (TbContentCategory item : list) {
// 添加自己
idList.addAll(getNeedRemoveItemIdList(item.getId()));
}
}
return idList;
}
二、时间相关代码
2.1 时间格式化
通过 SimpleDateFormat 类进行时间格式化
Date date = new Date();
String strFormat = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
String strTime = sdf.format(date);
三、JSON处理
使用 fastjson 处理
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
3.1 将JSON格式的字符串转成map
Map<String, String> specMap = JSON.parseObject(spec, Map.class);
3.2 将一种类型的bean数组转换成成另一种bean类型的数组
import com.alibaba.fastjson.JSON;
List<Sku> skuList = skuFeign.findAll();
// 将LIST<SKU>转换成LIST<SKUINFO>
List<SkuInfo> skuInfoList = JSON.parseArray(JSON.toJSONString(skuList), SkuInfo.class);
3.3将bean转换成map
Map<String, Object> specMap = JSON.parseObject(skuInfo.getSpec(), Map.class);