作者 钟来

新版流水鱼添加流程

1 package com.zhonglai.luhui.admin.controller.user; 1 package com.zhonglai.luhui.admin.controller.user;
2 2
3 import java.util.List; 3 import java.util.List;
  4 +import java.util.Map;
4 import javax.servlet.http.HttpServletResponse; 5 import javax.servlet.http.HttpServletResponse;
5 6
6 import com.zhonglai.luhui.action.BaseController; 7 import com.zhonglai.luhui.action.BaseController;
  8 +import com.zhonglai.luhui.dao.service.PublicService;
7 import com.zhonglai.luhui.device.service.IUserTerminalGroupRelationService; 9 import com.zhonglai.luhui.device.service.IUserTerminalGroupRelationService;
8 import com.zhonglai.luhui.sys.utils.ExcelUtil; 10 import com.zhonglai.luhui.sys.utils.ExcelUtil;
9 import io.swagger.annotations.Api; 11 import io.swagger.annotations.Api;
10 import io.swagger.annotations.ApiOperation; 12 import io.swagger.annotations.ApiOperation;
11 import org.springframework.security.access.prepost.PreAuthorize; 13 import org.springframework.security.access.prepost.PreAuthorize;
12 import org.springframework.beans.factory.annotation.Autowired; 14 import org.springframework.beans.factory.annotation.Autowired;
  15 +import org.springframework.transaction.annotation.Transactional;
13 import org.springframework.web.bind.annotation.GetMapping; 16 import org.springframework.web.bind.annotation.GetMapping;
14 import org.springframework.web.bind.annotation.PostMapping; 17 import org.springframework.web.bind.annotation.PostMapping;
15 import org.springframework.web.bind.annotation.PutMapping; 18 import org.springframework.web.bind.annotation.PutMapping;
@@ -38,6 +41,8 @@ public class UserTerminalGroupRelationController extends BaseController @@ -38,6 +41,8 @@ public class UserTerminalGroupRelationController extends BaseController
38 @Autowired 41 @Autowired
39 private IUserTerminalGroupRelationService userTerminalGroupRelationService; 42 private IUserTerminalGroupRelationService userTerminalGroupRelationService;
40 43
  44 + @Autowired
  45 + private PublicService publicService;
41 /** 46 /**
42 * 查询终端分组关系列表 47 * 查询终端分组关系列表
43 */ 48 */
@@ -81,10 +86,25 @@ public class UserTerminalGroupRelationController extends BaseController @@ -81,10 +86,25 @@ public class UserTerminalGroupRelationController extends BaseController
81 */ 86 */
82 @ApiOperation("新增终端分组关系") 87 @ApiOperation("新增终端分组关系")
83 @PreAuthorize("@ss.hasPermi('user:UserTerminalGroupRelation:add')") 88 @PreAuthorize("@ss.hasPermi('user:UserTerminalGroupRelation:add')")
  89 + @Transactional
