作者 钟来

添加用户设备统计接口

... ... @@ -77,6 +77,11 @@
<artifactId>lh-jar-rocketmq</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
... ...
... ... @@ -2,6 +2,7 @@ package com.zhonglai.luhui.device.service;
import java.util.List;
import com.ruoyi.system.domain.user.UserTerminalGroupRelation;
import com.zhonglai.luhui.device.domain.IotTerminal;
/**
* 终端分组关系Service接口
... ... @@ -60,4 +61,12 @@ public interface IUserTerminalGroupRelationService
public int deleteUserTerminalGroupRelationById(Integer id);
List<UserTerminalGroupRelation> selectListByTerminalIds(String[] iot_terminal_ids);
int groupTerminal(Integer iot_terminal_group_id, List<String> ids,Integer userId);
/**
* 获取用户终端列表
* @param userId
* @param mqtt_usernames
* @return
*/
List<IotTerminal> getUserIotTerminalList(Integer userId, String mqtt_usernames);
}
... ...
... ... @@ -2,10 +2,15 @@ package com.zhonglai.luhui.device.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.system.domain.user.UserTerminalGroup;
import com.zhonglai.luhui.dao.service.PublicService;
import com.zhonglai.luhui.device.domain.IotTerminal;
import com.zhonglai.luhui.device.mapper.UserTerminalGroupRelationMapper;
import com.zhonglai.luhui.device.service.IUserTerminalGroupRelationService;
import com.zhonglai.luhui.device.service.IUserTerminalGroupService;
... ... @@ -150,4 +155,35 @@ public class UserTerminalGroupRelationServiceImpl implements IUserTerminalGroupR
}
return 0;
}
/**
* 获取用户终端列表
* @param userId
* @param mqtt_usernames
* @return
*/
public List<IotTerminal> getUserIotTerminalList(Integer userId,String mqtt_usernames)
{
StringBuffer stringBuffer = new StringBuffer("SELECT * FROM `user_terminal_group_relation` a LEFT JOIN `iot_terminal` b ON a.`iot_terminal_id`=b.`id` WHERE a.user_info_id=");
stringBuffer.append(userId);
if(StringUtils.isNotEmpty(mqtt_usernames))
{
stringBuffer.append(" AND b.`mqtt_username` IN ('");
stringBuffer.append(mqtt_usernames.replaceAll(",","','"));
stringBuffer.append("')");
}
List<Map<String,Object>> list = publicService.getObjectListBySQL(stringBuffer.toString());
if(null != list && list.size()!=0)
{
List<IotTerminal> rlist = new ArrayList<>();
for (Map<String,Object> map:list)
{
IotTerminal iotTerminal = BeanUtil.mapToBean(map, IotTerminal.class,false,null);
rlist.add(iotTerminal);
}
return rlist;
}
return null;
}
}
... ...
package com.zhonglai.luhui.api.controller.user;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
... ... @@ -9,6 +10,7 @@ import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.zhonglai.luhui.action.BaseController;
import com.zhonglai.luhui.dao.service.PublicService;
import com.zhonglai.luhui.device.domain.IotTerminal;
import com.zhonglai.luhui.device.service.IUserTerminalGroupRelationService;
import com.zhonglai.luhui.security.utils.SecurityUtils;
import com.zhonglai.luhui.sys.utils.ExcelUtil;
... ... @@ -160,4 +162,33 @@ public class UserTerminalGroupRelationController extends BaseController
{
return toAjax(userTerminalGroupRelationService.deleteUserTerminalGroupRelationByIds(ids));
}
@ApiOperation("统计用户设备")
@GetMapping("/getUserIotTerminalList")
public AjaxResult getUserIotTerminalList(String mqtt_usernames)
{
List<IotTerminal> list = userTerminalGroupRelationService.getUserIotTerminalList(SecurityUtils.getUserId().intValue(),mqtt_usernames);
int total = 0;
int online = 0;
int offline = 0;
if (null!=list && list.size()>0)
{
total = list.size();
for (IotTerminal iotTerminal:list)
{
if(null != iotTerminal.getOnline() &&iotTerminal.getOnline()==3)
{
online++;
}else {
offline++;
}
}
}
Map<String,Integer> map = new HashMap<>();
map.put("total",total);
map.put("online",online);
map.put("offline",offline);
return AjaxResult.success(map);
}
}
... ...