面包屑导航&SQL自关联

1.面包屑导航

在这里插入图片描述

$scope.grade=1;//默认为1级	
//设置级别
$scope.setGrade=function(value){
    $scope.grade=value;
}		
//读取列表
$scope.selectList=function(p_entity){			
    if($scope.grade==1){//如果为1级
        $scope.entity_1=null;	
        $scope.entity_2=null;
    }		
    if($scope.grade==2){//如果为2级
        $scope.entity_1=p_entity;	
        $scope.entity_2=null;
    }		
    if($scope.grade==3){//如果为3级
        $scope.entity_2=p_entity;		
    }		
    $scope.findByParentId(p_entity.id);	//查询此级下级列表
}	
<ol class="breadcrumb">	                        	
   <li>
	 <a href="#" ng-click="grade=1;selectList({id:'0'})" >顶级分类列表</a>
   </li>
<!--ng-if="grade!=1"-->
   <li >
	<a href="#" ng-click="grade=2;selectList(entity_1)">{{entity_1.name}}</a>
   </li>

   <li ng-if="grade==3">
	<a href="#" ng-click="grade=3;selectList(entity_2)">{{entity_2.name}}</a>
</ol>
<span ng-if="grade!=3">	                                     
    <button type="button" class="btn bg-olive btn-xs" ng-	click="setGrade(grade+1);selectList(entity)">查询下级</button> 		                         
</span>                                  	

2.select2单选实现

<td>

                        <input select2 ng-model="entity.typeId"  config="typeTemplateList" placeholder="商品类型模板" class="form-control" type="text"/>
		      		</td>
	$scope.typeTemplateList={data:[]};
    //selete2
    $scope.selectOptionList=function () {
        typeTemplateService.findTypeTemplateList().success(
            function (response) {
                $scope.typeTemplateList.data=response;
            }
        )
    }
    
    //查询实体 
	$scope.findOne=function(id){				
		itemCatService.findOne(id).success(
			function(response){
				$scope.entity= response;
			
			}
		);				
	}
	
	//保存 
	$scope.save=function(){				
		var serviceObject;//服务层对象
		if($scope.entity.id!=null){//如果有ID
			serviceObject=itemCatService.update( $scope.entity ); //修改  
		}else{
			serviceObject=itemCatService.add( $scope.entity  );//增加
            $scope.entity.parentId=$scope.parentId;
		}				
		serviceObject.success(
			function(response){
				if(response.success){
					//重新查询 
		        	$scope.findByParentId($scope.parentId);
				}else{
					alert(response.message);
				}
			}		
		);				
	}

3.自关联表三级分类删除SQL

省市区三级联动 电商三级分类…

数据在一张表中,通过自关联建立关系

需求: 在删除某一分类时,其下面的子分类也要一起删除

思路:

  • 通过传入的id查到一级分类 ( 省 )
  • 将id作为parent_id 查到二级分类 ( 市 )
  • 将id作为parent_id查到二级分类 形成一张临时表 , 然后查询临时表的id作为parent_id查到三级分类( 区/县 )

在这里插入图片描述

SELECT * 
FROM tb_item_cat 
WHERE id IN (1222)
OR parent_id IN (1222)
OR parent_id IN (SELECT id FROM 
(SELECT * FROM tb_item_cat WHERE parent_id IN (1222)) temp)  
DELETE  
FROM tb_item_cat 
WHERE id IN (1222)
OR parent_id IN (1222)
OR parent_id IN (SELECT id FROM 
(SELECT * FROM tb_item_cat WHERE parent_id IN (1222)) temp)  

mybatis写法

public interface ItemCatMapper {

     List<TbItemCat> selectByIds(@Param("list") List<Long> list);

