From f38347a76a04a87cab5a97bfb6bdeb49a7a9a0a0 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Tue, 27 Feb 2018 17:36:08 +0800 Subject: [PATCH] 手机号唯一功能。设备修改后刷新redis --- src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java | 47 +++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 43 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java index fc0db0d..e979b68 100644 --- a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java +++ b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java @@ -1,19 +1,19 @@ package com.moral.service.impl; import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import javax.annotation.Resource; import com.github.pagehelper.PageHelper; import com.moral.common.bean.Constants; import com.moral.common.bean.PageBean; -import com.moral.common.util.ExampleUtil; -import com.moral.common.util.MyBatisBaseMapUtil; +import com.moral.common.util.*; import org.springframework.stereotype.Service; -import com.moral.common.util.ValidateUtil; import com.moral.entity.MonitorPoint; import com.moral.mapper.MonitorPointMapper; import com.moral.service.MonitorPointService; @@ -24,6 +24,8 @@ public class MonitorPointServiceImpl implements MonitorPointService { @Resource private MonitorPointMapper monitorPointMapper; + @Resource + RedisUtils redisUtils; private static Class ENTITY_CLASS = MonitorPoint.class; @Override public List<MonitorPoint> getMonitorPointsByAreaName(Map<String, Object> parameters) { @@ -32,7 +34,26 @@ } @Override public List<MonitorPoint> queryWithStateByMap(Map<String, Object> params){ - return monitorPointMapper.selectWithStateByMap(params); + List<MonitorPoint> monitorPointList = monitorPointMapper.selectByMap(params); + for(MonitorPoint monitorPoint:monitorPointList){ + Integer state = getStateFromRedis(monitorPoint.getId()); + monitorPoint.setState(state); + } + return monitorPointList; + } + private Integer getStateFromRedis(Integer monitorPointId){ + StringBuilder key = new StringBuilder(); + key.append("state_").append(monitorPointId).append("_*"); + List<Map> stateList = redisUtils.getList(key.toString(),Map.class); + int state = -1; + if(stateList!=null){ + for (Map deviceState:stateList){ + int s = Integer.parseInt(deviceState.get("state").toString()); + state = s>state&&s<4?s:state; + } + } + state = state==-1?4:state; + return state; } @Override public PageBean queryByPageBean(PageBean pageBean) { @@ -63,6 +84,7 @@ monitorPoint.setIsDelete(Constants.IS_DELETE_FALSE); monitorPointMapper.insertSelective(monitorPoint); }else{ + // TODO ������������id������������������redis��������������� monitorPointMapper.updateByPrimaryKeySelective(monitorPoint); } } @@ -99,4 +121,21 @@ List<MonitorPoint> monitorPoints = monitorPointMapper.selectByExample(example); return monitorPoints; } + + /** + * + * @param idList + * @return {id:,state:} + */ + @Override + public List<Map<String, String>> queryMonitroPointsState(List<Integer> idList) { + List<Map<String, String>> list = idList.stream().map( id -> { + Integer state = getStateFromRedis(id); + Map<String,String> stateMap = new HashMap<>(); + stateMap.put("id",id.toString()); + stateMap.put("state",state.toString()); + return stateMap; + }).collect(Collectors.toList()); + return list; + } } -- Gitblit v1.8.0