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);
        }

    }
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-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
        where 1=1
        <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;
    }
}

 

转载于:https://www.cnblogs.com/wangchuanfu/p/7261452.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值