目录
一、树形结构相关代码
1.1 树形结构构造 -- 常用于构造目录
1.2 循环删除节点 -- 循环操作某个节点及其子节点
二、时间相关代码
2.1 时间格式化
三、JSON处理
3.1 将JSON格式的字符串转成map
3.2 将一种类型的bean数组转换成成另一种bean类型的数组
3.3将bean转换成map
一、树形结构相关代码
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 == 0int 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 == 0count++;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);