     void deleteByIds(@Param("list") List<Long> list);

}
	@Test
    public void selectByIds() throws Exception {
        //List<Long> list = Arrays.asList();
        List<Long> list = Arrays.asList(new Long(1247));
        List<TbItemCat> tbItemCats = itemCatMapper.selectByIds(list);
        for (TbItemCat tbItemCat : tbItemCats) {
            System.out.println(tbItemCat);
        }
    }

    @Test
    public void deleteByIds() throws Exception {
        List<Long> list = Arrays.asList(new Long(1241));
        itemCatMapper.deleteByIds(list);
    }
 <sql id="foreach">
        <foreach collection="list" item="id" separator="," open="(" close=")">
            #{id}
        </foreach>
    </sql>

    <select id="selectByIds" resultType="TbItemCat" parameterType="java.util.List">
        select *
        from tb_item_cat
        <where>
            <if test="list==null or list.size()==0">
                and id=-1
            </if>
            <if test="list!=null and list.size()>0">
                and id in
                  <include refid="foreach"/>
                or parent_id in
                  <include refid="foreach"/>
                or parent_id in
                (select id from (select id from tb_item_cat where parent_id in
                  <include refid="foreach"/>
                ) temp)
            </if>
        </where>
    </select>

    <delete id="deleteByIds" parameterType="java.util.List">
        delete
        from tb_item_cat
        <where>
            <if test="list==null or list.size()==0">
                and id=-1
            </if>
            <if test="list!=null and list.size()>0">
                and id in
                <include refid="foreach"/>
                or parent_id in
                <include refid="foreach"/>
                or parent_id in
                (select id from (select id from tb_item_cat where parent_id in
                <include refid="foreach"/>
                ) temp)
            </if>
        </where>
    </delete>

4.SPU SKU

SPU = Standard Product Unit (标准产品单位)
SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。
通俗点讲,属性值、特性相同的商品就可以称为一个SPU。

例如:
iphone7就是一个SPU,与商家,与颜色、款式、套餐都无关。

SKU=stock keeping unit(库存量单位)
SKU即库存进出计量的单位, 可以是以件、盒、托盘等为单位。
SKU是物理上不可分割的最小存货单元。在使用时要根据不同业态,不同管理模式来处理。在服装、鞋类商品中使用最多最普遍。

例如:
纺织品中一个SKU通常表示:规格、颜色、款式。

iphone7 128G 黑色 移动4G 10台

iphone7 128G 土豪金 移动4G 0台

iphone7 256G 黑色 移动4G 100台

这个扩展允许你以面包屑的方式浏览任何URL。 描述: ========= 这个扩展允许用户以类似面包屑的方式浏览任何URL。用户可以选择两种导航选项:面包屑风格或文件夹风格。请参阅截图,了解每个示例。该扩展程序允许在子域级别(code.google.com => google.com),路径级别(google.com/search => google.com)或两者的混合(chrome.google.com/extensions = > google.com),包括Ajax网站(example.com/#ajax-state => example.com)。除此之外,如果还没有可用的其他关联标记,则当前免费版本中的扩展将重写Amazon.com的链接以包含Amazon关联标记。亚马逊品牌名称是Amazon.com的财产。此扩展程序不与商标所有者关联或由其赞助。 GitHub上的Breadcrumb Navigator主题工具包: ================================== 对于所有那些不喜欢扩展附带的主题的人 => https://github.com/tomayac/Breadcrumb-Navigator-Theming-Kit 如果您已完成主题,请发送给我(steiner.thomasREMOVE_THIS@gmail.com)CSS文件,我可以在下一个版本的扩展中包含您的主题。 获奖情况: ====== Breadcrumb Navigator已通过Softpedia测试: => http://mac.softpedia.com/get/Internet-Utilities/Breadcrumb-Navigator.shtml 它被授予Softpedia“100%清洁”奖。 更新日志: ======== * 1.1.0: - 新功能:在中间点击新标签打开面包屑或按住CTRL键。 - 新选项:在后台或前台打开新选项卡。 * 1.0.4: - 次要代码重组。 * 1.0.3: - 改变了弹出窗口的行为,点击后立即关闭。 - 修复了亚马逊代码中的错误。抱歉。 * 1.0.2: - 修正了每次显示更新通知的错误。抱歉。 * 1.0.1: - 感谢@russenreaktor两个新的轻量级主题可用:简单的蓝色和简单的白色 - 增加了德语本地化 * 1.0.0: - 增加了一个新的主题。 - 在Ajax网站上启用面包屑导航。 - 不幸的是Omnibar不能被修改。最接近修改Omnibar的是创建一个Infobar,但是,这只能在Chrome的Dev Channel上使用。 * 0.1.0: - 初始发行。 支持语言:Deutsch,English (United States)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值