浏览代码

Merge remote-tracking branch 'origin/master'

小么熊🐻 4 年之前
父节点
当前提交
ebc532f28e
共有 1 个文件被更改,包括 20 次插入13 次删除
  1. 20 13
      zzjs-service/src/main/java/com/miaxis/record/service/impl/BrowseRecordInfoServiceImpl.java

+ 20 - 13
zzjs-service/src/main/java/com/miaxis/record/service/impl/BrowseRecordInfoServiceImpl.java

@@ -22,6 +22,8 @@ import org.springframework.stereotype.Service;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
 
 /**
  * 浏览记录Service业务层处理
@@ -48,12 +50,16 @@ public class BrowseRecordInfoServiceImpl extends ServiceImpl<BrowseRecordInfoMap
      */
     @Override
     public List<BrowseRecordCustomerInfoVo> getBrowseRecordInfoList(UserInfo userInfo) {
-        //从缓存获取
-        List<String> values = redisTemplate.opsForHash().values(Constants.BROWSE_RECORD_KEY + userInfo.getId());
         ArrayList<BrowseRecordCustomerInfoVo> infoVos = new ArrayList<>();
-        for (String value : values) {
-            BrowseRecordCustomerInfoVo customerInfoVo = JSONObject.parseObject(value).toJavaObject(BrowseRecordCustomerInfoVo.class);
-            infoVos.add(customerInfoVo);
+        String str = Constants.BROWSE_RECORD_KEY + userInfo.getId();
+        //获取以key前缀所有的key
+        Set keys = redisTemplate.keys(str + "*");
+        if (!keys.isEmpty()){
+            for (Object key : keys) {
+                String jsonStr = (String) redisTemplate.opsForValue().get(key);
+                BrowseRecordCustomerInfoVo customerInfoVo = JSONObject.parseObject(jsonStr).toJavaObject(BrowseRecordCustomerInfoVo.class);
+                infoVos.add(customerInfoVo);
+            }
         }
         return infoVos;
     }
@@ -69,18 +75,17 @@ public class BrowseRecordInfoServiceImpl extends ServiceImpl<BrowseRecordInfoMap
     public Response insertBrowseRecord(UserInfo userInfo, Long id) {
 
         //判断用户是否有浏览此商家记录
-        if (redisTemplate.opsForHash().hasKey(Constants.BROWSE_RECORD_KEY +userInfo.getId(),id)){
-            String jsonStr = (String) redisTemplate.opsForHash().get(Constants.BROWSE_RECORD_KEY + userInfo.getId(), id);
-            JSONObject jsonObject = JSONObject.parseObject(jsonStr);
-            BrowseRecordCustomerInfoVo customerInfoVo = jsonObject.toJavaObject(BrowseRecordCustomerInfoVo.class);
+        if (redisTemplate.hasKey(Constants.BROWSE_RECORD_KEY + userInfo.getId())){
+            String jsonStr = (String) redisTemplate.opsForValue().get(Constants.BROWSE_RECORD_KEY + userInfo.getId() + ":" + id);
+            BrowseRecordCustomerInfoVo customerInfoVo = JSONObject.parseObject(jsonStr).toJavaObject(BrowseRecordCustomerInfoVo.class);
             customerInfoVo.setBrowseTime(new Date());
-            redisTemplate.opsForHash().put(Constants.BROWSE_RECORD_KEY+userInfo.getId(),id,JSON.toJSONString(customerInfoVo));
+            redisTemplate.opsForValue().set(Constants.BROWSE_RECORD_KEY + userInfo.getId() + ":" + id,JSON.toJSONString(customerInfoVo),30, TimeUnit.DAYS);
         }else {
             //商家详情
             BrowseRecordCustomerInfoVo customerDetail = customerInfoMapper.getCustomerDetailsById(id);
             customerDetail.setBrowseTime(new Date());
             //添加缓存
-            redisTemplate.opsForHash().put(Constants.BROWSE_RECORD_KEY+userInfo.getId(),id,JSON.toJSONString(customerDetail));
+            redisTemplate.opsForValue().set(Constants.BROWSE_RECORD_KEY + userInfo.getId() + ":" + id,JSON.toJSONString(customerDetail),30, TimeUnit.DAYS);
         }
         return Response.success();
     }
@@ -94,8 +99,10 @@ public class BrowseRecordInfoServiceImpl extends ServiceImpl<BrowseRecordInfoMap
     @Override
     public Response removeBrowseRecord(UserInfo userInfo, Long[] ids) {
         try {
-            //删除浏览记录缓存
-            redisTemplate.opsForHash().delete(Constants.BROWSE_RECORD_KEY + userInfo.getId(), ids);
+            for (Long id : ids) {
+                //删除浏览记录缓存
+                redisTemplate.delete(Constants.BROWSE_RECORD_KEY + userInfo.getId() + ":"+id);
+            }
             return Response.success();
         }catch (Exception e){
             throw new CustomException("系统异常");