84 @Log(title = "终端分组关系", businessType = BusinessType.INSERT) 90 @Log(title = "终端分组关系", businessType = BusinessType.INSERT)
85 @PostMapping 91 @PostMapping
86 public AjaxResult add(@RequestBody UserTerminalGroupRelation userTerminalGroupRelation) 92 public AjaxResult add(@RequestBody UserTerminalGroupRelation userTerminalGroupRelation)
87 { 93 {
  94 + String ids = "'"+userTerminalGroupRelation.getIot_terminal_id()+"'";
  95 + Integer userid = userTerminalGroupRelation.getUser_info_id();
  96 + List<Map<String,Object>> userIdlist = publicService.getObjectListBySQL("SELECT user_info_id,device_id FROM `iot_terminal` WHERE device_id IN(SELECT device_id FROM `iot_terminal` WHERE id IN("+ids+"))");
  97 + if(null != userIdlist && userIdlist.size() >0)
  98 + {
  99 + for (Map<String,Object> map:userIdlist)
  100 + {
  101 + if(null != map.get("user_info_id") && !String.valueOf(map.get("user_info_id")).equals(String.valueOf(userid)))
  102 + {
  103 + return AjaxResult.error("设备"+map.get("device_id")+"已被其他人绑定");
  104 + }
  105 + }
  106 + }
  107 + publicService.updateBySql("UPDATE `iot_terminal` SET user_info_id="+userid+" WHERE id IN("+ids+")");
88 return toAjax(userTerminalGroupRelationService.insertUserTerminalGroupRelation(userTerminalGroupRelation)); 108 return toAjax(userTerminalGroupRelationService.insertUserTerminalGroupRelation(userTerminalGroupRelation));
89 } 109 }
90 110
@@ -97,6 +117,7 @@ public class UserTerminalGroupRelationController extends BaseController @@ -97,6 +117,7 @@ public class UserTerminalGroupRelationController extends BaseController
97 @PutMapping 117 @PutMapping
98 public AjaxResult edit(@RequestBody UserTerminalGroupRelation userTerminalGroupRelation) 118 public AjaxResult edit(@RequestBody UserTerminalGroupRelation userTerminalGroupRelation)
99 { 119 {
  120 + publicService.updateBySql("UPDATE `iot_terminal` SET user_info_id="+userTerminalGroupRelation.getUser_info_id()+" WHERE id IN("+userTerminalGroupRelation.getIot_terminal_id()+")");
100 return toAjax(userTerminalGroupRelationService.updateUserTerminalGroupRelation(userTerminalGroupRelation)); 121 return toAjax(userTerminalGroupRelationService.updateUserTerminalGroupRelation(userTerminalGroupRelation));
101 } 122 }
102 123
@@ -2,26 +2,48 @@ package com.zhonglai.luhui.api.controller.iot; @@ -2,26 +2,48 @@ package com.zhonglai.luhui.api.controller.iot;
2 2
3 import com.ruoyi.common.annotation.Log; 3 import com.ruoyi.common.annotation.Log;
4 import com.ruoyi.common.core.domain.Message; 4 import com.ruoyi.common.core.domain.Message;
  5 +import com.ruoyi.common.core.page.TableDataInfo;
5 import com.ruoyi.common.enums.BusinessType; 6 import com.ruoyi.common.enums.BusinessType;
  7 +import com.ruoyi.system.domain.user.UserTerminalGroupRelation;
  8 +import com.zhonglai.luhui.action.BaseController;
  9 +import com.zhonglai.luhui.device.domain.IotDevice;
  10 +import com.zhonglai.luhui.device.domain.IotTerminal;
6 import com.zhonglai.luhui.device.service.DeviceControlService; 11 import com.zhonglai.luhui.device.service.DeviceControlService;
  12 +import com.zhonglai.luhui.device.service.IIotDeviceService;
  13 +import com.zhonglai.luhui.security.utils.SecurityUtils;
7 import io.swagger.annotations.Api; 14 import io.swagger.annotations.Api;
8 import io.swagger.annotations.ApiImplicitParam; 15 import io.swagger.annotations.ApiImplicitParam;
9 import io.swagger.annotations.ApiImplicitParams; 16 import io.swagger.annotations.ApiImplicitParams;
10 import io.swagger.annotations.ApiOperation; 17 import io.swagger.annotations.ApiOperation;
11 import org.springframework.beans.factory.annotation.Autowired; 18 import org.springframework.beans.factory.annotation.Autowired;
  19 +import org.springframework.security.access.prepost.PreAuthorize;
12 import org.springframework.stereotype.Controller; 20 import org.springframework.stereotype.Controller;
13 import org.springframework.transaction.annotation.Transactional; 21 import org.springframework.transaction.annotation.Transactional;
14 import org.springframework.web.bind.annotation.*; 22 import org.springframework.web.bind.annotation.*;
15 23
16 import java.io.IOException; 24 import java.io.IOException;
  25 +import java.util.List;
17 import java.util.Map; 26 import java.util.Map;
18 27
  28 +import static com.ruoyi.common.utils.PageUtils.startPage;
  29 +
