package com.whyc.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.whyc.dto.Page;
|
import com.whyc.dto.Response;
|
import com.whyc.mapper.DevInfMapper;
|
import com.whyc.pojo.db_lithium_ram_db.DevInf;
|
import com.whyc.util.RSAUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
@Service
|
public class DevInfService {
|
@Autowired(required = false)
|
private DevInfMapper mapper;
|
|
//添加设备
|
public Response addDev(DevInf devInf) {
|
QueryWrapper wrapper=new QueryWrapper();
|
//判断设备类型生成devId
|
int devId=getDevId(devInf.getDevType());
|
devInf.setDevId(devId);
|
int bl=mapper.insert(devInf);
|
return new Response().set(1,bl>0);
|
}
|
//判断设备类型生成devId
|
private int getDevId(Integer devType) {
|
//查询该类型最大设备编号
|
Integer devId=mapper.getMaxDevId(devType);
|
if(devId==null){
|
switch (devType){
|
case 1:devId=100000000;break;
|
case 2:devId=200000000;break;
|
}
|
}
|
return devId+1;
|
}
|
|
//获取所有的设备信息
|
public Response getAllInf(Integer uid, Page page) {
|
Map<String, Object> allMap = new HashMap<>();
|
PageHelper.startPage(page.getPageNum(),page.getPageSize());
|
List<DevInf> list=mapper.getAllInf(uid);
|
|
Map<Integer, List<DevInf>> typeDevMap = list.stream().collect(Collectors.groupingBy(DevInf::getDevType));
|
Map<Integer, List<DevInf>> onlineDevMap = list.stream().collect(Collectors.groupingBy(DevInf::getDevOnline));
|
Map<Integer, Object> typeMap = new HashMap<>();
|
typeMap.put(1,0);
|
typeMap.put(2,0);
|
Map<Integer, Object> onlineMap = new HashMap<>();
|
onlineMap.put(0,0);
|
onlineMap.put(1,0);
|
int devSum = list.size();
|
for (Integer type : typeDevMap.keySet()) {
|
typeMap.put(type, typeDevMap.get(type).size());
|
}
|
for (Integer online : onlineDevMap.keySet()) {
|
onlineMap.put(online, onlineDevMap.get(online).size());
|
}
|
PageInfo pageInfo=new PageInfo(list);
|
allMap.put("type",typeMap);
|
allMap.put("onlineMap",onlineMap);
|
allMap.put("devSum",devSum);
|
allMap.put("pageInfo",pageInfo);
|
|
return new Response().setII(1,list!=null,allMap,"获取所有的设备信息");
|
}
|
}
|