From 9b33e93fccddea356c3d686684fc58ceb176ff39 Mon Sep 17 00:00:00 2001 From: xufenglei <xufenglei> Date: Fri, 30 Mar 2018 15:01:26 +0800 Subject: [PATCH] 增加 省市区 查询条件 --- src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java | 85 ++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 80 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java index e979b68..5ae279f 100644 --- a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java +++ b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java @@ -1,5 +1,6 @@ package com.moral.service.impl; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -8,15 +9,22 @@ import javax.annotation.Resource; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.stereotype.Service; + import com.github.pagehelper.PageHelper; import com.moral.common.bean.Constants; import com.moral.common.bean.PageBean; -import com.moral.common.util.*; -import org.springframework.stereotype.Service; - +import com.moral.common.util.ExampleUtil; +import com.moral.common.util.RedisUtils; +import com.moral.common.util.StringUtils; +import com.moral.common.util.ValidateUtil; +import com.moral.entity.Device; import com.moral.entity.MonitorPoint; +import com.moral.mapper.DeviceMapper; import com.moral.mapper.MonitorPointMapper; import com.moral.service.MonitorPointService; + import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example.Criteria; @@ -24,6 +32,8 @@ public class MonitorPointServiceImpl implements MonitorPointService { @Resource private MonitorPointMapper monitorPointMapper; + @Resource + private DeviceMapper deviceMapper; @Resource RedisUtils redisUtils; private static Class ENTITY_CLASS = MonitorPoint.class; @@ -84,15 +94,43 @@ monitorPoint.setIsDelete(Constants.IS_DELETE_FALSE); monitorPointMapper.insertSelective(monitorPoint); }else{ - // TODO ������������id������������������redis��������������� monitorPointMapper.updateByPrimaryKeySelective(monitorPoint); + // ������������������������������ ���redis��������������� + refreshDevicesInRedis(monitorPoint.getId()); } } catch (Exception ex){ throw ex; } } + /* + ������������������������������ ���redis��������������� + */ + private void refreshDevicesInRedis(int monitorPointId){ + Device device = new Device(); + device.setMonitorPointId(monitorPointId); + List<Device> deviceList = deviceMapper.select(device); + if (!CollectionUtils.isEmpty(deviceList)){ + List<Integer> orgIds = monitorPointMapper.selectOrganizationIds(monitorPointId); + if (!CollectionUtils.isEmpty(orgIds)){ + deviceList.stream().forEach(dev ->{ + if(!StringUtils.isNullOrEmpty(dev.getMac())){ + String key = "device_"+dev.getMac(); + // ��������������������� ������������redis + Device simpleDevice = new Device(); + simpleDevice.setId(dev.getId()); + simpleDevice.setDeviceVersion(dev.getDeviceVersion()); + simpleDevice.setMac(dev.getMac()); + simpleDevice.setMonitorPointId(dev.getMonitorPointId()); + // ������������������������������������������������������������������ + simpleDevice.setOrganizationIds(orgIds); + redisUtils.set(key,simpleDevice); + } + }); + } + } + } @Override public void deleteByIds(Integer... ids) { MonitorPoint monitorPoint = new MonitorPoint(); @@ -116,10 +154,25 @@ Criteria criteria = example.createCriteria(); criteria.andEqualTo("isDelete", Constants.IS_DELETE_FALSE).andLike("name", "%" + name + "%"); - example.or().andEqualTo("isDelete", Constants.IS_DELETE_FALSE).andCondition("getPY(name) like ", "%" + name + "%"); + example.or().andEqualTo("isDelete", Constants.IS_DELETE_FALSE) + .andCondition("getPY(" + getReplaceStr("name") + ") like ", "%" + name + "%"); List<MonitorPoint> monitorPoints = monitorPointMapper.selectByExample(example); return monitorPoints; + } + + private String getReplaceStr(String name){ + List<String[]> list = new ArrayList<String[]>(); + list.add(new String[]{"���",""}); + list.add(new String[]{"���",""}); + for (String[] string : list) { + name = replace(name,string[0],string[1]); + } + return name; + } + + private String replace(String name,String fromStr,String toStr){ + return "REPLACE (" + name + ",'" + fromStr + "','" + toStr + "')"; } /** @@ -138,4 +191,26 @@ }).collect(Collectors.toList()); return list; } + + @Override + public List<MonitorPoint> getMonitorPointsByOrganizationId(Integer orgId) { + Example example = new Example(MonitorPoint.class); + Criteria criteria = example.createCriteria(); + + criteria.andEqualTo("isDelete", Constants.IS_DELETE_FALSE); + if (Constants.isNotSpecialOrgId(orgId)) { + criteria.andEqualTo("organizationId", orgId); + } + example.orderBy("name").asc(); + return monitorPointMapper.selectByExample(example); + } + @Override + public List<MonitorPoint> getMonitorPointsByRegion(Map<String, Object> parameters) { + Example example = new Example(MonitorPoint.class); + Criteria criteria = example.createCriteria(); + + criteria.andEqualTo("isDelete", Constants.IS_DELETE_FALSE); + criteria.andEqualTo(parameters.get("name").toString(), parameters.get("value")); + return monitorPointMapper.selectByExample(example); + } } -- Gitblit v1.8.0