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
404.jsp 18B
500.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币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 人工智能开发项目深度学习项目源码带指导视频DCGAN人脸图片生成
- 数据库设计管理课程设计系统设计报告(powerdesign+sql+DreamweaverCS)证券业务管理系统设计与开发
- 数据库设计管理课程设计系统设计报告(powerdesign+sql+DreamweaverCS)银行储蓄业务管理系统2
- Rust编写的一个todo程序源代码解读
- 小程序源码2-备忘录模板
- 数据库设计管理课程设计系统设计报告(powerdesign+sql+DreamweaverCS)银行储蓄业务管理系统
- 数据库设计管理课程设计系统设计报告(powerdesign+sql+DreamweaverCS)医院管理系统设计与开发
- VMware 学习教程(入门到实践)
- 数据库设计管理课程设计系统设计报告(powerdesign+sql+DreamweaverCS)学生选课管理系统2
- LLMS&隐写术12345
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功