java redis hash存取_我爱java系列---【redis中如何存取hash类型的值(key field value)】...
@Servicepublic class CartServiceImpl implementsCartService {private static final String CART="Cart_";
@AutowiredprivateRedisTemplate redisTemplate;
@AutowiredprivateSkuFeign skuFeign;
@AutowiredprivateSpuFeign spuFeign;/*** 添加购物车
*@paramskuId
*@paramnum*/@Overridepublic voidadd(String skuId, Integer num,String username) {/*** 1)查询redis中的数据
* 2)如果redis中已经有了,则追加数量,重新计算金额
* 3)如果没有,将商品添加到缓存*/OrderItem orderItem= (OrderItem)redisTemplate.boundHashOps(CART+username).get(skuId);//从redis中取值if (orderItem != null){//存在,刷新购物车
orderItem.setNum(orderItem.getNum()+num);
orderItem.setMoney(orderItem.getNum()*orderItem.getPrice());
orderItem.setPayMoney(orderItem.getNum()*orderItem.getPrice());
}else{//不存在,新增购物车
Result skuResult =skuFeign.findById(skuId);
Sku sku=skuResult.getData();
Spu spu=spuFeign.findByspuId(sku.getSpuId());//将SKU转换成OrderItem
orderItem = this.sku2OrderItem(sku,spu,num);
}//存入redis
redisTemplate.boundHashOps(CART+username).put(skuId,orderItem);//往redis中存值
}//sku转换为orderItem
privateOrderItem sku2OrderItem(Sku sku, Spu spu, Integer num) {
OrderItem orderItem= newOrderItem();
orderItem.setSpuId(sku.getSpuId());
orderItem.setSkuId(sku.getId());
orderItem.setName(sku.getName());
orderItem.setPrice(sku.getPrice());
orderItem.setNum(num);
orderItem.setMoney(num*orderItem.getPrice()); //单价*数量
orderItem.setPayMoney(num*orderItem.getPrice()); //实付金额
orderItem.setImage(sku.getImage());
orderItem.setWeight(sku.getWeight()*num); //重量=单个重量*数量//分类ID设置
orderItem.setCategoryId1(spu.getCategory1Id());
orderItem.setCategoryId2(spu.getCategory2Id());
orderItem.setCategoryId3(spu.getCategory3Id());returnorderItem;
}
}
java redis hash存取_我爱java系列---【redis中如何存取hash类型的值(key field value)】...相关推荐
- java char数组查找_我爱java系列---【在字符数组中查询某个字符串是否存在】
mysql中的FIND_IN_SET函数 需求:根据省份id,查询可以在该省份下发信息的通道id sql语句: SELECT cpa.CHANNEL_ID id FROM channel_price_ ...
- java string设置编码_详解Java中String类型与默认字符编码
为什么写这个 至于为什么要写这个,主要是一句mmp一定要讲,绕了一上午,晕死 Java程序中的中文乱码问题一直是一个困扰程序员的难题,自己也不例外,早在做项目时就遇到过很多编码方式的坑,当时想填来着, ...
- java集合框架源代码_面试必备——Java集合框架
Java集合框架面试题 常见集合 集合可以看作是一种容器,用来存储对象信息. 数组和集合的区别: (1)数组长度不可变化而且无法保存具有映射关系的数据:集合类用于保存数量不确定的数据,以及保存具有映射 ...
- java垃圾回收机制_乐字节Java|GC垃圾回收机制、package和import语句
本文接上一篇:乐字节Java|this关键字.static关键字.block块.本文是接着讲述JavaGC垃圾回收机制.package 和 import语句. 一.GC垃圾回收机制 GC全名:Garb ...
- java获取机器号_(转)JAVA获得机器码的实现
http://yangshangchuan.iteye.com/blog/2012401 首先,定义了一个统一的接口,以支持不同操作系统不同实现的透明切换: Java代码 收藏代码 /** *生成机 ...
- java string的作用_浅谈java String不可变的好处
一.java内部String类的实现: java 8: public final class String implements java.io.Serializable, Comparable, C ...
- java线程工作原型_深度解析Java内存的原型及工作原理
本文主要通过分析Java内存分配的栈.堆以以及常量池详细的讲解了其的工作原理. 一.java虚拟机内存原型 寄存器:我们在程序中无法控制栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是 ...
- 新手学java 学哪方面_初学者学Java应从哪些方面学习?
原标题:初学者学Java应从哪些方面学习? Java作为应用于网络的最好语言,前景无限看好.然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情.那么,初学者学Java应从哪些方面学 ...
- java容器有哪些_什么是Java容器?Java常见容器有哪些?
我们在面试中或者在实际工作中,常常问到这个问题,那么最基本的我们首先要了解什么是java容器,再去学习java常见容器. 在百度上,是这么解释java容器的: 容器是一个Java 所编写的程序,原先必 ...
最新文章
- Java中final变量的初始化方式
- Spring Boot Admin 2.0开箱体验
- Linux之脚本执行
- mysql数据库通过二进制 -【恢复数据记录】
- 如何从 dump 文件中提取出 C# 源代码?
- java 仿qq登录界面7.1_安卓开发学习笔记(七):仿写腾讯QQ登录注册界面
- 设计模式-单一职责原则
- unity3D游戏开发实战原创视频讲座系列7之消消乐游戏开发
- Meta率先发布虚拟世界Horizon Worlds
- h5手机端浏览器机制_h5浏览器缓存机制
- Oracle 11g RAC oc4j/gsd Offline
- 2020最新微信小程序学习资源汇总,包括文档、视频、系列教程、开源项目、框架!
- mysql 5.7版本下载安装
- flutter 初视回味
- 【自用错题集】C语言 基础错题整理
- 语言模型及RNN模型
- CAN节点报文丢失超时时间检测CANoe自动化脚本实现
- LightOJ 1395 A Dangerous Maze (II) 期望DP
- 用AOMEI Partition Assistant制作PE 启动盘
- Win7管理受信任证书 - CA证书 - 系统根证书