package com.moral.service.impl; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.moral.common.bean.PageBean; import com.moral.common.util.MyBatisBaseMapUtil; import com.moral.common.util.RedisUtils; import com.moral.entity.DeviceVersion; import com.moral.entity.DeviceVersionSensor; import com.moral.mapper.DeviceVersionMapper; import com.moral.mapper.DeviceVersionSensorMapper; import com.moral.service.DeviceVersionService; import tk.mybatis.mapper.entity.Example; @Service public class DeviceVersionServiceImpl implements DeviceVersionService { @Resource private DeviceVersionMapper deviceVersionMapper; @Resource private DeviceVersionSensorMapper deviceVersionSensorMapper; private static Class ENTITY_CLASS = DeviceVersion.class; @Override public PageBean queryByPageBean(PageBean pageBean){ return MyBatisBaseMapUtil.queryPage(deviceVersionMapper,pageBean,ENTITY_CLASS); } @Override public void addOrModify(DeviceVersion deviceVersion){ try{ if(deviceVersion.getId()==null){ deviceVersion.setUpdateTime(new Date()); deviceVersionMapper.insertSelective(deviceVersion); }else{ deviceVersion.setUpdateTime(new Date()); deviceVersionMapper.updateByPrimaryKeySelective(deviceVersion); } } catch (Exception ex){ throw ex; } } @Override public void deleteByIds(Integer... ids) { if(ids!=null&&ids.length>0){ if(ids.length==1){ DeviceVersion deviceVersion = new DeviceVersion(); deviceVersion.setId(ids[0]); deviceVersion.setIsDelete(true); deviceVersion.setUpdateTime(new Date()); deviceVersionMapper.updateByPrimaryKeySelective(deviceVersion); }else{ DeviceVersion deviceVersion = new DeviceVersion(); deviceVersion.setIsDelete(true); deviceVersion.setUpdateTime(new Date()); Example example = new Example(ENTITY_CLASS); example.or().andIn("id", Arrays.asList(ids)); deviceVersionMapper.updateByExampleSelective(deviceVersion,example); } } } @Resource private RedisUtils redisUtils; @Override public void versionSensorConfig(Integer deviceVersionId, Integer[] sensorIds){ Example example = new Example(DeviceVersionSensor.class); example.or().andEqualTo("deviceVersionId",deviceVersionId); deviceVersionSensorMapper.deleteByExample(example); redisUtils.remove("deviceVersion_" + deviceVersionId); if(sensorIds!=null && sensorIds.length >0){ List deviceVersionSensorList = new ArrayList(); for(int sensorId:sensorIds){ DeviceVersionSensor deviceVersionSensor = new DeviceVersionSensor(); deviceVersionSensor.setDeviceVersionId(deviceVersionId); deviceVersionSensor.setSensorId(sensorId); deviceVersionSensorList.add(deviceVersionSensor); } deviceVersionSensorMapper.insertList(deviceVersionSensorList); } } public List getVersionsByOrgId(int organizationId){ return null; } @Override public Integer queryMaxVersionNo() { Example example = new Example(DeviceVersion.class); example.orderBy("version").desc(); List deviceVersionList = deviceVersionMapper.selectByExample(example); if(deviceVersionList.size()>0){ return deviceVersionList.get(0).getVersion(); } return null; } @Override public DeviceVersion queryByVersionNo(int versionNo) { DeviceVersion query = new DeviceVersion(); query.setVersion(versionNo); return deviceVersionMapper.selectOne(query); } @Override public List getSensorIds(int deviceVersionId){ DeviceVersionSensor deviceVersionSensor = new DeviceVersionSensor(); deviceVersionSensor.setDeviceVersionId(deviceVersionId); List deviceVersionSensorList = deviceVersionSensorMapper.select(deviceVersionSensor); List sensorIds = new ArrayList<>(); for(DeviceVersionSensor dvSensor:deviceVersionSensorList ){ sensorIds.add(dvSensor.getSensorId()); } return sensorIds; } @Override public List queryByOrgId(Integer organizationId){ return this.deviceVersionMapper.selectListByOrgId(organizationId); } @Override public List queryByMpointId(Integer mpointId){ return this.deviceVersionMapper.selectListByMpointId(mpointId); } @Override public DeviceVersion queryVersionById(Integer versionId) { return deviceVersionMapper.selectByPrimaryKey(versionId); } }