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 ...
随机推荐
- 高可用保证消息绝对顺序消费的BROKER设计方案
转自: http://www.infoq.com/cn/articles/high-availability-broker-design?utm_source=tuicool&utm_medi ...
- DAO层,Service层,Controller层、View层
DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口 ...
- 转载:案例用Excel对会员客户交易数据进行RFM分析
案例:用Excel对会员客户交易数据进行RFM分析 背景: 一个会员服务的企业,有近1年约1200个会员客户的收银数据.由于公司想针对不同 ...
- UltraCompare 激活
UltraCompare安装包.注册机下载地址: 链接:https://pan.baidu.com/s/1eSu8Pbk 密码:fkkh 1.安装UltraCompare 2. 3. 打开注册机,填入 ...
- Prolog学习:用八卦的精神走进Prolog
最近枕头书是<七周七语言:理解多种编程范型>这本,前面两章分别看了Ruby和IO,都是命令式语言.虽然它们在语法上跟之前接触过的C,C#,Java这些C家族的语言差别很大,但是编程范型却是 ...
- C#提高--------------获取方法返回值的自定义特性(Attribute)
.NET(C#):获取方法返回值的自定义特性(Attribute) 转载 2013年05月08日 10:54:42 1456 来自:http://www.cnblogs.com/mgen/archiv ...
- Volley的Get、Post方式(JsonObjectRequest、StringRequest)以及Volley获取图片的3种方式
activity_main.xml 里面什么也没有 AndroidManifest.xml(重点是android:name="com.example.volley.MyApplication ...
- Python内部机制。
type ,object ,__class__ ,__bases__ ,__metaclass__ , -------------------------不明白的地方----------------- ...
- asp.net 截屏
public class HomeController : Controller { // // GET: /Home/ static System.Windows.Forms.WebBrowser ...
- C# 判断字符串为空有哪几种方法
Length法:);Empty法:bool isEmpty = (str == String.Empty);General法:bool isEmpty = (str == ""); ...