List 集合的N层遍历
package com.j1.cms.model;
import java.io.Serializable;
import java.util.List;
/**
* Created by wangchuanfu on 17/5/25.
*/
public class EcHomePageTemplate implements Serializable{
private static final long serialVersionUID = 1L;
private Integer templateId;
private Integer tabId;
private Integer templateTypeId;
private Integer orderNum;
private String templateName;
private String more ;
private Integer moreLinkType;
private String moreLinkValue;
private String templateTypeName;
private List<EcHomePageTemplateItem> itemList;
public void setTemplateId(Integer templateId) {
this.templateId = templateId;
}
public void setTabId(Integer tabId) {
this.tabId = tabId;
}
public void setTemplateTypeId(Integer templateTypeId) {
this.templateTypeId = templateTypeId;
}
public void setOrderNum(Integer orderNum) {
this.orderNum = orderNum;
}
public void setTemplateName(String templateName) {
this.templateName = templateName;
}
public void setMore(String more) {
this.more = more;
}
public void setMoreLinkType(Integer moreLinkType) {
this.moreLinkType = moreLinkType;
}
public void setMoreLinkValue(String moreLinkValue) {
this.moreLinkValue = moreLinkValue;
}
public void setTemplateTypeName(String templateTypeName) {
this.templateTypeName = templateTypeName;
}
public void setItemList(List<EcHomePageTemplateItem> itemList) {
this.itemList = itemList;
}
public Integer getTemplateId() {
return templateId;
}
public Integer getTabId() {
return tabId;
}
public Integer getTemplateTypeId() {
return templateTypeId;
}
public Integer getOrderNum() {
return orderNum;
}
public String getTemplateName() {
return templateName;
}
public String getMore() {
return more;
}
public Integer getMoreLinkType() {
return moreLinkType;
}
public String getMoreLinkValue() {
return moreLinkValue;
}
public String getTemplateTypeName() {
return templateTypeName;
}
public List<EcHomePageTemplateItem> getItemList() {
return itemList;
}
}
package com.j1.cms.model;
import java.io.Serializable;
import java.util.List;
/**
* Created by wangchuanfu on 17/5/25.
*/
public class EcHomePageTemplateItem implements Serializable{
private static final long serialVersionUID = 1L;
private Integer templateItemId;
private String templateItemName;
private Integer linkType;
private String linkValue;
private String adPicture;
private Integer parentId;
private Integer tabId;
private Integer templateTypeId;
private String linkValueSupplement;
public String getLinkValueSupplement() {
return linkValueSupplement;
}
public void setLinkValueSupplement(String linkValueSupplement) {
this.linkValueSupplement = linkValueSupplement;
}
public Integer getTemplateTypeId() {
return templateTypeId;
}
public void setTemplateTypeId(Integer templateTypeId) {
this.templateTypeId = templateTypeId;
}
public Integer getTabId() {
return tabId;
}
public void setTabId(Integer tabId) {
this.tabId = tabId;
}
private List<EcHomePageTemplateItem> subItemList;
public void setTemplateItemId(Integer templateItemId) {
this.templateItemId = templateItemId;
}
public void setTemplateItemName(String templateItemName) {
this.templateItemName = templateItemName;
}
public void setLinkType(Integer linkType) {
this.linkType = linkType;
}
public void setLinkValue(String linkValue) {
this.linkValue = linkValue;
}
public void setAdPicture(String adPicture) {
this.adPicture = adPicture;
}
public void setParentId(Integer parentId) {
this.parentId = parentId;
}
public void setSubItemList(List<EcHomePageTemplateItem> subItemList) {
this.subItemList = subItemList;
}
public Integer getTemplateItemId() {
return templateItemId;
}
public String getTemplateItemName() {
return templateItemName;
}
public Integer getLinkType() {
return linkType;
}
public String getLinkValue() {
return linkValue;
}
public String getAdPicture() {
return adPicture;
}
public Integer getParentId() {
return parentId;
}
public List<EcHomePageTemplateItem> getSubItemList() {
return subItemList;
}
}
package com.j1.cms.model;
import com.j1.base.model.BaseBO;
/**
* Created by wangchuanfu on 17/5/20.
*/
public class EcTemolateItem extends BaseBO {
/**
* 将Model 合并到EcTemolateItem中,用于接口查询返回数据,保证数据的完整性
*/
private Integer templateId;
private Integer tabId;
private Integer templateTypeId;
private Integer orderNum;
private String templateName;
private String more ;
private Integer moreLinkType;
private String moreLinkValue;
private String tabName;
private Integer stateNum ;
private String onlineTime;
private String offlineTime;
private Integer templateItemId;
private String templateItemName;
private Integer linkType;
private String linkValue;
private String adPicture;
private Integer resolutionWidth;
private Integer resolutionHeight;
private Integer parentId ;
public void setTemplateId(Integer templateId) {
this.templateId = templateId;
}
public void setTabId(Integer tabId) {
this.tabId = tabId;
}
public void setTemplateTypeId(Integer templateTypeId) {
this.templateTypeId = templateTypeId;
}
public void setOrderNum(Integer orderNum) {
this.orderNum = orderNum;
}
public void setTemplateName(String templateName) {
this.templateName = templateName;
}
public void setMore(String more) {
this.more = more;
}
public void setMoreLinkType(Integer moreLinkType) {
this.moreLinkType = moreLinkType;
}
public void setMoreLinkValue(String moreLinkValue) {
this.moreLinkValue = moreLinkValue;
}
public void setTabName(String tabName) {
this.tabName = tabName;
}
public void setStateNum(Integer stateNum) {
this.stateNum = stateNum;
}
public void setOnlineTime(String onlineTime) {
this.onlineTime = onlineTime;
}
public void setOfflineTime(String offlineTime) {
this.offlineTime = offlineTime;
}
public void setTemplateItemId(Integer templateItemId) {
this.templateItemId = templateItemId;
}
public void setTemplateItemName(String templateItemName) {
this.templateItemName = templateItemName;
}
public void setLinkType(Integer linkType) {
this.linkType = linkType;
}
public void setLinkValue(String linkValue) {
this.linkValue = linkValue;
}
public void setAdPicture(String adPicture) {
this.adPicture = adPicture;
}
public void setResolutionWidth(Integer resolutionWidth) {
this.resolutionWidth = resolutionWidth;
}
public void setResolutionHeight(Integer resolutionHeight) {
this.resolutionHeight = resolutionHeight;
}
public void setParentId(Integer parentId) {
this.parentId = parentId;
}
public Integer getTemplateId() {
return templateId;
}
public Integer getTabId() {
return tabId;
}
public Integer getTemplateTypeId() {
return templateTypeId;
}
public Integer getOrderNum() {
return orderNum;
}
public String getTemplateName() {
return templateName;
}
public String getMore() {
return more;
}
public Integer getMoreLinkType() {
return moreLinkType;
}
public String getMoreLinkValue() {
return moreLinkValue;
}
public String getTabName() {
return tabName;
}
public Integer getStateNum() {
return stateNum;
}
public String getOnlineTime() {
return onlineTime;
}
public String getOfflineTime() {
return offlineTime;
}
public Integer getTemplateItemId() {
return templateItemId;
}
public String getTemplateItemName() {
return templateItemName;
}
public Integer getLinkType() {
return linkType;
}
public String getLinkValue() {
return linkValue;
}
public String getAdPicture() {
return adPicture;
}
public Integer getResolutionWidth() {
return resolutionWidth;
}
public Integer getResolutionHeight() {
return resolutionHeight;
}
public Integer getParentId() {
return parentId;
}
@Override
public String toString() {
return "EcTemolateItem{" +
"templateId=" + templateId +
", tabId=" + tabId +
", templateTypeId=" + templateTypeId +
", orderNum=" + orderNum +
", templateName='" + templateName + '\'' +
", more='" + more + '\'' +
", moreLinkType=" + moreLinkType +
", moreLinkValue='" + moreLinkValue + '\'' +
", tabName='" + tabName + '\'' +
", stateNum=" + stateNum +
", onlineTime='" + onlineTime + '\'' +
", offlineTime='" + offlineTime + '\'' +
", templateItemId=" + templateItemId +
", templateItemName='" + templateItemName + '\'' +
", linkType=" + linkType +
", linkValue='" + linkValue + '\'' +
", adPicture='" + adPicture + '\'' +
", resolutionWidth=" + resolutionWidth +
", resolutionHeight=" + resolutionHeight +
", parentId=" + parentId +
'}';
}
}
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);
}
}
}
" ?>
-mapper.dtd" >
<mapper namespace="com.j1.soa.resource.cms.dao.oracle.EcHomePageTempLateMapper">
<resultMap id="ecTemolateItemRes" type="com.j1.cms.model.EcTemolateItem">
<result column="template_item_name" property="templateItemName" />
<result column="link_type" property="linkType" />
<result column="link_value" property="linkValue" />
<result column="ad_picture" property="adPicture" />
<result column="template_name" property="templateName" />
<result column="tab_name" property="tabName" />
</resultMap>
<resultMap id="ecHomePageTemplateResult" type="com.j1.cms.model.EcHomePageTemplate">
<result column="template_item_name" property="templateTypeName" />
<result column="template_type_id" property="templateTypeId" />
<result column="TEMPLATE_NAME" property="templateName"/>
</resultMap>
<resultMap id="ecHomePageTemplateItemResult" type="com.j1.cms.model.EcHomePageTemplateItem">
<result column="TEMPLATE_ITEM_ID" property="templateItemId" />
<result column="TEMPLATE_ITEM_NAME" property="templateItemName" />
<result column="LINK_TYPE" property="linkType" />
<result column="LINK_VALUE" property="linkValue" />
<result column="AD_PICTURE" property="adPicture" />
<result column="PARENT_ID" property="parentId" />
<result column="TEMPLATE_ID" property="templateId" />
<result column="TEMPLATE_NAME" property="templateName" />
<result column="PARENT_ID" property="parentId" />
<result column="RESOLUTION_HEIGHT" property="resolutionHeight" />
<result column="RESOLUTION_WIDTH" property="resolutionWidth" />
<result column="LINK_VALUE_SUPPLEMENT" property="linkValueSupplement" />
</resultMap>
<select id="getEcTemolateItemById" resultMap="ecTemolateItemRes" parameterType="com.j1.cms.model.EcTemolateItem">
select
ehti.template_item_name,
ehti.link_type,
ehti.link_value,
ehti.ad_picture,
eht.ORDER_NUM,
eht.template_name,
ehta.tab_name
from EC_HOMEPAGE_TEMPLATE_ITEM ehti
LEFT JOIN EC_HOMEPAGE_TEMPLATE eht
on ehti.template_id=eht.template_id
left JOIN EC_HOMEPAGE_TAB ehta
on ehta.tab_id=eht.tab_id
<if test="templateItemId != null">
and ehti.template_Item_Id =#{templateItemId,jdbcType=DECIMAL}
</if>
and ehti.is_delete='N'
and eht.is_delete='N'
and ehta.is_delete='N'
order by ehta.order_num ,ehta.add_time DESC
</select>
<resultMap id="ecTemolateItemResult" type="com.j1.cms.model.EcTemolateItem" extends="ecTemolateItemRes">
<result column="tab_name" property="tabName" />
<result column="tab_id" property="tabId" />
</resultMap>
<!-- 查询tab信息 -->
<select id="queryTable" resultMap="ecTemolateItemResult">
select eht.TAB_ID,eht.TAB_NAME from EC_HOMEPAGE_TAB eht
WHERE eht.IS_DELETE = 'N'
<![CDATA[
AND eht.STATE_NUM <> 1
AND TO_DATE(eht.ONLINE_TIME,'YYYY/MM/DD hh24:mi:ss') <= SYSDATE
AND TO_DATE(eht.OFFLINE_TIME,'YYYY/MM/DD hh24:mi:ss') >= SYSDATE
]]>
ORDER BY eht.ORDER_NUM
</select>
<!-- 根据tabId 查询出对应的广告位 -->
<select id ="queryAdList" resultMap= "ecHomePageTemplateResult" parameterType="java.lang.Integer">
select
b.TEMPLATE_TYPE_ID,
b.TEMPLATE_TYPE_NAME,
c.TEMPLATE_NAME
from
EC_HOMEPAGE_TAB a ,
EC_HOMEPAGE_TEMPLATE_TYPE b,
EC_HOMEPAGE_TEMPLATE c
where a.TAB_ID=c.TAB_ID
AND b.TEMPLATE_TYPE_ID=c.TEMPLATE_TYPE_ID
AND c.TAB_ID =#{tabId,jdbcType=DECIMAL}
AND a.IS_DELETE = 'N'
AND b.IS_DELETE = 'N'
AND c.IS_DELETE = 'N'
ORDER BY c.ORDER_NUM
</select>
<!-- 根据广告位数据查询出所有的主数据 -->
<select id = "queryTemplateItemList" resultMap="ecHomePageTemplateItemResult" parameterType="com.j1.cms.model.EcHomePageTemplateItem">
SELECT
b.TEMPLATE_ITEM_ID,
b.TEMPLATE_ITEM_NAME,
b.AD_PICTURE,
b.LINK_TYPE,
b.LINK_VALUE,
b.PARENT_ID,
b.LINK_VALUE_SUPPLEMENT
FROM
EC_HOMEPAGE_TEMPLATE_ITEM b
LEFT JOIN EC_HOMEPAGE_TEMPLATE c ON
c.TEMPLATE_ID = b.TEMPLATE_ID
WHERE
c.TEMPLATE_TYPE_ID = #{templateTypeId,jdbcType=DECIMAL}
AND c.TAB_ID = #{tabId,jdbcType=DECIMAL}
AND b.PARENT_ID = #{parentId,jdbcType=DECIMAL}
ORDER BY c.ORDER_NUM,b.TEMPLATE_ITEM_ID
</select>
</mapper>
package com.j1.cms.model;
import java.io.Serializable;
import java.util.List;
/**
* Created by wangchuanfu on 17/5/25.
*/
public class EcHomePageTab implements Serializable{
private static final long serialVersionUID = 1L;
private Integer tabId;
private String tabName;
private Integer orderNum;
private Integer stateNum ;
private String onlineTime;
private String offlineTime;
private List<EcHomePageTemplate> templateList;
private List<Integer> tabIds;
public Integer getTabId() {
return tabId;
}
public String getTabName() {
return tabName;
}
public Integer getOrderNum() {
return orderNum;
}
public Integer getStateNum() {
return stateNum;
}
public String getOnlineTime() {
return onlineTime;
}
public String getOfflineTime() {
return offlineTime;
}
public List<EcHomePageTemplate> getTemplateList() {
return templateList;
}
public List<Integer> getTabIds() {
return tabIds;
}
public void setTabId(Integer tabId) {
this.tabId = tabId;
}
public void setTabName(String tabName) {
this.tabName = tabName;
}
public void setOrderNum(Integer orderNum) {
this.orderNum = orderNum;
}
public void setStateNum(Integer stateNum) {
this.stateNum = stateNum;
}
public void setOnlineTime(String onlineTime) {
this.onlineTime = onlineTime;
}
public void setOfflineTime(String offlineTime) {
this.offlineTime = offlineTime;
}
public void setTemplateList(List<EcHomePageTemplate> templateList) {
this.templateList = templateList;
}
public void setTabIds(List<Integer> tabIds) {
this.tabIds = tabIds;
}
}
List 集合的N层遍历的更多相关文章
- 第16章 List集合的总结和遍历
第16章 List集合的总结和遍历 1.重构设计 根据Vector类,ArrayList类,和LinkedList类所具有的存储特点以及拥有的方法入手,发现共性往上抽取. 共同特点: 1.允许元素重复 ...
- Java:集合for高级循环遍历
增强for循环: 格式:for(变量数据类型 要遍历的变量 :元素所在数组(集合)名称) 也即 for(Type element: array或collection) 使用foreach遍历集合: 只 ...
- Java基础知识强化之集合框架笔记12:Collection集合存储字符串并遍历
1. Collection集合存储字符串并遍历 分析: (1)创建集合对象 (2)创建字符串对象 (3)把字符串对象添加到集合中 (4)遍历集合 2. 代码示例: package cn.itcast ...
- Java基础知识强化之集合框架笔记08:Collection集合自定义对象并遍历案例(使用迭代器)
1. Collection集合自定义对象并遍历案例(使用迭代器) (1)首先定义一个Student.java,如下: package com.himi.collectionIterator; publ ...
- 【Leetcode】二叉树层遍历算法
需求: 以层遍历一棵二叉树,二叉树的结点结构如下 struct tree_node{ struct tree_node *lc; struct tree_node *rc; int data; }; ...
- 二叉树遍历(flist)(已知中序和按层遍历,求先序 )
问题 F: 二叉树遍历(flist) 时间限制: 1 Sec 内存限制: 128 MB提交: 11 解决: 9[提交][状态][讨论版][命题人:quanxing][Edit] [TestData ...
- 集合 数组 定义 转换 遍历 Arrays API MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 李洪强iOS经典面试题35-按层遍历二叉树的节点
李洪强iOS经典面试题35-按层遍历二叉树的节点 问题 给你一棵二叉树,请按层输出其的节点值,即:按从上到下,从左到右的顺序. 例如,如果给你如下一棵二叉树: 3 / \ 9 20 ...
- 每个分组函数相当于一个for循环 将集合的变量不断遍历
每个分组函数相当于一个for循环 将集合的变量不断遍历
随机推荐
- Qt之创建自定义类型
摘要: 简述 当使用Qt创建用户界面时,特别是那些带有特殊控制和特征的界面时,开发者通常需要创建新数据类型来扩展或替换Qt现有的的值类型集合. 标准类型,比如:QSize.QColor和QString ...
- FPGA内部动态可重置PLL讲解(二)
对于全局时钟的管理,涉及到关于亚稳态的知识,大家可以上网搜索相关资料,这里不再赘述.亚稳态最简单的理解形式是无法判断是处于高电平状态还是处于低电平状态,这样会导致整个系统不稳定,会出现逻辑上的错误. ...
- 【转】Android下使用Properties文件保存程序设置
原文:http://jerrysun.blog.51cto.com/745955/804789 废话不说,直接上代码. 读取.properties文件中的配置: String strValue ...
- Ogre2.1 结合OpenGL3+高效渲染
在DX10与OpenGL3+之前,二者都是固定管线与可编程管线的混合,其中对应Ogre1.x的版本,也是结合固定与可编程管线设计.转眼到了OpenGL3+与DX10后,固定管线都被移除了,相对应着色器 ...
- (转)FFMPEG的一些使用技巧
1.查看FFMPEG的日志信息 在vc中使用ffmpeg静态库做二次开发的时候,如果不是控制台应用程序,又需要查看ffmpeg的日志信息,可使用 av_log_set_callback 函数注册一个回 ...
- 互联网公司GitHub repo 语言使用情况
转自: https://laike9m.com/blog/hu-lian-wang-gong-si-github-repo-yu-yan-shi-yong-qing-kuang,56/ 现在基本上所有 ...
- js以类似jquery的模式绑定事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Weblogic在Linux下启动特别慢及进入控制台慢的解决方法
实际是JVM在Linux下的bug 他想调用一个随机函数 但取不到 暂时的解决办法是 1)较好的解决办法: 在Weblogic启动参数里添加 “- Djava.security.egd=file:/d ...
- APK防反编译技术
APK防反编译技术 下载地址:地址 我们的APK实际上就是一个ZIP压缩文件,里面包括有一个classes.dex.我们编译后生成的程序代码就所有在那里了, 通过apktool等工具能够轻松地将它们反 ...
- 【python】命令行输出颜色
http://www.cnblogs.com/chjbbs/p/5706513.html