23分布式电商项目 - 商品分类管理(列表实现)

简介: 23分布式电商项目 - 商品分类管理(列表实现)

需求分析

实现三级商品分类列表查询功能

进入页面首先显示所以一级分类,效果如下:

点击列表行的查询下级按钮,进入下级分类列表,同时更新面包屑导航

再次点击表行的查询下级按钮,进入三级分类列表,因为三级分类属于最后一级,所以在列表中不显示查询下级按钮,同时更新面包屑导航

表结构分析

tb_item_cat 商品分类表

列表实现

1.后端代码

修改 pinyougou-sellergoods-interface 工程ItemCatService 接口,新增方法定义

/**
* 根据上级 ID 返回列表
* @return
*/
public List<TbItemCat> findByParentId(Long parentId);

修改 pinyougou-sellergoods-interface 工程ItemCatServiceImpl ,实现方法

/**
* 根据上级 ID 查询列表
*/
@Override
public List<TbItemCat> findByParentId(Long parentId) {
  TbItemCatExample example1=new TbItemCatExample();
  Criteria criteria1 = example1.createCriteria();
  criteria1.andParentIdEqualTo(parentId);
  return itemCatMapper.selectByExample(example1);
}

修改 pinyougou-manager-web 的 ItemCatController.java

/**
* 根据上级 ID 查询列表
* @param parentId
* @return
*/
@RequestMapping("/findByParentId")
  public List<TbItemCat> findByParentId(Long parentId){
  return itemCatService.findByParentId(parentId);
}

2.前端代码

(1)修改 itemCatService.js

//根据上级 ID 查询下级列表
this.findByParentId=function(parentId){
  return $http.get('../itemCat/findByParentId.do?parentId='+parentId);
}

(2)修改 itemCatController.js

//根据上级 ID 显示下级列表
$scope.findByParentId=function(parentId){
itemCatService.findByParentId(parentId).success(
  function(response){
    $scope.list=response;
  }
);
}

(3)修改 item_cat.html

引入 JS

<script type="text/javascript" src="../plugins/angularjs/angular.min.js"> </script>
<script type="text/javascript" src="../js/base.js"> </script>
<script type="text/javascript" src="../js/service/itemCatService.js"> </script>
<script type="text/javascript" src="../js/controller/baseController.js"> </script>
<script type="text/javascript" src="../js/controller/itemCatController.js"> </script>

指令定义

<body class="hold-transition skin-red sidebar-mini" ng-app="pinyougou" ng-controller="itemCatController" ng-init="findByParentId(0)">

循环列表

<tr ng-repeat="entity in list">
  <td><input type="checkbox" ></td>  
  <td>{{entity.id}}</td>
  <td>{{entity.name}}</td>  
  <td>{{entity.typeId}}</td>  
  <td class="text-center">  
    <button type="button" class="btn bg-olive btn-xs" ng-click="findByParentId(entity.id)">查询下级</button>  
    <button type="button" class="btn bg-olive btn-xs" data-toggle="modal" data-target="#editModal" >修改</button> 
  </td>
</tr>



目录
相关文章
|
8月前
|
NoSQL 调度 Redis
19- 你的项目中哪里用到了分布式锁
在一个项目中,为解决集群环境下SpringTask定时任务的重复执行问题,采用了Redis实现分布式锁来管理任务调度,防止资源浪费。后来因任务量和执行规则增加,以及单节点效率限制,系统改用XXL-JOB,分布式锁不再使用。
75 2
|
4月前
|
NoSQL Java Redis
面试官:项目中如何实现分布式锁?
面试官:项目中如何实现分布式锁?
106 6
面试官:项目中如何实现分布式锁?
|
5月前
|
资源调度 Java 调度
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决
|
5月前
|
存储 缓存 开发框架
看看 Asp.net core Webapi 项目如何优雅地使用分布式缓存
看看 Asp.net core Webapi 项目如何优雅地使用分布式缓存
|
6月前
|
SQL NoSQL Java
如何在Java项目中实现分布式锁
如何在Java项目中实现分布式锁
|
6月前
|
消息中间件 Java 中间件
如何在Java项目中实现分布式事务管理
如何在Java项目中实现分布式事务管理
|
8月前
|
XML NoSQL Java
Java单体项目和分布式项目中的锁
Java单体项目和分布式项目中的锁 Java单体项目和分布式项目中的锁
99 2
|
3月前
|
NoSQL Java Redis
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
Redis分布式锁在高并发场景下是重要的技术手段,但其实现过程中常遇到五大深坑:**原子性问题**、**连接耗尽问题**、**锁过期问题**、**锁失效问题**以及**锁分段问题**。这些问题不仅影响系统的稳定性和性能,还可能导致数据不一致。尼恩在实际项目中总结了这些坑,并提供了详细的解决方案,包括使用Lua脚本保证原子性、设置合理的锁过期时间和使用看门狗机制、以及通过锁分段提升性能。这些经验和技巧对面试和实际开发都有很大帮助,值得深入学习和实践。
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
|
28天前
|
存储 NoSQL Java
使用lock4j-redis-template-spring-boot-starter实现redis分布式锁
通过使用 `lock4j-redis-template-spring-boot-starter`,我们可以轻松实现 Redis 分布式锁,从而解决分布式系统中多个实例并发访问共享资源的问题。合理配置和使用分布式锁,可以有效提高系统的稳定性和数据的一致性。希望本文对你在实际项目中使用 Redis 分布式锁有所帮助。
91 5
|
2月前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
65 8