增加首页,优化GC。
|
@ -17,7 +17,7 @@ spring:
|
|||
- id: product_route
|
||||
uri: lb://kkmall-product
|
||||
predicates:
|
||||
- Path=/api/product/**
|
||||
- Path=/api/product/**,/hello
|
||||
filters:
|
||||
- RewritePath=/api/(?<segment>.*), /$\{segment}
|
||||
- id: coupon_route
|
||||
|
@ -53,6 +53,13 @@ spring:
|
|||
- Path=/api/**
|
||||
filters:
|
||||
- RewritePath=/api/(?<segment>.*), /renren-fast/$\{segment}
|
||||
|
||||
# 任何以mall.com结尾的域名转发到mall-product
|
||||
# 注意!!!Nginx代理给网关的时候,会丢失请求Host
|
||||
- id: kkmall_route
|
||||
uri: lb://kkmall-product
|
||||
predicates:
|
||||
- Host=**.kkmall.com,kkmall.com,item.kkmall.com
|
||||
application:
|
||||
name: kkmall-gateway
|
||||
server:
|
||||
|
|
|
@ -38,7 +38,15 @@
|
|||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-devtools</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
|
|
|
@ -3,6 +3,7 @@ package name.lkk.kkmall.product.service;
|
|||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import name.lkk.common.utils.PageUtils;
|
||||
import name.lkk.kkmall.product.entity.CategoryEntity;
|
||||
import name.lkk.kkmall.product.vo.Catelog2Vo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -43,5 +44,13 @@ public interface CategoryService extends IService<CategoryEntity> {
|
|||
* 级联更新所有数据
|
||||
*/
|
||||
void updateCascade(CategoryEntity category);
|
||||
|
||||
/**
|
||||
* 获取一级分类
|
||||
* @return
|
||||
*/
|
||||
List<CategoryEntity> getLevel1Categories();
|
||||
|
||||
Map<String, List<Catelog2Vo>> getCatelogJson();
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,8 @@ import name.lkk.kkmall.product.dao.CategoryDao;
|
|||
import name.lkk.kkmall.product.entity.CategoryEntity;
|
||||
import name.lkk.kkmall.product.service.CategoryBrandRelationService;
|
||||
import name.lkk.kkmall.product.service.CategoryService;
|
||||
import name.lkk.kkmall.product.vo.Catalog3Vo;
|
||||
import name.lkk.kkmall.product.vo.Catelog2Vo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
@ -87,6 +89,46 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryDao, CategoryEntity
|
|||
categoryBrandRelationService.updateCategory(category.getCatId(), category.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CategoryEntity> getLevel1Categories() {
|
||||
return baseMapper.selectList(new QueryWrapper<CategoryEntity>().eq("cat_level", 1));
|
||||
}
|
||||
|
||||
/**
|
||||
* 第一次查询的所有 CategoryEntity 然后根据 parent_cid去这里找
|
||||
*/
|
||||
private List<CategoryEntity> getCategoryEntities(List<CategoryEntity> entityList, Long parentCid) {
|
||||
|
||||
return entityList.stream().filter(item -> item.getParentCid().equals(parentCid)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, List<Catelog2Vo>> getCatelogJson() {
|
||||
List<CategoryEntity> entityList = baseMapper.selectList(null);
|
||||
// 查询所有一级分类
|
||||
List<CategoryEntity> level1 = getCategoryEntities(entityList, 0L);
|
||||
Map<String, List<Catelog2Vo>> parent_cid = level1.stream().collect(Collectors.toMap(k -> k.getCatId().toString(), v -> {
|
||||
// 拿到每一个一级分类 然后查询他们的二级分类
|
||||
List<CategoryEntity> entities = getCategoryEntities(entityList, v.getCatId());
|
||||
List<Catelog2Vo> catelog2Vos = null;
|
||||
if (entities != null) {
|
||||
catelog2Vos = entities.stream().map(l2 -> {
|
||||
Catelog2Vo catelog2Vo = new Catelog2Vo(v.getCatId().toString(), l2.getName(), l2.getCatId().toString(), null);
|
||||
// 找当前二级分类的三级分类
|
||||
List<CategoryEntity> level3 = getCategoryEntities(entityList, l2.getCatId());
|
||||
// 三级分类有数据的情况下
|
||||
if (level3 != null) {
|
||||
List<Catalog3Vo> catalog3Vos = level3.stream().map(l3 -> new Catalog3Vo(l3.getCatId().toString(), l3.getName(), l2.getCatId().toString())).collect(Collectors.toList());
|
||||
catelog2Vo.setCatalog3List(catalog3Vos);
|
||||
}
|
||||
return catelog2Vo;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
return catelog2Vos;
|
||||
}));
|
||||
return parent_cid;
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归收集所有节点
|
||||
*/
|
||||
|
|
|
@ -5,9 +5,8 @@ import lombok.Data;
|
|||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* <p>Title: Catalog3Vo</p>
|
||||
* Description:
|
||||
* date:2020/6/9 14:42
|
||||
* 首页三级分类
|
||||
* @author kirklin
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
|
|
|
@ -8,9 +8,8 @@ import java.io.Serializable;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>Title: Catelog2Vo</p>
|
||||
* Description:
|
||||
* date:2020/6/9 14:41
|
||||
* 首页二级分类
|
||||
* @author kirklin
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
package name.lkk.kkmall.product.web;
|
||||
|
||||
import name.lkk.kkmall.product.entity.CategoryEntity;
|
||||
import name.lkk.kkmall.product.service.CategoryService;
|
||||
import name.lkk.kkmall.product.vo.Catelog2Vo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author: kirklin
|
||||
* @date: 2021/6/22 8:39 下午
|
||||
* @description:
|
||||
*/
|
||||
@Controller
|
||||
public class IndexController {
|
||||
|
||||
@Autowired
|
||||
private CategoryService categoryService;
|
||||
|
||||
@RequestMapping("/hello")
|
||||
@ResponseBody
|
||||
public String hello(){
|
||||
return "Hello";
|
||||
}
|
||||
|
||||
@RequestMapping({"/", "index", "/index.html"})
|
||||
public String indexPage(Model model) {
|
||||
// 获取一级分类所有缓存
|
||||
List<CategoryEntity> categorys = categoryService.getLevel1Categories();
|
||||
model.addAttribute("categorys", categorys);
|
||||
return "index";
|
||||
}
|
||||
|
||||
/**
|
||||
* 首页二,三级分类
|
||||
* @return
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping("index/json/catalog.json")
|
||||
public Map<String, List<Catelog2Vo>> getCatelogJson() {
|
||||
|
||||
Map<String, List<Catelog2Vo>> map = categoryService.getCatelogJson();
|
||||
return map;
|
||||
}
|
||||
}
|
|
@ -15,6 +15,10 @@ spring:
|
|||
jackson:
|
||||
date-format: yyyy-MM-dd HH:mm:ss
|
||||
time-zone: GMT+8
|
||||
mvc:
|
||||
static-path-pattern: /static/**
|
||||
thymeleaf:
|
||||
cache: true
|
||||
|
||||
mybatis-plus:
|
||||
mapper-locations: classpath:/mapper/**/*.xml
|
||||
|
@ -24,7 +28,7 @@ mybatis-plus:
|
|||
# 配置逻辑删除 1代表删除 0代表已删除
|
||||
logic-delete-value: 1
|
||||
logic-not-delete-value: 0
|
||||
configuration:
|
||||
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
# configuration:
|
||||
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
server:
|
||||
port: 10000
|
||||
|
|
9222
kkmall-product/src/main/resources/static/index/css/GL.css
Normal file
15
kkmall-product/src/main/resources/static/index/css/swiper-3.4.2.min.css
vendored
Normal file
BIN
kkmall-product/src/main/resources/static/index/img/01.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
After Width: | Height: | Size: 202 B |
BIN
kkmall-product/src/main/resources/static/index/img/1.png
Normal file
After Width: | Height: | Size: 166 B |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 7.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 2 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 9.5 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 2 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 3 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 139 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 7.8 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 9 KiB |
After Width: | Height: | Size: 9 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 3 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 4 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 4 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 1 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 1 KiB |
After Width: | Height: | Size: 1 KiB |
After Width: | Height: | Size: 1.3 KiB |