package com.moral.service.impl; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import com.github.pagehelper.PageHelper; import com.moral.common.exception.BusinessException; import com.moral.common.util.ValidateUtil; import com.moral.entity.Device; import com.moral.mapper.DeviceMapper; import com.moral.service.AccountService; import com.moral.service.DeviceService; import tk.mybatis.mapper.entity.Example; @Service public class DeviceServiceImpl implements DeviceService { @Resource private DeviceMapper deviceMapper; @Resource private AccountService accountService; @Override public Map getDeviceStatesByAccount(Map parameters) { Map result = new HashMap(); accountService.setOrgIdsByAccount(parameters); List> list = deviceMapper.getDeviceStatesByAccount(parameters); Long all = 0L, normal = 0L, abnormal = 0L, stop = 0L; for (Map map : list) { Long count = (Long) map.get("count"); all += count; switch (Integer.valueOf((String) map.get("state"))) { case 0: normal = count; break; case 4: stop = count; break; default: abnormal += count; } } result.put("all", all); result.put("normal", normal); result.put("abnormal", abnormal); result.put("stop", stop); return result; } @Override public List> getSensorsByDevice(String mac) { return deviceMapper.getSensorsByDevice(mac); } @Override public void saveOrUpdateDevice(Device device) { ValidateUtil.notNull(device, "参数不可为空"); ValidateUtil.notEmpty(device.getMac(), "参数不可为空"); Example example = new Example(Device.class); example.or().andEqualTo("mac",device.getMac()); List devices = deviceMapper.selectByExample(example); Date operateDate = new Date(); device.setInstallTime(operateDate); if (ObjectUtils.isEmpty(devices)) { device.setCreateTime(operateDate); device.setState("4"); deviceMapper.insertSelective(device); }else if (devices.size() > 1) { throw new BusinessException("设备信息异常,联系管理员!"); }else { device.setId(devices.get(0).getId()); deviceMapper.updateByPrimaryKeySelective(device); } } @Override public List getInstallDevicesByOperateUser(Integer uid, Integer pageIndex, Integer pageSize) { Example example = new Example(Device.class); example.or().andEqualTo("operateUserId",uid); PageHelper.startPage(pageIndex, pageSize); List devices = deviceMapper.selectByExample(example); return devices; } }