package com.imooc.cart.data;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* 本地缓存
*
* @version 1.0
*/
public final class LocalCache {
private static Map<Long, Product> productMap = new HashMap<>();
private static Map<Long, Cart> cartMap = new HashMap<>();
private static Map<Long, Product> favoriteMap = new HashMap<>();
private static Map<Long, Product> browseLogMap = new HashMap<>();
static {
productMap.put(1l, new Product(1l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(2l, new Product(2l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(3l, new Product(3l, "JAVA", "JAVA基础课程-基本语法", "介绍java基本语法特性及编写规范", "初级", 219));
productMap.put(4l, new Product(4l, "JAVA", "JAVA基础课程-JDBC", "介绍JDBC方式连接数据库", "初级", 219));
productMap.put(5l, new Product(5l, "JAVA", "JAVA基础课程—Socket", "介绍Java网络编程Socket", "初级", 219));
productMap.put(6l, new Product(6l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(7l, new Product(7l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(8l, new Product(8l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(9l, new Product(9l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(10l, new Product(10l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(11l, new Product(11l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(12l, new Product(12l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(13l, new Product(13l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(14l, new Product(14l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(15l, new Product(15l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(16l, new Product(16l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(17l, new Product(17l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(18l, new Product(18l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(19l, new Product(19l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(20l, new Product(20l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(21l, new Product(21l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(22l, new Product(22l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(23l, new Product(23l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(24l, new Product(24l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
productMap.put(25l, new Product(25l, "HTML/CSS", "HTML+CSS基础课程", "HTML+CSS基础教程8小时带领大家步步深入学习标签用法和意义", "初级", 219));
}
private LocalCache() {}
public static List<Product> getProducts() {
return new ArrayList<>(productMap.values());
}
public static Product getProduct(Long id) {
return productMap.get(id);
}
public static void addCart(Product product) {
if (!cartMap.containsKey(product.getId())) {
cartMap.put(product.getId(), new Cart(product.getId(), product.getId(), product.getName(), product.getPrice(), 1));
} else {
incrCart(product.getId());
}
}
public static List<Cart> getCarts() {
return new ArrayList<>(cartMap.values());
}
public static void delCart(Long productId) {
cartMap.remove(productId);
}
public static void incrCart(Long productId) {
cartMap.get(productId).incrCount();
}
public static void decrCart(Long productId) {
boolean result = cartMap.get(productId).decrCount();
if (result) {
cartMap.remove(productId);
}
}
public static Cart getCart(Long id) {
return cartMap.get(id);
}
public static void addFavorite(Product product) {
if (!favoriteMap.containsKey(product.getId())) {
favoriteMap.put(product.getId(), product);
}
}
public static void delFavorite(Long productId) {
if (favoriteMap.containsKey(productId)) {
favoriteMap.remove(productId);
}
}
public static List<Product> getFavorites() {
return new ArrayList<>(favoriteMap.values());
}
public static void addBrowseLog(Product product) {
browseLogMap.put(product.getId(), product);
}
public static void deleteBrowseLog(Long productId) {
browseLogMap.remove(productId);
}
public static List<Product> getBrowseLogs() {
return new ArrayList<>(browseLogMap.values());
}
public static List<Product> getProducts(int page, int size, String name) {
List<Product> products = new ArrayList<>();
if (null != name && !"".equals(name)) {
productMap.values().forEach(product -> {
if (product.getName().contains(name)) {
products.add(product);
}
});
} else {
products.addAll(productMap.values());
}
int start = (page - 1) * size;
int end = products.size() >= page * size ? page * size : products.size();
return products.subList(start, end);
}
public static int getProductsCount(String name) {
List<Product> products = new ArrayList<>();
if (null != name && !"".equals(name)) {
productMap.values().forEach(product -> {
if (product.getName().contains(name)) {
products.add(product);
}
});
} else {
products.addAll(productMap.values());
}
return products.size();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
JavaWeb_CartDemo-购物车 + 收藏 + 浏览记录 + 分页 + 模糊查询(附:404、500、编码过滤) (103个子文件)
LocalCache.class 7KB
LocalCache.class 7KB
CartServlet.class 3KB
CartServlet.class 3KB
ProductServlet.class 2KB
ProductServlet.class 2KB
FavoriteServlet.class 2KB
FavoriteServlet.class 2KB
Cart.class 2KB
Cart.class 2KB
BrowseServlet.class 2KB
BrowseServlet.class 2KB
DetailInfoServlet.class 2KB
DetailInfoServlet.class 2KB
Product.class 2KB
Product.class 2KB
CharsetEncodingFilter.class 1KB
CharsetEncodingFilter.class 1KB
list.css 8KB
list.css 8KB
shopcar.css 8KB
shopcar.css 8KB
details.css 2KB
details.css 2KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
CartDemo.iml 981B
jstl-1.2.jar 405KB
jstl-1.2.jar 405KB
javax.servlet-api-3.1.0.jar 94KB
javax.servlet-api-3.1.0.jar 94KB
LocalCache.java 8KB
CartServlet.java 3KB
DetailInfoServlet.java 2KB
ProductServlet.java 2KB
BrowseServlet.java 2KB
Cart.java 2KB
Product.java 1KB
FavoriteServlet.java 1KB
CharsetEncodingFilter.java 920B
ava.jpg 8KB
ava.jpg 8KB
bk1.jpg 7KB
bk1.jpg 7KB
g2.jpg 5KB
g2.jpg 5KB
g1.jpg 4KB
g1.jpg 4KB
cart-header-bg.jpg 2KB
cart-header-bg.jpg 2KB
list.jsp 8KB
list.jsp 8KB
cart.jsp 6KB
cart.jsp 6KB
favorite.jsp 6KB
favorite.jsp 6KB
browse_list.jsp 5KB
browse_list.jsp 5KB
detail.jsp 4KB
detail.jsp 4KB
settlement.jsp 3KB
settlement.jsp 3KB
index.jsp 222B
index.jsp 222B
500.jsp 18B
404.jsp 18B
404.jsp 18B
500.jsp 18B
footer-sprite.png 25KB
footer-sprite.png 25KB
save.png 15KB
save.png 15KB
shopcar.png 9KB
shopcar.png 9KB
car1.png 6KB
car1.png 6KB
logo.png 4KB
logo.png 4KB
car2.png 3KB
car2.png 3KB
icon-1-sprite_w22.png 2KB
icon-1-sprite_w22.png 2KB
car3.png 1KB
car3.png 1KB
icon-new.png 1020B
icon-new.png 1020B
workspace.xml 74KB
web.xml 4KB
web.xml 4KB
misc.xml 519B
CartDemo_war_exploded.xml 495B
compiler.xml 449B
CartDemo.xml 305B
共 103 条
- 1
- 2
资源评论
陆氪和他的那些代码
- 粉丝: 12w+
- 资源: 64
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- CFA知识点梳理系列:CFA Level II, Reading 4 Big Data Projects
- 专业问题 · 语雀.mhtml
- 基于Vue+TP6的B2B2C多场景电商商城设计源码
- 基于小程序的研知识题库小程序源代码(java+小程序+mysql).zip
- 基于小程序的微信小程序的点餐系统源代码(java+小程序+mysql).zip
- 基于小程序的宿舍管理小程序源代码(java+小程序+mysql).zip
- 基于小程序的小区服务系统源代码(python+小程序+mysql).zip
- QT项目之中国象棋人工智能
- 基于小程序的疫情核酸预约小程序源代码(java+小程序+mysql).zip
- 基于小程序的生活小助手源代码(java+小程序+mysql).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功