作者 钟来

初始提交

正在显示 25 个修改的文件 包含 1597 行增加17 行删除
... ... @@ -86,7 +86,6 @@ public class IotDeviceControlController {
{
return null;
}
Map<String,Object> map = new HashMap<>();
Map<String,Object> valueMap = new HashMap<>();
valueMap.put("restart",restart);
Response response1 = HttpUtils.postJsonBody(url, formBody -> {
... ...
package com.zhonglai.luhui.admin.controller.user;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.UserTerminalGroup;
import com.ruoyi.system.service.IUserTerminalGroupService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 终端分组Controller
*
* @author 钟来
* @date 2022-11-22
*/
@Api(tags = "终端分组")
@RestController
@RequestMapping("/user/UserTerminalGroup")
public class UserTerminalGroupController extends BaseController
{
@Autowired
private IUserTerminalGroupService userTerminalGroupService;
/**
* 查询终端分组列表
*/
@ApiOperation("查询终端分组列表")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroup:list')")
@GetMapping("/list")
public TableDataInfo list(UserTerminalGroup userTerminalGroup)
{
startPage();
List<UserTerminalGroup> list = userTerminalGroupService.selectUserTerminalGroupList(userTerminalGroup);
return getDataTable(list);
}
/**
* 导出终端分组列表
*/
@ApiOperation("导出终端分组列表")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroup:export')")
@Log(title = "终端分组", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, UserTerminalGroup userTerminalGroup)
{
List<UserTerminalGroup> list = userTerminalGroupService.selectUserTerminalGroupList(userTerminalGroup);
ExcelUtil<UserTerminalGroup> util = new ExcelUtil<UserTerminalGroup>(UserTerminalGroup.class);
util.exportExcel(response, list, "终端分组数据");
}
/**
* 获取终端分组详细信息
*/
@ApiOperation("获取终端分组详细信息")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroup:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Integer id)
{
return AjaxResult.success(userTerminalGroupService.selectUserTerminalGroupById(id));
}
/**
* 新增终端分组
*/
@ApiOperation("新增终端分组")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroup:add')")
@Log(title = "终端分组", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody UserTerminalGroup userTerminalGroup)
{
return toAjax(userTerminalGroupService.insertUserTerminalGroup(userTerminalGroup));
}
/**
* 修改终端分组
*/
@ApiOperation("修改终端分组")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroup:edit')")
@Log(title = "终端分组", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody UserTerminalGroup userTerminalGroup)
{
return toAjax(userTerminalGroupService.updateUserTerminalGroup(userTerminalGroup));
}
/**
* 删除终端分组
*/
@ApiOperation("删除终端分组")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroup:remove')")
@Log(title = "终端分组", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids)
{
return toAjax(userTerminalGroupService.deleteUserTerminalGroupByIds(ids));
}
}
... ...
package com.zhonglai.luhui.admin.controller.user;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.UserTerminalGroupRelation;
import com.ruoyi.system.service.IUserTerminalGroupRelationService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 终端分组关系Controller
*
* @author 钟来
* @date 2022-11-22
*/
@Api(tags = "终端分组关系")
@RestController
@RequestMapping("/user/UserTerminalGroupRelation")
public class UserTerminalGroupRelationController extends BaseController
{
@Autowired
private IUserTerminalGroupRelationService userTerminalGroupRelationService;
/**
* 查询终端分组关系列表
*/
@ApiOperation("查询终端分组关系列表")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroupRelation:list')")
@GetMapping("/list")
public TableDataInfo list(UserTerminalGroupRelation userTerminalGroupRelation)
{
startPage();
List<UserTerminalGroupRelation> list = userTerminalGroupRelationService.selectUserTerminalGroupRelationList(userTerminalGroupRelation);
return getDataTable(list);
}
/**
* 导出终端分组关系列表
*/
@ApiOperation("导出终端分组关系列表")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroupRelation:export')")
@Log(title = "终端分组关系", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, UserTerminalGroupRelation userTerminalGroupRelation)
{
List<UserTerminalGroupRelation> list = userTerminalGroupRelationService.selectUserTerminalGroupRelationList(userTerminalGroupRelation);
ExcelUtil<UserTerminalGroupRelation> util = new ExcelUtil<UserTerminalGroupRelation>(UserTerminalGroupRelation.class);
util.exportExcel(response, list, "终端分组关系数据");
}
/**
* 获取终端分组关系详细信息
*/
@ApiOperation("获取终端分组关系详细信息")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroupRelation:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Integer id)
{
return AjaxResult.success(userTerminalGroupRelationService.selectUserTerminalGroupRelationById(id));
}
/**
* 新增终端分组关系
*/
@ApiOperation("新增终端分组关系")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroupRelation:add')")
@Log(title = "终端分组关系", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody UserTerminalGroupRelation userTerminalGroupRelation)
{
return toAjax(userTerminalGroupRelationService.insertUserTerminalGroupRelation(userTerminalGroupRelation));
}
/**
* 修改终端分组关系
*/
@ApiOperation("修改终端分组关系")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroupRelation:edit')")
@Log(title = "终端分组关系", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody UserTerminalGroupRelation userTerminalGroupRelation)
{
return toAjax(userTerminalGroupRelationService.updateUserTerminalGroupRelation(userTerminalGroupRelation));
}
/**
* 删除终端分组关系
*/
@ApiOperation("删除终端分组关系")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroupRelation:remove')")
@Log(title = "终端分组关系", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids)
{
return toAjax(userTerminalGroupRelationService.deleteUserTerminalGroupRelationByIds(ids));
}
}
... ...
package com.zhonglai.luhui.api;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan(basePackages = {
"com.ruoyi.common",
"com.ruoyi.system",
"com.ruoyi.framework",
"com.zhonglai.luhui.api.config",
"com.zhonglai.luhui.api.controller",
})
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class LhApiApplication {
public static void main(String[] args) {
SpringApplication.run(LhApiApplication.class,args);
System.out.println("启动成功");
}
}
... ...
package com.zhonglai.luhui.api.config;
import com.ruoyi.common.config.RuoYiConfig;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
/** 系统基础配置 */
@Autowired
private RuoYiConfig ruoyiConfig;
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
/**
* 添加摘要信息
*/
private ApiInfo apiInfo()
{
// 用ApiInfoBuilder进行定制
return new ApiInfoBuilder()
// 设置标题
.title("标题:后台管理员端")
// 描述
.description("描述:用于通过mqtt发送指令控制PC端操作")
// 作者信息
.contact(new Contact(ruoyiConfig.getName(), null, null))
// 版本
.version("版本号:" + ruoyiConfig.getVersion())
.build();
}
}
\ No newline at end of file
... ...
package com.zhonglai.luhui.api.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.UserTerminalGroup;
import com.ruoyi.system.service.IUserTerminalGroupService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 终端分组Controller
*
* @author 钟来
* @date 2022-11-22
*/
@Api(tags = "终端分组")
@RestController
@RequestMapping("/user/UserTerminalGroup")
public class UserTerminalGroupController extends BaseController
{
@Autowired
private IUserTerminalGroupService userTerminalGroupService;
/**
* 查询终端分组列表
*/
@ApiOperation("查询终端分组列表")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroup:list')")
@GetMapping("/list")
public TableDataInfo list(UserTerminalGroup userTerminalGroup)
{
userTerminalGroup.setUser_info_id(getUserId().intValue());
startPage();
List<UserTerminalGroup> list = userTerminalGroupService.selectUserTerminalGroupList(userTerminalGroup);
return getDataTable(list);
}
/**
* 导出终端分组列表
*/
@ApiOperation("导出终端分组列表")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroup:export')")
@Log(title = "终端分组", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, UserTerminalGroup userTerminalGroup)
{
userTerminalGroup.setUser_info_id(getUserId().intValue());
List<UserTerminalGroup> list = userTerminalGroupService.selectUserTerminalGroupList(userTerminalGroup);
ExcelUtil<UserTerminalGroup> util = new ExcelUtil<UserTerminalGroup>(UserTerminalGroup.class);
util.exportExcel(response, list, "终端分组数据");
}
/**
* 获取终端分组详细信息
*/
@ApiOperation("获取终端分组详细信息")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroup:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Integer id)
{
return AjaxResult.success(userTerminalGroupService.selectUserTerminalGroupById(id));
}
/**
* 新增终端分组
*/
@ApiOperation("新增终端分组")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroup:add')")
@Log(title = "终端分组", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody UserTerminalGroup userTerminalGroup)
{
return toAjax(userTerminalGroupService.insertUserTerminalGroup(userTerminalGroup));
}
/**
* 修改终端分组
*/
@ApiOperation("修改终端分组")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroup:edit')")
@Log(title = "终端分组", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody UserTerminalGroup userTerminalGroup)
{
return toAjax(userTerminalGroupService.updateUserTerminalGroup(userTerminalGroup));
}
/**
* 删除终端分组
*/
@ApiOperation("删除终端分组")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroup:remove')")
@Log(title = "终端分组", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids)
{
return toAjax(userTerminalGroupService.deleteUserTerminalGroupByIds(ids));
}
}
... ...
package com.zhonglai.luhui.api.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.UserTerminalGroupRelation;
import com.ruoyi.system.service.IUserTerminalGroupRelationService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 终端分组关系Controller
*
* @author 钟来
* @date 2022-11-22
*/
@Api(tags = "终端分组关系")
@RestController
@RequestMapping("/user/UserTerminalGroupRelation")
public class UserTerminalGroupRelationController extends BaseController
{
@Autowired
private IUserTerminalGroupRelationService userTerminalGroupRelationService;
/**
* 查询终端分组关系列表
*/
@ApiOperation("查询终端分组关系列表")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroupRelation:list')")
@GetMapping("/list")
public TableDataInfo list(UserTerminalGroupRelation userTerminalGroupRelation)
{
userTerminalGroupRelation.setUser_info_id(getUserId().intValue());
startPage();
List<UserTerminalGroupRelation> list = userTerminalGroupRelationService.selectUserTerminalGroupRelationList(userTerminalGroupRelation);
return getDataTable(list);
}
/**
* 导出终端分组关系列表
*/
@ApiOperation("导出终端分组关系列表")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroupRelation:export')")
@Log(title = "终端分组关系", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, UserTerminalGroupRelation userTerminalGroupRelation)
{
List<UserTerminalGroupRelation> list = userTerminalGroupRelationService.selectUserTerminalGroupRelationList(userTerminalGroupRelation);
ExcelUtil<UserTerminalGroupRelation> util = new ExcelUtil<UserTerminalGroupRelation>(UserTerminalGroupRelation.class);
util.exportExcel(response, list, "终端分组关系数据");
}
/**
* 获取终端分组关系详细信息
*/
@ApiOperation("获取终端分组关系详细信息")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroupRelation:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Integer id)
{
return AjaxResult.success(userTerminalGroupRelationService.selectUserTerminalGroupRelationById(id));
}
/**
* 新增终端分组关系
*/
@ApiOperation("新增终端分组关系")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroupRelation:add')")
@Log(title = "终端分组关系", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody UserTerminalGroupRelation userTerminalGroupRelation)
{
return toAjax(userTerminalGroupRelationService.insertUserTerminalGroupRelation(userTerminalGroupRelation));
}
/**
* 修改终端分组关系
*/
@ApiOperation("修改终端分组关系")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroupRelation:edit')")
@Log(title = "终端分组关系", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody UserTerminalGroupRelation userTerminalGroupRelation)
{
return toAjax(userTerminalGroupRelationService.updateUserTerminalGroupRelation(userTerminalGroupRelation));
}
/**
* 删除终端分组关系
*/
@ApiOperation("删除终端分组关系")
@PreAuthorize("@ss.hasPermi('user:UserTerminalGroupRelation:remove')")
@Log(title = "终端分组关系", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids)
{
return toAjax(userTerminalGroupRelationService.deleteUserTerminalGroupRelationByIds(ids));
}
}
... ...
restart.include.json=/com.alibaba.fastjson.*.jar
\ No newline at end of file
... ...
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://rm-wz9740un21f09iokuao.mysql.rds.aliyuncs.com:3306/mqtt_broker?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: luhui
password: Luhui586
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: ruoyi
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
\ No newline at end of file
... ...
# 项目相关配置 jhlt: # 名称 name: zhonglai # 版本 version: 3.8.2 # 版权年份 copyrightYear: 2022 # 实例演示开关 demoEnabled: true # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) profile: D:/ruoyi/uploadPath # 获取ip地址开关 addressEnabled: false # 验证码类型 math 数组计算 char 字符验证 captchaType: math # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 port: 8080 servlet: # 应用的访问路径 context-path: / tomcat: # tomcat的URI编码 uri-encoding: UTF-8 # 连接数满后的排队数,默认为100 accept-count: 1000 threads: # tomcat最大线程数,默认为200 max: 800 # Tomcat启动初始化的线程数,默认值10 min-spare: 100 # 日志配置 logging: level: com.ruoyi: debug org.springframework: warn # Spring配置 spring: # 资源信息 messages: # 国际化资源文件路径 basename: i18n/messages profiles: active: druid # 文件上传 servlet: multipart: # 单个文件大小 max-file-size: 10MB # 设置总上传的文件大小 max-request-size: 20MB # 服务模块 devtools: restart: # 热部署开关 enabled: true # redis 配置 redis: # 地址 host: 47.112.163.61 # 端口,默认为6379 port: 9527 # 数据库索引 database: 1 # 密码 password: Luhui586 # 连接超时时间 timeout: 10s lettuce: pool: # 连接池中的最小空闲连接 min-idle: 0 # 连接池中的最大空闲连接 max-idle: 8 # 连接池的最大数据库连接数 max-active: 8 # #连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: -1ms # token配置 token: # 令牌自定义标识 header: Authorization # 令牌密钥 secret: abcdefghijklmnopqrstuvwxyz # 令牌有效期(默认30分钟) expireTime: 1440 # MyBatis配置 mybatis: # 搜索指定包别名 typeAliasesPackage: com.ruoyi.**.domain # 配置mapper的扫描,找到所有的mapper.xml映射文件 mapperLocations: classpath*:mapper/**/*Mapper.xml # 加载全局的配置文件 configLocation: classpath:mybatis/mybatis-config.xml # PageHelper分页插件 pagehelper: helperDialect: mysql supportMethodsArguments: true params: count=countSql # Swagger配置 swagger: # 是否开启swagger enabled: true # 请求前缀 pathMapping: /dev-api # 防止XSS攻击 xss: # 过滤开关 enabled: true # 排除链接(多个用逗号分隔) excludes: /system/notice # 匹配链接 urlPatterns: /system/*,/monitor/*,/tool/* mqtt: client: device_life: 180 sys: ## // 对于登录login 注册register 验证码captchaImage 允许匿名访问 antMatchers: /login,/register,/captchaImage,/getCacheObject,/v2/api-docs,/tool/gen/generatorCodeFromDb
\ No newline at end of file
# 项目相关配置 jhlt: # 名称 name: zhonglai # 版本 version: 3.8.2 # 版权年份 copyrightYear: 2022 # 实例演示开关 demoEnabled: true # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) profile: D:/ruoyi/uploadPath # 获取ip地址开关 addressEnabled: false # 验证码类型 math 数组计算 char 字符验证 captchaType: math # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 port: 8080 servlet: # 应用的访问路径 context-path: / tomcat: # tomcat的URI编码 uri-encoding: UTF-8 # 连接数满后的排队数,默认为100 accept-count: 1000 threads: # tomcat最大线程数,默认为200 max: 800 # Tomcat启动初始化的线程数,默认值10 min-spare: 100 # 日志配置 logging: level: com.ruoyi: debug org.springframework: warn # Spring配置 spring: # 资源信息 messages: # 国际化资源文件路径 basename: i18n/messages profiles: active: druid # 文件上传 servlet: multipart: # 单个文件大小 max-file-size: 10MB # 设置总上传的文件大小 max-request-size: 20MB # 服务模块 devtools: restart: # 热部署开关 enabled: true # redis 配置 redis: # 地址 host: 47.112.163.61 # 端口,默认为6379 port: 9527 # 数据库索引 database: 1 # 密码 password: Luhui586 # 连接超时时间 timeout: 10s lettuce: pool: # 连接池中的最小空闲连接 min-idle: 0 # 连接池中的最大空闲连接 max-idle: 8 # 连接池的最大数据库连接数 max-active: 8 # #连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: -1ms # token配置 token: # 令牌自定义标识 header: Authorization # 令牌密钥 secret: abcdefghijklmnopqrstuvwxyz # 令牌有效期(默认30分钟) expireTime: 1440 rediskey: lh-api # MyBatis配置 mybatis: # 搜索指定包别名 typeAliasesPackage: com.ruoyi.**.domain # 配置mapper的扫描,找到所有的mapper.xml映射文件 mapperLocations: classpath*:mapper/**/*Mapper.xml # 加载全局的配置文件 configLocation: classpath:mybatis/mybatis-config.xml # PageHelper分页插件 pagehelper: helperDialect: mysql supportMethodsArguments: true params: count=countSql # Swagger配置 swagger: # 是否开启swagger enabled: true # 请求前缀 pathMapping: /dev-api # 防止XSS攻击 xss: # 过滤开关 enabled: true # 排除链接(多个用逗号分隔) excludes: /system/notice # 匹配链接 urlPatterns: /system/*,/monitor/*,/tool/* mqtt: client: device_life: 180 sys: ## // 对于登录login 注册register 验证码captchaImage 允许匿名访问 antMatchers: /login,/register,/captchaImage,/getCacheObject,/v2/api-docs,/tool/gen/generatorCodeFromDb
\ No newline at end of file
... ...
#错误消息
not.null=* 必须填写
user.jcaptcha.error=验证码错误
user.jcaptcha.expire=验证码已失效
user.not.exists=用户不存在/密码错误
user.password.not.match=用户不存在/密码错误
user.password.retry.limit.count=密码输入错误{0}次
user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定10分钟
user.password.delete=对不起,您的账号已被删除
user.blocked=用户已封禁,请联系管理员
role.blocked=角色已封禁,请联系管理员
user.logout.success=退出成功
length.not.valid=长度必须在{min}到{max}个字符之间
user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
user.password.not.valid=* 5-50个字符
user.email.not.valid=邮箱格式错误
user.mobile.phone.number.not.valid=手机号格式错误
user.login.success=登录成功
user.register.success=注册成功
user.notfound=请重新登录
user.forcelogout=管理员强制退出,请重新登录
user.unknown.error=未知错误,请重新登录
##文件上传消息
upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB!
upload.filename.exceed.length=上传的文件名最长{0}个字符
##权限
no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 全局参数 -->
<settings>
<!-- 使全局的映射器启用或禁用缓存 -->
<setting name="cacheEnabled" value="true" />
<!-- 允许JDBC 支持自动生成主键 -->
<setting name="useGeneratedKeys" value="true" />
<!-- 配置默认的执行器.SIMPLE就是普通执行器;REUSE执行器会重用预处理语句(prepared statements);BATCH执行器将重用语句并执行批量更新 -->
<setting name="defaultExecutorType" value="SIMPLE" />
<!-- 指定 MyBatis 所用日志的具体实现 -->
<setting name="logImpl" value="SLF4J" />
<!-- 使用驼峰命名法转换字段 -->
<!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
</settings>
</configuration>
... ...
... ... @@ -10,6 +10,7 @@ import com.ruoyi.system.domain.IotDevice;
import okhttp3.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import java.io.IOException;
import java.util.HashMap;
... ... @@ -20,20 +21,15 @@ public class DeviceControlService {
@Autowired
private RedisCache redisCache;
private String redisHostPath = "luhui:mqttservice:device:device:";
@Autowired
private DeviceDBOperationService deviceDBOperationService;
private IotDevice getRedisIotDevice(String imei)
{
return (IotDevice)redisCache.getCacheObject(redisHostPath+imei);
}
private String getServiceAdrres(String imei) {
IotDevice iotDevice = getRedisIotDevice(imei);
if(null == iotDevice || StringUtils.isEmpty(iotDevice.getListen_service_ip()))
{
return null;
}
return "http://"+iotDevice.getListen_service_ip()+"device/control/"+imei;
}
/**
* 固件版本更新
* @param imei 主机imei
... ... @@ -43,11 +39,12 @@ public class DeviceControlService {
*/
public Message firmwareUp(String imei,String firmwareVersion,Integer code)
{
String url = getServiceAdrres(imei);
if(null == url)
IotDevice iotDevice = getRedisIotDevice(imei);
if(null == iotDevice || StringUtils.isEmpty(iotDevice.getListen_service_ip()))
{
return null;
return new Message(MessageCode.DEFAULT_FAIL_CODE,"设备不在线");
}
String url = "http://"+iotDevice.getListen_service_ip()+"device/control/"+imei;
Map<String,Object> valueMap = new HashMap<>();
valueMap.put("firmwareVersion",firmwareVersion);
valueMap.put("code",code);
... ... @@ -62,17 +59,175 @@ public class DeviceControlService {
*/
public Message restart(String imei ,Integer restart)
{
String url = getServiceAdrres(imei);
if(null == url)
IotDevice iotDevice = getRedisIotDevice(imei);
if(null == iotDevice || StringUtils.isEmpty(iotDevice.getListen_service_ip()))
{
return new Message(MessageCode.DEFAULT_FAIL_CODE,"设备不在线");
}
String url = "http://"+iotDevice.getListen_service_ip()+"device/control/"+imei;
Map<String,Object> map = new HashMap<>();
Map<String,Object> valueMap = new HashMap<>();
valueMap.put("restart",restart);
return post(url, jsonObject -> jsonObject.put("0",valueMap));
}
/**
* 获取指定设备版本信息
* @param imei 主机imei
* @return
* @throws IOException
*/
public Message getFirmwareVersion(String imei) throws IOException {
IotDevice iotDevice = getRedisIotDevice(imei);
if(null == iotDevice || StringUtils.isEmpty(iotDevice.getListen_service_ip()))
{
return new Message(MessageCode.DEFAULT_FAIL_CODE,"设备不在线");
}
String url = "http://"+iotDevice.getListen_service_ip()+"device/getFirmwareVersion/"+iotDevice.getMqtt_username();
return postFrom(url, formBody -> {
});
}
/**
* 强行断开链接
* @param imei 主机imei
* @return
* @throws IOException
*/
public Message closeSession(String imei) {
IotDevice iotDevice = getRedisIotDevice(imei);
if(null == iotDevice || StringUtils.isEmpty(iotDevice.getListen_service_ip()))
{
return new Message(MessageCode.DEFAULT_FAIL_CODE,"设备不在线");
}
String url = "http://"+iotDevice.getListen_service_ip()+"device/closeSession/"+imei;
return postFrom(url, formBody -> {
});
}
/**
* 删除主机
* @param imei 主机imei
* @return
*/
public Message delIotDevice(String imei) {
IotDevice iotDevice = getRedisIotDevice(imei);
if(null == iotDevice || StringUtils.isEmpty(iotDevice.getListen_service_ip()))
{
return new Message(MessageCode.DEFAULT_FAIL_CODE,"设备不在线");
}
deviceDBOperationService.deleteIotDeviceByClient_id(imei);
deviceDBOperationService.deleteIotTerminalByDeviceId(imei);
if(StringUtils.isEmpty(iotDevice.getListen_service_ip()))
{
return new Message(MessageCode.DEFAULT_SUCCESS_CODE,"删除成功");
}
String url = "http://"+iotDevice.getListen_service_ip()+"device/delIotDevice/"+imei;
return postFrom(url, formBody -> {
});
}
/**
* 删除终端
* @param imei 主机imei
* @param number 终端编号
* @return
*/
public Message delIotTerminal(String imei,String number) {
IotDevice iotDevice = getRedisIotDevice(imei);
if(null == iotDevice || StringUtils.isEmpty(iotDevice.getListen_service_ip()))
{
return new Message(MessageCode.DEFAULT_FAIL_CODE,"设备不在线");
}
deviceDBOperationService.deleteIotTerminalById(imei+"_"+number);
if(StringUtils.isEmpty(iotDevice.getListen_service_ip()))
{
return new Message(MessageCode.DEFAULT_SUCCESS_CODE,"删除成功");
}
String url = "http://"+iotDevice.getListen_service_ip()+"device/delIotTerminal/"+imei+"/"+number;
return postFrom(url, formBody -> {
});
}
/**
* 读取属性
* @param imei 主机imei
* @param sensor_number 传感器编号(0,1_1,10_1)
* @param attributes 属性集合(id1,id2,id3)
* @return
* @throws IOException
*/
public Message readAttribute(String imei,String sensor_number,String attributes) throws IOException {
IotDevice iotDevice = getRedisIotDevice(imei);
if(null == iotDevice || StringUtils.isEmpty(iotDevice.getListen_service_ip()))
{
return new Message(MessageCode.DEFAULT_FAIL_CODE,"设备不在线");
}
String url = "http://"+iotDevice.getListen_service_ip()+"device/read/"+imei;
return post(url, jsonObject -> jsonObject.put(sensor_number,attributes));
}
/**
* 设置主机自定义参数
* @param imei 主机imei
* @param summary 自定义数据json字符串
* @return
* @throws IOException
*/
public Message upSummary(String imei,String summary) {
IotDevice iotDevice = getRedisIotDevice(imei);
if(null == iotDevice || StringUtils.isEmpty(iotDevice.getListen_service_ip()))
{
return new Message(MessageCode.DEFAULT_FAIL_CODE,"设备不在线");
}
String url = "http://"+iotDevice.getListen_service_ip()+"device/control/"+imei;
Map<String,Object> valueMap = new HashMap<>();
valueMap.put("summary",JSONObject.parseObject(summary));
return post(url, jsonObject -> jsonObject.put("0",valueMap));
}
/**
* 修改指定终端属性
* @param imei 主机imei
* @param number 终端编号(如:1_1)
* @param config 配置参数json字符串
* @return
* @throws IOException
*/
public Message upTerminalConfig(String imei,String number,@RequestBody Map<String,Object> config) throws IOException {
IotDevice iotDevice = getRedisIotDevice(imei);
if(null == iotDevice || StringUtils.isEmpty(iotDevice.getListen_service_ip()))
{
return new Message(MessageCode.DEFAULT_FAIL_CODE,"设备不在线");
}
String url = "http://"+iotDevice.getListen_service_ip()+"device/control/"+imei;
return post(url, jsonObject -> jsonObject.put(number,config));
}
/**
* 批量修改终端属性
* @param imei 主机imei
* @param map 批量数据json字符串
* @return
* @throws IOException
*/
public Message batchUpTerminalConfig(String imei,@RequestBody Map<String,Object> map) {
IotDevice iotDevice = getRedisIotDevice(imei);
if(null == iotDevice || StringUtils.isEmpty(iotDevice.getListen_service_ip()))
{
return new Message(MessageCode.DEFAULT_FAIL_CODE,"设备不在线");
}
String url = "http://"+iotDevice.getListen_service_ip()+"device/control/"+imei;
return post(url, jsonObject -> {
for (String key:map.keySet())
{
jsonObject.put(key, map.get(key));
}
});
}
private Message post(String url, HttpUtils.JsonBody jsonBody)
{
... ... @@ -89,4 +244,21 @@ public class DeviceControlService {
}
return new Message(MessageCode.DEFAULT_FAIL_CODE,"指令执行失败请稍后重试");
}
private Message postFrom(String url,HttpUtils.FromBody fromBody )
{
Response response1 = null;
try {
response1 = HttpUtils.postFromBody(url, builder -> {
}, fromBody);
if(null != response1.body() && StringUtils.isNotEmpty(response1.body().string()))
{
Message message = com.alibaba.fastjson.JSONObject.parseObject(response1.body().string(),Message.class);
return message;
}
} catch (IOException e) {
return new Message(MessageCode.DEFAULT_FAIL_CODE,"指令转发失败请联系管理员");
}
return new Message(MessageCode.DEFAULT_FAIL_CODE,"指令执行失败请稍后重试");
}
}
... ...
package com.zhonglai.luhui.central.control;
public interface DeviceDBOperationService {
int deleteIotDeviceByClient_id(String imei);
int deleteIotTerminalByDeviceId(String imei);
int deleteIotTerminalById(String id);
}
... ...
package com.ruoyi.system.domain;
import com.ruoyi.system.domain.tool.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 终端分组对象 user_terminal_group
*
* @author 钟来
* @date 2022-11-22
*/
@ApiModel("终端分组")
public class UserTerminalGroup extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 创建时间 */
@ApiModelProperty("创建时间")
private Integer create_time;
/** 主键 */
@ApiModelProperty("主键")
private Integer id;
/** 名称 */
@ApiModelProperty("名称")
private String name;
/** 关联用户id */
@ApiModelProperty("关联用户id")
private Integer user_info_id;
public void setCreate_time(Integer create_time)
{
this.create_time = create_time;
}
public Integer getCreate_time()
{
return create_time;
}
public void setId(Integer id)
{
this.id = id;
}
public Integer getId()
{
return id;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setUser_info_id(Integer user_info_id)
{
this.user_info_id = user_info_id;
}
public Integer getUser_info_id()
{
return user_info_id;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("create_time", getCreate_time())
.append("id", getId())
.append("name", getName())
.append("user_info_id", getUser_info_id())
.toString();
}
}
... ...
package com.ruoyi.system.domain;
import com.ruoyi.system.domain.tool.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 终端分组关系对象 user_terminal_group_relation
*
* @author 钟来
* @date 2022-11-22
*/
@ApiModel("终端分组关系")
public class UserTerminalGroupRelation extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 创建时间 */
@ApiModelProperty("创建时间")
private Integer create_time;
/** 主键 */
@ApiModelProperty("主键")
private Integer id;
/** 分组id */
@ApiModelProperty("分组id")
private Integer iot_terminal_group_id;
/** 分组名称 */
@ApiModelProperty("分组名称")
private String iot_terminal_group_name;
/** 终端id */
@ApiModelProperty("终端id")
private String iot_terminal_id;
/** 关联用户 */
@ApiModelProperty("关联用户")
private Integer user_info_id;
public void setCreate_time(Integer create_time)
{
this.create_time = create_time;
}
public Integer getCreate_time()
{
return create_time;
}
public void setId(Integer id)
{
this.id = id;
}
public Integer getId()
{
return id;
}
public void setIot_terminal_group_id(Integer iot_terminal_group_id)
{
this.iot_terminal_group_id = iot_terminal_group_id;
}
public Integer getIot_terminal_group_id()
{
return iot_terminal_group_id;
}
public void setIot_terminal_group_name(String iot_terminal_group_name)
{
this.iot_terminal_group_name = iot_terminal_group_name;
}
public String getIot_terminal_group_name()
{
return iot_terminal_group_name;
}
public void setIot_terminal_id(String iot_terminal_id)
{
this.iot_terminal_id = iot_terminal_id;
}
public String getIot_terminal_id()
{
return iot_terminal_id;
}
public void setUser_info_id(Integer user_info_id)
{
this.user_info_id = user_info_id;
}
public Integer getUser_info_id()
{
return user_info_id;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("create_time", getCreate_time())
.append("id", getId())
.append("iot_terminal_group_id", getIot_terminal_group_id())
.append("iot_terminal_group_name", getIot_terminal_group_name())
.append("iot_terminal_id", getIot_terminal_id())
.append("user_info_id", getUser_info_id())
.toString();
}
}
... ...
... ... @@ -41,6 +41,9 @@ public class TokenService
@Value("${token.expireTime}")
private int expireTime;
@Value("${token.rediskey}")
private int rediskey;
protected static final long MILLIS_SECOND = 1000;
protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND;
... ... @@ -221,6 +224,6 @@ public class TokenService
private String getTokenKey(String uuid)
{
return Constants.LOGIN_TOKEN_KEY + uuid;
return Constants.LOGIN_TOKEN_KEY+rediskey+":" + uuid;
}
}
... ...
package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.system.domain.UserTerminalGroup;
/**
* 终端分组Mapper接口
*
* @author 钟来
* @date 2022-11-22
*/
public interface UserTerminalGroupMapper
{
/**
* 查询终端分组
*
* @param id 终端分组主键
* @return 终端分组
*/
public UserTerminalGroup selectUserTerminalGroupById(Integer id);
/**
* 查询终端分组列表
*
* @param userTerminalGroup 终端分组
* @return 终端分组集合
*/
public List<UserTerminalGroup> selectUserTerminalGroupList(UserTerminalGroup userTerminalGroup);
/**
* 新增终端分组
*
* @param userTerminalGroup 终端分组
* @return 结果
*/
public int insertUserTerminalGroup(UserTerminalGroup userTerminalGroup);
/**
* 修改终端分组
*
* @param userTerminalGroup 终端分组
* @return 结果
*/
public int updateUserTerminalGroup(UserTerminalGroup userTerminalGroup);
/**
* 删除终端分组
*
* @param id 终端分组主键
* @return 结果
*/
public int deleteUserTerminalGroupById(Integer id);
/**
* 批量删除终端分组
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteUserTerminalGroupByIds(Integer[] ids);
}
... ...
package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.system.domain.UserTerminalGroupRelation;
/**
* 终端分组关系Mapper接口
*
* @author 钟来
* @date 2022-11-22
*/
public interface UserTerminalGroupRelationMapper
{
/**
* 查询终端分组关系
*
* @param id 终端分组关系主键
* @return 终端分组关系
*/
public UserTerminalGroupRelation selectUserTerminalGroupRelationById(Integer id);
/**
* 查询终端分组关系列表
*
* @param userTerminalGroupRelation 终端分组关系
* @return 终端分组关系集合
*/
public List<UserTerminalGroupRelation> selectUserTerminalGroupRelationList(UserTerminalGroupRelation userTerminalGroupRelation);
/**
* 新增终端分组关系
*
* @param userTerminalGroupRelation 终端分组关系
* @return 结果
*/
public int insertUserTerminalGroupRelation(UserTerminalGroupRelation userTerminalGroupRelation);
/**
* 修改终端分组关系
*
* @param userTerminalGroupRelation 终端分组关系
* @return 结果
*/
public int updateUserTerminalGroupRelation(UserTerminalGroupRelation userTerminalGroupRelation);
/**
* 删除终端分组关系
*
* @param id 终端分组关系主键
* @return 结果
*/
public int deleteUserTerminalGroupRelationById(Integer id);
/**
* 批量删除终端分组关系
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteUserTerminalGroupRelationByIds(Integer[] ids);
}
... ...
package com.ruoyi.system.service;
import java.util.List;
import com.ruoyi.system.domain.UserTerminalGroupRelation;
/**
* 终端分组关系Service接口
*
* @author 钟来
* @date 2022-11-22
*/
public interface IUserTerminalGroupRelationService
{
/**
* 查询终端分组关系
*
* @param id 终端分组关系主键
* @return 终端分组关系
*/
public UserTerminalGroupRelation selectUserTerminalGroupRelationById(Integer id);
/**
* 查询终端分组关系列表
*
* @param userTerminalGroupRelation 终端分组关系
* @return 终端分组关系集合
*/
public List<UserTerminalGroupRelation> selectUserTerminalGroupRelationList(UserTerminalGroupRelation userTerminalGroupRelation);
/**
* 新增终端分组关系
*
* @param userTerminalGroupRelation 终端分组关系
* @return 结果
*/
public int insertUserTerminalGroupRelation(UserTerminalGroupRelation userTerminalGroupRelation);
/**
* 修改终端分组关系
*
* @param userTerminalGroupRelation 终端分组关系
* @return 结果
*/
public int updateUserTerminalGroupRelation(UserTerminalGroupRelation userTerminalGroupRelation);
/**
* 批量删除终端分组关系
*
* @param ids 需要删除的终端分组关系主键集合
* @return 结果
*/
public int deleteUserTerminalGroupRelationByIds(Integer[] ids);
/**
* 删除终端分组关系信息
*
* @param id 终端分组关系主键
* @return 结果
*/
public int deleteUserTerminalGroupRelationById(Integer id);
}
... ...
package com.ruoyi.system.service;
import java.util.List;
import com.ruoyi.system.domain.UserTerminalGroup;
/**
* 终端分组Service接口
*
* @author 钟来
* @date 2022-11-22
*/
public interface IUserTerminalGroupService
{
/**
* 查询终端分组
*
* @param id 终端分组主键
* @return 终端分组
*/
public UserTerminalGroup selectUserTerminalGroupById(Integer id);
/**
* 查询终端分组列表
*
* @param userTerminalGroup 终端分组
* @return 终端分组集合
*/
public List<UserTerminalGroup> selectUserTerminalGroupList(UserTerminalGroup userTerminalGroup);
/**
* 新增终端分组
*
* @param userTerminalGroup 终端分组
* @return 结果
*/
public int insertUserTerminalGroup(UserTerminalGroup userTerminalGroup);
/**
* 修改终端分组
*
* @param userTerminalGroup 终端分组
* @return 结果
*/
public int updateUserTerminalGroup(UserTerminalGroup userTerminalGroup);
/**
* 批量删除终端分组
*
* @param ids 需要删除的终端分组主键集合
* @return 结果
*/
public int deleteUserTerminalGroupByIds(Integer[] ids);
/**
* 删除终端分组信息
*
* @param id 终端分组主键
* @return 结果
*/
public int deleteUserTerminalGroupById(Integer id);
}
... ...
package com.ruoyi.system.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.UserTerminalGroupRelationMapper;
import com.ruoyi.system.domain.UserTerminalGroupRelation;
import com.ruoyi.system.service.IUserTerminalGroupRelationService;
/**
* 终端分组关系Service业务层处理
*
* @author 钟来
* @date 2022-11-22
*/
@Service
public class UserTerminalGroupRelationServiceImpl implements IUserTerminalGroupRelationService
{
@Autowired
private UserTerminalGroupRelationMapper userTerminalGroupRelationMapper;
/**
* 查询终端分组关系
*
* @param id 终端分组关系主键
* @return 终端分组关系
*/
@Override
public UserTerminalGroupRelation selectUserTerminalGroupRelationById(Integer id)
{
return userTerminalGroupRelationMapper.selectUserTerminalGroupRelationById(id);
}
/**
* 查询终端分组关系列表
*
* @param userTerminalGroupRelation 终端分组关系
* @return 终端分组关系
*/
@Override
public List<UserTerminalGroupRelation> selectUserTerminalGroupRelationList(UserTerminalGroupRelation userTerminalGroupRelation)
{
return userTerminalGroupRelationMapper.selectUserTerminalGroupRelationList(userTerminalGroupRelation);
}
/**
* 新增终端分组关系
*
* @param userTerminalGroupRelation 终端分组关系
* @return 结果
*/
@Override
public int insertUserTerminalGroupRelation(UserTerminalGroupRelation userTerminalGroupRelation)
{
return userTerminalGroupRelationMapper.insertUserTerminalGroupRelation(userTerminalGroupRelation);
}
/**
* 修改终端分组关系
*
* @param userTerminalGroupRelation 终端分组关系
* @return 结果
*/
@Override
public int updateUserTerminalGroupRelation(UserTerminalGroupRelation userTerminalGroupRelation)
{
return userTerminalGroupRelationMapper.updateUserTerminalGroupRelation(userTerminalGroupRelation);
}
/**
* 批量删除终端分组关系
*
* @param ids 需要删除的终端分组关系主键
* @return 结果
*/
@Override
public int deleteUserTerminalGroupRelationByIds(Integer[] ids)
{
return userTerminalGroupRelationMapper.deleteUserTerminalGroupRelationByIds(ids);
}
/**
* 删除终端分组关系信息
*
* @param id 终端分组关系主键
* @return 结果
*/
@Override
public int deleteUserTerminalGroupRelationById(Integer id)
{
return userTerminalGroupRelationMapper.deleteUserTerminalGroupRelationById(id);
}
}
... ...
package com.ruoyi.system.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.UserTerminalGroupMapper;
import com.ruoyi.system.domain.UserTerminalGroup;
import com.ruoyi.system.service.IUserTerminalGroupService;
/**
* 终端分组Service业务层处理
*
* @author 钟来
* @date 2022-11-22
*/
@Service
public class UserTerminalGroupServiceImpl implements IUserTerminalGroupService
{
@Autowired
private UserTerminalGroupMapper userTerminalGroupMapper;
/**
* 查询终端分组
*
* @param id 终端分组主键
* @return 终端分组
*/
@Override
public UserTerminalGroup selectUserTerminalGroupById(Integer id)
{
return userTerminalGroupMapper.selectUserTerminalGroupById(id);
}
/**
* 查询终端分组列表
*
* @param userTerminalGroup 终端分组
* @return 终端分组
*/
@Override
public List<UserTerminalGroup> selectUserTerminalGroupList(UserTerminalGroup userTerminalGroup)
{
return userTerminalGroupMapper.selectUserTerminalGroupList(userTerminalGroup);
}
/**
* 新增终端分组
*
* @param userTerminalGroup 终端分组
* @return 结果
*/
@Override
public int insertUserTerminalGroup(UserTerminalGroup userTerminalGroup)
{
return userTerminalGroupMapper.insertUserTerminalGroup(userTerminalGroup);
}
/**
* 修改终端分组
*
* @param userTerminalGroup 终端分组
* @return 结果
*/
@Override
public int updateUserTerminalGroup(UserTerminalGroup userTerminalGroup)
{
return userTerminalGroupMapper.updateUserTerminalGroup(userTerminalGroup);
}
/**
* 批量删除终端分组
*
* @param ids 需要删除的终端分组主键
* @return 结果
*/
@Override
public int deleteUserTerminalGroupByIds(Integer[] ids)
{
return userTerminalGroupMapper.deleteUserTerminalGroupByIds(ids);
}
/**
* 删除终端分组信息
*
* @param id 终端分组主键
* @return 结果
*/
@Override
public int deleteUserTerminalGroupById(Integer id)
{
return userTerminalGroupMapper.deleteUserTerminalGroupById(id);
}
}
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.UserTerminalGroupMapper">
<resultMap type="UserTerminalGroup" id="UserTerminalGroupResult">
<result property="create_time" column="create_time" />
<result property="id" column="id" />
<result property="name" column="name" />
<result property="user_info_id" column="user_info_id" />
</resultMap>
<sql id="selectUserTerminalGroupVo">
select `create_time`, `id`, `name`, `user_info_id` from user_terminal_group
</sql>
<select id="selectUserTerminalGroupList" parameterType="UserTerminalGroup" resultMap="UserTerminalGroupResult">
<include refid="selectUserTerminalGroupVo"/>
<where>
</where>
</select>
<select id="selectUserTerminalGroupById" parameterType="Integer" resultMap="UserTerminalGroupResult">
<include refid="selectUserTerminalGroupVo"/>
where id = #{id}
</select>
<insert id="insertUserTerminalGroup" parameterType="UserTerminalGroup" useGeneratedKeys="true" keyProperty="id">
insert into user_terminal_group
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="create_time != null">create_time,</if>
<if test="name != null">name,</if>
<if test="user_info_id != null">user_info_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="create_time != null">#{create_time},</if>
<if test="name != null">#{name},</if>
<if test="user_info_id != null">#{user_info_id},</if>
</trim>
</insert>
<update id="updateUserTerminalGroup" parameterType="UserTerminalGroup">
update user_terminal_group
<trim prefix="SET" suffixOverrides=",">
<if test="create_time != null">create_time = #{create_time},</if>
<if test="name != null">name = #{name},</if>
<if test="user_info_id != null">user_info_id = #{user_info_id},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteUserTerminalGroupById" parameterType="Integer">
delete from user_terminal_group where id = #{id}
</delete>
<delete id="deleteUserTerminalGroupByIds" parameterType="String">
delete from user_terminal_group where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.UserTerminalGroupRelationMapper">
<resultMap type="UserTerminalGroupRelation" id="UserTerminalGroupRelationResult">
<result property="create_time" column="create_time" />
<result property="id" column="id" />
<result property="iot_terminal_group_id" column="iot_terminal_group_id" />
<result property="iot_terminal_group_name" column="iot_terminal_group_name" />
<result property="iot_terminal_id" column="iot_terminal_id" />
<result property="user_info_id" column="user_info_id" />
</resultMap>
<sql id="selectUserTerminalGroupRelationVo">
select `create_time`, `id`, `iot_terminal_group_id`, `iot_terminal_group_name`, `iot_terminal_id`, `user_info_id` from user_terminal_group_relation
</sql>
<select id="selectUserTerminalGroupRelationList" parameterType="UserTerminalGroupRelation" resultMap="UserTerminalGroupRelationResult">
<include refid="selectUserTerminalGroupRelationVo"/>
<where>
</where>
</select>
<select id="selectUserTerminalGroupRelationById" parameterType="Integer" resultMap="UserTerminalGroupRelationResult">
<include refid="selectUserTerminalGroupRelationVo"/>
where id = #{id}
</select>
<insert id="insertUserTerminalGroupRelation" parameterType="UserTerminalGroupRelation" useGeneratedKeys="true" keyProperty="id">
insert into user_terminal_group_relation
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="create_time != null">create_time,</if>
<if test="iot_terminal_group_id != null">iot_terminal_group_id,</if>
<if test="iot_terminal_group_name != null">iot_terminal_group_name,</if>
<if test="iot_terminal_id != null">iot_terminal_id,</if>
<if test="user_info_id != null">user_info_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="create_time != null">#{create_time},</if>
<if test="iot_terminal_group_id != null">#{iot_terminal_group_id},</if>
<if test="iot_terminal_group_name != null">#{iot_terminal_group_name},</if>
<if test="iot_terminal_id != null">#{iot_terminal_id},</if>
<if test="user_info_id != null">#{user_info_id},</if>
</trim>
</insert>
<update id="updateUserTerminalGroupRelation" parameterType="UserTerminalGroupRelation">
update user_terminal_group_relation
<trim prefix="SET" suffixOverrides=",">
<if test="create_time != null">create_time = #{create_time},</if>
<if test="iot_terminal_group_id != null">iot_terminal_group_id = #{iot_terminal_group_id},</if>
<if test="iot_terminal_group_name != null">iot_terminal_group_name = #{iot_terminal_group_name},</if>
<if test="iot_terminal_id != null">iot_terminal_id = #{iot_terminal_id},</if>
<if test="user_info_id != null">user_info_id = #{user_info_id},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteUserTerminalGroupRelationById" parameterType="Integer">
delete from user_terminal_group_relation where id = #{id}
</delete>
<delete id="deleteUserTerminalGroupRelationByIds" parameterType="String">
delete from user_terminal_group_relation where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>
\ No newline at end of file
... ...