19 @Api(tags = "设备控制") 30 @Api(tags = "设备控制")
20 @Controller 31 @Controller
21 @RequestMapping("/iot/iotDeviceControl") 32 @RequestMapping("/iot/iotDeviceControl")
22 -public class IotDeviceControlController { 33 +public class IotDeviceControlController extends BaseController {
23 @Autowired 34 @Autowired
24 private DeviceControlService deviceControlService; 35 private DeviceControlService deviceControlService;
  36 + @Autowired
  37 + private IIotDeviceService iotDeviceService;
  38 + @ApiOperation("查询主机/网关列表")
  39 + @PreAuthorize("@ss.hasPermi('iot:IotDevice:list')")
  40 + @GetMapping("/list")
  41 + public TableDataInfo list(IotDevice iotDevice)
  42 + {
  43 + startPage();
  44 + List<IotDevice> list = iotDeviceService.selectIotDeviceList(iotDevice);
  45 + return getDataTable(list);
  46 + }
25 47
26 @ApiOperation("固件版本更新") 48 @ApiOperation("固件版本更新")
27 @ApiImplicitParams({ 49 @ApiImplicitParams({
@@ -35,6 +57,7 @@ public class IotDeviceControlController { @@ -35,6 +57,7 @@ public class IotDeviceControlController {
35 return deviceControlService.firmwareUp(imei,firmwareVersion,code); 57 return deviceControlService.firmwareUp(imei,firmwareVersion,code);
36 } 58 }
37 59
  60 +
38 @ApiOperation("设备重启") 61 @ApiOperation("设备重启")
39 @ApiImplicitParams({ 62 @ApiImplicitParams({
40 @ApiImplicitParam(value = "主机imei",name = "imei"), 63 @ApiImplicitParam(value = "主机imei",name = "imei"),
1 package com.zhonglai.luhui.api.controller.user; 1 package com.zhonglai.luhui.api.controller.user;
2 2
3 -import java.util.ArrayList;  
4 -import java.util.HashMap;  
5 -import java.util.List;  
6 -import java.util.Map; 3 +import java.util.*;
7 import javax.servlet.http.HttpServletResponse; 4 import javax.servlet.http.HttpServletResponse;
8 5
9 import com.ruoyi.common.utils.StringUtils; 6 import com.ruoyi.common.utils.StringUtils;
@@ -17,6 +14,7 @@ import com.zhonglai.luhui.sys.utils.ExcelUtil; @@ -17,6 +14,7 @@ import com.zhonglai.luhui.sys.utils.ExcelUtil;
17 import io.swagger.annotations.Api; 14 import io.swagger.annotations.Api;
18 import io.swagger.annotations.ApiOperation; 15 import io.swagger.annotations.ApiOperation;
19 import org.springframework.beans.factory.annotation.Autowired; 16 import org.springframework.beans.factory.annotation.Autowired;
  17 +import org.springframework.transaction.annotation.Transactional;
20 import org.springframework.web.bind.annotation.GetMapping; 18 import org.springframework.web.bind.annotation.GetMapping;
21 import org.springframework.web.bind.annotation.PostMapping; 19 import org.springframework.web.bind.annotation.PostMapping;
22 import org.springframework.web.bind.annotation.PutMapping; 20 import org.springframework.web.bind.annotation.PutMapping;
@@ -113,6 +111,7 @@ public class UserTerminalGroupRelationController extends BaseController @@ -113,6 +111,7 @@ public class UserTerminalGroupRelationController extends BaseController
113 */ 111 */
114 @ApiOperation("新增终端分组关系") 112 @ApiOperation("新增终端分组关系")
115 @Log(title = "终端分组关系", businessType = BusinessType.INSERT) 113 @Log(title = "终端分组关系", businessType = BusinessType.INSERT)
  114 + @Transactional
116 @PostMapping 115 @PostMapping
117 public AjaxResult add(@RequestBody UserTerminalGroupRelation userTerminalGroupRelation) 116 public AjaxResult add(@RequestBody UserTerminalGroupRelation userTerminalGroupRelation)
118 { 117 {
@@ -132,6 +131,19 @@ public class UserTerminalGroupRelationController extends BaseController @@ -132,6 +131,19 @@ public class UserTerminalGroupRelationController extends BaseController
132 newuserTerminalGroupRelation.setUser_info_id(userid); 131 newuserTerminalGroupRelation.setUser_info_id(userid);
133 list.add(newuserTerminalGroupRelation); 132 list.add(newuserTerminalGroupRelation);
134 } 133 }
  134 + String ids = "'"+iotTerminalIds.replace(",","','")+"'";
  135 + List<Map<String,Object>> userIdlist = publicService.getObjectListBySQL("SELECT user_info_id,device_id FROM `iot_terminal` WHERE device_id IN(SELECT device_id FROM `iot_terminal` WHERE id IN("+ids+"))");
  136 + if(null != userIdlist && userIdlist.size() >0)
  137 + {
  138 + for (Map<String,Object> map:userIdlist)
  139 + {
  140 + if(null != map.get("user_info_id") && !String.valueOf(map.get("user_info_id")).equals(String.valueOf(userid)))
  141 + {
  142 + return AjaxResult.error("设备"+map.get("device_id")+"已被其他人绑定");
  143 + }
  144 + }
  145 + }
  146 + publicService.updateBySql("UPDATE `iot_terminal` SET user_info_id="+userid+" WHERE id IN("+ids+")");
135 return toAjax( publicService.insertAll(list)); 147 return toAjax( publicService.insertAll(list));
136 } 148 }
137 149
@@ -148,7 +160,8 @@ public class UserTerminalGroupRelationController extends BaseController @@ -148,7 +160,8 @@ public class UserTerminalGroupRelationController extends BaseController
148 { 160 {
149 return AjaxResult.error("终端id必填"); 161 return AjaxResult.error("终端id必填");
150 } 162 }
151 - int i = publicService.updateBySql("UPDATE `user_terminal_group_relation` SET iot_terminal_group_id="+userTerminalGroupRelation.getIot_terminal_group_id()+",iot_terminal_group_name='"+userTerminalGroupRelation.getIot_terminal_group_name()+"' WHERE iot_terminal_id IN('"+iotTerminalIds.replace(",","','")+"') and user_info_id="+SecurityUtils.getUserId().intValue()); 163 + String ids = "'"+iotTerminalIds.replace(",","','")+"'";
  164 + int i = publicService.updateBySql("UPDATE `user_terminal_group_relation` SET iot_terminal_group_id="+userTerminalGroupRelation.getIot_terminal_group_id()+",iot_terminal_group_name='"+userTerminalGroupRelation.getIot_terminal_group_name()+"' WHERE iot_terminal_id IN("+ids+") and user_info_id="+SecurityUtils.getUserId().intValue());
152 return toAjax(i); 165 return toAjax(i);
153 } 166 }
154 167
@@ -156,10 +169,13 @@ public class UserTerminalGroupRelationController extends BaseController @@ -156,10 +169,13 @@ public class UserTerminalGroupRelationController extends BaseController
156 * 删除终端分组关系 169 * 删除终端分组关系
157 */ 170 */
158 @ApiOperation("删除终端分组关系") 171 @ApiOperation("删除终端分组关系")
  172 + @Transactional
159 @Log(title = "终端分组关系", businessType = BusinessType.DELETE) 173 @Log(title = "终端分组关系", businessType = BusinessType.DELETE)
160 @DeleteMapping("/{ids}") 174 @DeleteMapping("/{ids}")
161 public AjaxResult remove(@PathVariable Integer[] ids) 175 public AjaxResult remove(@PathVariable Integer[] ids)
162 { 176 {
  177 + String idss = "'"+Arrays.toString(ids).replace(",","','")+"'";
  178 + publicService.updateBySql("UPDATE `iot_terminal` SET user_info_id=null WHERE id IN("+idss+")");
163 return toAjax(userTerminalGroupRelationService.deleteUserTerminalGroupRelationByIds(ids)); 179 return toAjax(userTerminalGroupRelationService.deleteUserTerminalGroupRelationByIds(ids));
164 } 180 }
165 181
@@ -191,4 +207,12 @@ public class UserTerminalGroupRelationController extends BaseController @@ -191,4 +207,12 @@ public class UserTerminalGroupRelationController extends BaseController
191 map.put("offline",offline); 207 map.put("offline",offline);
192 return AjaxResult.success(map); 208 return AjaxResult.success(map);
193 } 209 }
  210 +
  211 + @ApiOperation("查询用户下的所有网关")
  212 + @GetMapping(value = "/getIotDeviceList")
  213 + public AjaxResult getIotDeviceList()
  214 + {
  215 + Integer userid = SecurityUtils.getUserId().intValue();
  216 + return AjaxResult.success(publicService.getObjectListBySQL("SELECT `client_id`,`name`,`mqtt_username` FROM `iot_device` WHERE client_id IN(SELECT DISTINCT device_id FROM iot_terminal WHERE user_info_id = "+userid+")"));
  217 + }
194 } 218 }