java 递归
package com.j1.soa.resource.cms.service.oracle;
import com.j1.base.dto.ServiceMessage;
import com.j1.cms.model.EcHomePageTab;
import com.j1.cms.model.EcHomePageTemplate;
import com.j1.cms.model.EcHomePageTemplateItem;
import com.j1.cms.model.EcTemolateItem;
import com.j1.item.model.Goods;
import com.j1.soa.common.service.BaseServiceImpl;
import com.j1.soa.resource.cms.api.EcHomePageTempLateService;
import com.j1.soa.resource.cms.dao.oracle.EcHomePageTempLateMapper;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
/**
* Created by wangchuanfu on 17/5/20.
*/
public class EcHomePageTempLateServiceImpl extends BaseServiceImpl implements EcHomePageTempLateService {
@Autowired
private EcHomePageTempLateMapper ecHomePageTempLateMapper;
public ServiceMessage<EcHomePageTab> getTableListById( Integer tabId) {
try{
if(tabId ==null){
return super.returnParamsError("param is null");
}
/**
* 根据tabId 查询对应的tab
*/
EcHomePageTab ecHomePageTab= new EcHomePageTab();
ecHomePageTab.setTabId(tabId);
//查看tab下有无模板数据
List<EcHomePageTemplate> templateList = ecHomePageTempLateMapper.queryAdList(tabId);
if(templateList != null && templateList.size() > 0){
for (EcHomePageTemplate template : templateList){
//查询tab下的模板数据,父级数据
EcHomePageTemplateItem item = new EcHomePageTemplateItem();
item.setTabId(tabId);
item.setTemplateTypeId(template.getTemplateTypeId());
item.setParentId(0);
/*List<EcHomePageTemplateItem> itemList = ecHomePageTempLateMapper.queryTemplateItemList(item);
List<EcHomePageTemplateItem> childItemList = new ArrayList<EcHomePageTemplateItem>();
if(itemList != null && itemList.size() > 0) {
for (EcHomePageTemplateItem teplate : itemList) {
//查看父级下面有没有子集数据
item.setParentId(teplate.getTemplateId());
childItemList = ecHomePageTempLateMapper.queryTemplateItemList(item);
teplate.setSubItemList(childItemList);
}
template.setItemList(itemList);
}*/
List<EcHomePageTemplateItem> itemList =getItemList(item);
if(itemList != null && itemList.size() > 0){
template.setItemList(itemList);
}
}
ecHomePageTab.setTemplateList(templateList);
}else{
return super.returnNoResult("not result");
}
return super.returnCorrectResult("search is success!", ecHomePageTab);
}catch(Exception e){
return super.returnException(e);
}
}
private List<EcHomePageTemplateItem> getItemList(EcHomePageTemplateItem item){
List<EcHomePageTemplateItem> itemList = ecHomePageTempLateMapper.queryTemplateItemList(item);
List<EcHomePageTemplateItem> childItemList = new ArrayList<EcHomePageTemplateItem>();
if(itemList != null && itemList.size() > 0) {
for (EcHomePageTemplateItem teplate : itemList) {
//如果配置的链接类型为商品编码,前台则需要取linkValueSupplement
//查看父级下面有没有子集数据
item.setParentId(teplate.getTemplateItemId());
childItemList = getItemList(item);
if(childItemList != null && childItemList.size() > 0){
teplate.setSubItemList(childItemList);
}
}
}
return itemList;
}
/**
* 查询tab信息
* @return
*/
@Override
public ServiceMessage<List<EcHomePageTab>> queryTable() {
try{
List<EcHomePageTab> tabs= ecHomePageTempLateMapper.queryTable();
if(tabs.size()>0|| tabs!=null){
return super.returnCorrectResult("success!", tabs);
}else{
return super.returnNoResult("not result");
}
}catch(Exception e){
return super.returnException(e);
}
}
}
java 递归的更多相关文章
- Java递归列出目录下全部文件
Java递归列出目录下全部文件 /** * 列出指定目录的全部内容 * */ import java.io.*; class hello{ public static void main(String ...
- Java 递归调用 recursive 给一个参数 返回一大堆
需求: 需要组装成对象多层嵌套式的 json字符串; 想到使用 递归来完成这个多层嵌套: 憋了四个小时,终于写出来了; 先看效果: 数据库中的数据: 拼装后的效果: [ EmpVO{ ename='孙 ...
- JAVA 递归实现从n个数中选取m个数的所有组合
这周Java课程有个小作业:Java递归实现从n个数中选取m个数的所有组合 代码如下: //其中 n 取 1,2,3,4,5 五个数, m 取 3 package javaText; public c ...
- JAVA递归、非递归遍历二叉树(转)
原文链接: JAVA递归.非递归遍历二叉树 import java.util.Stack; import java.util.HashMap; public class BinTree { priva ...
- 慎用Java递归调用
总结:慎用Java递归调用,测试时可以尝试该方法,否则尽量不要使用递归!递归过多调用时,最好改为for或者whlie来代替. 在java语言中,使用递归调用时,如果过多的调用容易造成java.lang ...
- Java递归实现阶乘
import java.util.Scanner; public class Factorial { public static void main(String[] args) { Scanner ...
- java递归删除目录下所有内容
java递归删除目录下所有内容 private static boolean deleteDir(File dir) {if (dir.isDirectory()) { String[] ...
- JAVA递归实现线索化二叉树
JAVA递归实现线索化二叉树 基础理论 首先,二叉树递归遍历分为先序遍历.中序遍历和后序遍历. 先序遍历为:根节点+左子树+右子树 中序遍历为:左子树+根节点+右子树 后序遍历为:左子树+右子树+根节 ...
- 算法笔记_013:汉诺塔问题(Java递归法和非递归法)
目录 1 问题描述 2 解决方案 2.1 递归法 2.2 非递归法 1 问题描述 Simulate the movement of the Towers of Hanoi Puzzle; Bonus ...
- Java递归输出指定路径下所有文件及文件夹
package a.ab; import java.io.File; import java.io.IOException; public class AE { public static void ...
随机推荐
- TCP滑动窗口协议
TCP的首部中有一个很重要的字段就是16位长的窗口大小,它出现在每一个TCP数据报中,配合32位的确认序号,用于向对端通告本地socket的接收窗口大小.也就是说,如果本地socket发送一个TCP ...
- 第三百八十八节,Django+Xadmin打造上线标准的在线教育平台—网站列表分页
第三百八十八节,Django+Xadmin打造上线标准的在线教育平台—网站列表分页 分页可以用一个第三方分页模块django-pure-pagination 下载地址:https://github.c ...
- Asp.net WebApi下载文件
1,图片 var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(stream ...
- Oracle错误IMP-00010: 不是有效的导出文件, 头部验证失败 分类: Oracle 2015-07-09 13:56 20人阅读 评论(0) 收藏
Oracle 11g的dmp备份文件导入到Oracle 10g,出现错误信息: Import: Release 10.2.0.1.0 - Production on 星期四 7月 9 13:47:04 ...
- T4生成多文件时,不生成自己
如:我用的网上的生成多文件的一个include文件. 生成多文件时,默认会生成一个以自己名字命名的文件如: 有一个demo.tt文件,生成时会出来一个demo.cs文件(默认情况下) 解决方法: Fo ...
- rdlc报表 矩阵控件下的按组分页
场景: 使用rdlc开发报表,例如订单产品报表,显示多个订单,一个订单有动态生成的固定的多个产品组成,同时统计每个订单里多个产品数量总数. 数据库层面分析: 此报表属于交叉报表,例如5个订单,3个产品 ...
- 使用 SharpSvn 执行 svn 操作的Demo
1. SharpSvn简介 SharpSvn.dll 是为.Net 2.0-4.0+ 应用提供的 Subversion Client API,更多详细介绍请见 https://sharpsvn.ope ...
- Java实习生面试题整理
一.数据类型 包装类型 八个基本类型: boolean/1 byte/8 char/16 short/16 int/32 float/32 long/64 double/64 基本类型都有对应的包装类 ...
- apt 之 最强技能:【欺骗】,文雅点【偷梁换柱】!
apt这种软件包管理系统,有个最大特点是:只照本宣科,而不管实际情况. 所以,我们用户就可以利用这一点,来欺骗它,达到我们的目的. ------------------------------好了,现 ...
- 在lua环境中使用protobuf
最近在cocos2dx的项目中,需要在LUA脚本层使用protobuf协议.官方已经推出了很多种语言的版本.但唯独LUA版本不全.于是开始研究protobuf在LUA下的实现,将完整的过程记录了下来, ...