package com.example.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.mapper.LogMapper;
import com.example.pojo.*;
import com.example.service.DeviceService;
import com.example.service.FamilyService;
import com.example.service.LogService;
import com.example.service.UserService;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.iotexplorer.v20190423.IotexplorerClient;
import com.tencentcloudapi.iotexplorer.v20190423.models.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiKeyAuthDefinition;
import io.swagger.annotations.ApiOperation;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.*;
import java.math.BigDecimal;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* <p>
* 前端控制器 设备管理
* </p>
*
* @author sensordata
* @since 2021-10-27
*/
@Controller
@Api(tags = "设备接口")
//@ResponseBody
public class DeviceController {
@Resource
private DeviceService deviceService;
@Resource
private UserService userService;
@Resource
private LogService logService;
@Resource
private LogMapper logMapper;
@ApiOperation(value = "添加设备")
@PostMapping("/adddevice")
@ResponseBody
public String adddevice(HttpSession session, Device device, @RequestParam(value = "productid") String productid, @RequestParam(value = "status") String status, @RequestParam(value = "tip") String tip,@RequestParam(value = "devicename") String devicename,@RequestParam(value = "x") String x, @RequestParam(value = "ownphone", defaultValue = "无") String ownphone) throws IOException {
Webuser loginUser = (Webuser) session.getAttribute("loginUser");
QueryWrapper<Device> wrapper = new QueryWrapper<>();
wrapper.eq("deviceName", devicename);
Device serviceOne = deviceService.getOne(wrapper);
if (serviceOne == null) {//设备不存在
if (!ownphone.equals("无")) {
QueryWrapper<User> wrapper1 = new QueryWrapper<>();
wrapper1.eq("phone", ownphone);
User serviceOne1 = userService.getOne(wrapper1);
if (serviceOne1 != null) {//用户存在
device.setStatus(status);
device.setTip(tip);
device.setX(x);
device.setY(100);
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
device.setCtime(df1.format(new Date()));
Object[] objects = deviceService.getCoordinate(x);
device.setLat((String) objects[0]);
device.setLng((String) objects[1]);
device.setDevicename(devicename);
device.setOwnphone(ownphone);
device.setProductid(productid);
device.setOperate(loginUser.getAccount());
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
device.setTime(df.format(new Date()));
deviceService.save(device);
}
return "-1";//用户不存在,请先注册用户
} else {
device.setStatus(status);
device.setTip(tip);
device.setX(x);
device.setY(100);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
device.setCtime(df.format(new Date()));
Object[] objects = deviceService.getCoordinate(x);
device.setLat((String) objects[0]);
device.setLng((String) objects[1]);
device.setDevicename(devicename);
device.setOwnphone(ownphone);
device.setOperate(loginUser.getAccount());
device.setTime("无");
device.setProductid(productid);
deviceService.save(device);
return "0";
}
}
return "1";//设备已存在
}
//显示所有设备信息,按页显示
@ApiOperation(value = "显示所有设备信息")
@GetMapping("/equList")
@ResponseBody
public Page list(HttpSession session, @RequestParam(value = "page", defaultValue = "1") Integer pageNumber, @RequestParam(value = "limit", defaultValue = "6") Integer pageLimit, Model model) {
QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
Page<Device> Tpage = new Page<>(pageNumber, pageLimit);
//deviceService.DescribeDevice(devicename,productid)
Page<Device> page = deviceService.page(Tpage, queryWrapper);
// model.addAttribute("device",page);
return page;
}
//显示所有设备信息,按页显示
@ApiOperation(value = "显示所有在线设备状态")
@GetMapping("/equStatus")
@ResponseBody
public Page equStatus(HttpSession session, @RequestParam(value = "page", defaultValue = "1") Integer pageNumber, @RequestParam(value = "limit", defaultValue = "6") Integer pageLimit, Model model) {
QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", "1");
Page<Device> Tpage = new Page<>(pageNumber, pageLimit);
//deviceService.DescribeDevice(devicename,productid)
Page<Device> page = deviceService.page(Tpage, queryWrapper);
// model.addAttribute("device",page);
return page;
}
SimpleDateFormat df1;
//更改设备状态
@ApiOperation(value = "更改设备状态")
@ResponseBody
@PostMapping(value = "/changed", produces = "application/json;charset=UTF-8")
public String getByJSON(@RequestBody(required = false) JSONObject jsonParam) {
//System.out.println(jsonParam);
String devicename = jsonParam.getString("devicename");
String status = jsonParam.getJSONObject("payload").getString("event");
if (status.equals("EV_ONLINE")) {
deviceService.updateDevice1("1", devicename);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");// 设置日期格式
String ltime = df.format(new Date());
QueryWrapper<Log> wrapper1 = new QueryWrapper<>();
wrapper1.eq("message", devicename).eq("Ltime", ltime);
Log log = logService.getOne(wrapper1);
if (log == null) {
System.out.println(devicename);
System.out.println(ltime);
Log log1 = new Log();
log1.setMessage(devicename);
log1.setLtime(ltime);
log1.setIdentity("1");
logService.save(log1);
}
}
if(status.equals("EV_OFFLINE")){
deviceService.updateDevice1("0",devicename);
}
// 将获取的json数据封装一层,然后在给返回
JSONObject result = new JSONObject();
result.put("msg", "ok");
result.put("method", "json");
result.put("data", json
没有合适的资源?快使用搜索试试~ 我知道了~
基于JavaScript和Java的水产养殖物联网系统设计源码
共1170个文件
png:465个
js:180个
xml:179个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 124 浏览量
2024-05-27
14:20:14
上传
评论
收藏 23.65MB ZIP 举报
温馨提示
本设计源码提供了一个基于JavaScript和Java的水产养殖物联网系统,包含1171个文件,其中包括465个png图片文件,180个js脚本文件,以及179个xml配置文件。此外,还有95个css样式文件,77个java源文件,以及46个html页面文件。此外,还有17个map文件,14个less样式文件,14个scss样式文件,以及13个woff字体文件。该项目旨在为水产养殖业提供一个高效、便捷的物联网解决方案,支持环境监控、养殖数据管理、预警通知等功能,帮助养殖户更好地管理和使用养殖资源。
资源推荐
资源详情
资源评论
收起资源包目录
基于JavaScript和Java的水产养殖物联网系统设计源码 (1170个子文件)
000000000000000.arff 295KB
000.arff 295KB
dev2.arff 215KB
dev1.arff 52KB
cpu.arff 5KB
contact-lenses.arff 3KB
airline.arff 2KB
weather.nominal.arff 587B
weather.numeric.arff 503B
mvnw.cmd 7KB
layui.css 112KB
layui.css 78KB
skin.css 71KB
skin.css 71KB
skin.min.css 60KB
skin.min.css 59KB
toast.css 59KB
font-awesome.css 37KB
font-awesome.min.css 30KB
loading.css 25KB
skin.mobile.css 24KB
skin.mobile.css 24KB
content.css 24KB
content.inline.css 23KB
content.inline.css 23KB
content.css 23KB
content.min.css 21KB
content.inline.min.css 21KB
content.inline.min.css 21KB
content.min.css 21KB
skin.mobile.min.css 21KB
skin.mobile.min.css 21KB
layuimini.css 20KB
select.css 19KB
wangEditor.css 17KB
wangEditor.min.css 15KB
layer.css 14KB
ui.css 12KB
layout.css 11KB
fui.css 10KB
admin.css 9KB
zyupload-1.0.0.min.css 9KB
icon.css 8KB
iconfont.css 8KB
fui.min.css 7KB
notice.css 7KB
laydate.css 7KB
layer.css 7KB
popover.min.css 7KB
tab.css 6KB
dtree.css 5KB
menu.css 5KB
index.css 4KB
dtreefont.css 4KB
cropper.css 4KB
default.css 4KB
button.css 3KB
frame.css 3KB
main.css 3KB
message.css 2KB
content.css 2KB
content.css 2KB
console1.css 2KB
content.css 2KB
content.css 2KB
table.css 2KB
login.css 2KB
console2.css 2KB
card.css 2KB
loader.css 2KB
content.min.css 2KB
scrollbar.css 1KB
content.min.css 1KB
content.min.css 1KB
nprogress.css 1KB
content.min.css 1KB
form.css 1KB
step.css 1KB
public.css 1KB
code.css 1KB
step.css 1KB
person.css 1KB
tag.css 1KB
base.css 1KB
pear.css 1016B
error.css 915B
skin.shadowdom.css 833B
skin.shadowdom.css 833B
skin.shadowdom.min.css 786B
skin.shadowdom.min.css 786B
content.mobile.css 727B
content.mobile.css 727B
content.mobile.min.css 595B
content.mobile.min.css 595B
result.css 569B
style.css 428B
treetable.css 394B
fullscreen.css 375B
treetable.css 294B
link.css 218B
共 1170 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
沐知全栈开发
- 粉丝: 5108
- 资源: 5025
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功