完成协议配置下发\告警解析中微信小程序消息推送\短信验证码\小程序各个相关接口\工单与意见反馈增加用户id
parent
f9a2bcb34a
commit
5c9559de51
@ -0,0 +1,106 @@
|
||||
/*
|
||||
*
|
||||
* * | Licensed 未经许可不能去掉「OPENIITA」相关版权
|
||||
* * +----------------------------------------------------------------------
|
||||
* * | Author: xw2sy@163.com
|
||||
* * +----------------------------------------------------------------------
|
||||
*
|
||||
* Copyright [2024] [OPENIITA]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* /
|
||||
*/
|
||||
package cc.iotkit.manager.controller;
|
||||
|
||||
import cc.iotkit.common.api.PageRequest;
|
||||
import cc.iotkit.common.api.Paging;
|
||||
import cc.iotkit.common.api.Request;
|
||||
import cc.iotkit.common.satoken.utils.AuthUtil;
|
||||
import cc.iotkit.common.satoken.utils.LoginHelper;
|
||||
import cc.iotkit.data.config.TenantContext;
|
||||
import cc.iotkit.data.manager.IAlertRecordData;
|
||||
import cc.iotkit.data.manager.IDeviceInfoData;
|
||||
import cc.iotkit.data.manager.IProductData;
|
||||
import cc.iotkit.manager.dto.bo.device.DevicePropertyLogQueryBo;
|
||||
import cc.iotkit.manager.dto.bo.device.DeviceQueryBo;
|
||||
import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInfoVo;
|
||||
import cc.iotkit.manager.model.stats.MainStats;
|
||||
import cc.iotkit.manager.service.AlertService;
|
||||
import cc.iotkit.manager.service.DeviceCtrlService;
|
||||
import cc.iotkit.manager.service.IDeviceManagerService;
|
||||
import cc.iotkit.manager.service.IProductService;
|
||||
import cc.iotkit.model.alert.AlertRecord;
|
||||
import cc.iotkit.model.device.DeviceInfo;
|
||||
import cc.iotkit.model.device.message.DeviceProperty;
|
||||
import cc.iotkit.temporal.IThingModelMessageData;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Api(tags = {"小程序-告警"})
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/xcxAlert")
|
||||
public class XcxAlertController {
|
||||
|
||||
@Autowired
|
||||
private AlertService alertService;
|
||||
@Autowired
|
||||
private IDeviceManagerService deviceServiceImpl;
|
||||
@ApiOperation("查询告警消息分页")
|
||||
@PostMapping("/selectAlertRecordPage")
|
||||
public Paging<AlertRecord> selectAlertRecordPage(@RequestBody @Validated PageRequest<AlertRecord> request) {
|
||||
return alertService.selectAlertRecordPage(request);
|
||||
}
|
||||
@ApiOperation("事件列表分页-最新的数据")
|
||||
@PostMapping("/detail")
|
||||
public List<DeviceInfo> getDetail(@RequestBody @Validated PageRequest<DeviceQueryBo> pageRequest) {
|
||||
/* PageRequest<DeviceQueryBo> pageRequest = new PageRequest<>();
|
||||
pageRequest.setPageNum(1);
|
||||
pageRequest.setPageSize(-1);*/
|
||||
DeviceQueryBo deviceQueryBo =new DeviceQueryBo();
|
||||
deviceQueryBo.setUid(AuthUtil.getUserId());
|
||||
pageRequest.setData(deviceQueryBo);
|
||||
Paging<DeviceInfoVo> paging = deviceServiceImpl.getDevices(pageRequest);
|
||||
List<DeviceInfo> list = new ArrayList<>();
|
||||
for (int i = 0; i < paging.getRows().size(); i++) {
|
||||
DeviceInfo devInfo = deviceServiceImpl.getDetail(paging.getRows().get(i).getDeviceId());
|
||||
list.add(devInfo);
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
@ApiOperation("单个设备事件历史数据分页")
|
||||
@PostMapping("/deviceProperty/log/list")
|
||||
public List<DeviceProperty> getPropertyHistory(@Validated @RequestBody
|
||||
Request<DevicePropertyLogQueryBo> query) {
|
||||
DevicePropertyLogQueryBo data = query.getData();
|
||||
String deviceId = data.getDeviceId();
|
||||
String name = data.getName();
|
||||
long start = data.getStart();
|
||||
long end = data.getEnd();
|
||||
return deviceServiceImpl.getPropertyHistory(deviceId, name, start, end, 10000);
|
||||
}
|
||||
}
|
@ -0,0 +1,332 @@
|
||||
/*
|
||||
*
|
||||
* * | Licensed 未经许可不能去掉「OPENIITA」相关版权
|
||||
* * +----------------------------------------------------------------------
|
||||
* * | Author: xw2sy@163.com
|
||||
* * +----------------------------------------------------------------------
|
||||
*
|
||||
* Copyright [2024] [OPENIITA]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* /
|
||||
*/
|
||||
package cc.iotkit.manager.controller;
|
||||
|
||||
import cc.iotkit.common.api.PageRequest;
|
||||
import cc.iotkit.common.api.Paging;
|
||||
import cc.iotkit.common.api.Request;
|
||||
import cc.iotkit.common.exception.BizException;
|
||||
import cc.iotkit.common.satoken.utils.AuthUtil;
|
||||
import cc.iotkit.common.satoken.utils.LoginHelper;
|
||||
import cc.iotkit.common.thing.ThingModelMessage;
|
||||
import cc.iotkit.common.validate.QueryGroup;
|
||||
import cc.iotkit.data.config.TenantContext;
|
||||
import cc.iotkit.data.manager.IAlertRecordData;
|
||||
import cc.iotkit.data.manager.IDeviceInfoData;
|
||||
import cc.iotkit.data.manager.IProductData;
|
||||
import cc.iotkit.manager.dto.bo.channel.ChannelTemplateBo;
|
||||
import cc.iotkit.manager.dto.bo.device.*;
|
||||
import cc.iotkit.manager.dto.bo.deviceconfig.DeviceConfigAddBo;
|
||||
import cc.iotkit.manager.dto.bo.product.ProductBo;
|
||||
import cc.iotkit.manager.dto.bo.ruleinfo.RuleInfoBo;
|
||||
import cc.iotkit.manager.dto.vo.channel.ChannelTemplateVo;
|
||||
import cc.iotkit.manager.dto.vo.deviceconfig.DeviceConfigVo;
|
||||
import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInfoVo;
|
||||
import cc.iotkit.manager.dto.vo.deviceinfo.ParentDeviceVo;
|
||||
import cc.iotkit.manager.dto.vo.product.ProductVo;
|
||||
import cc.iotkit.manager.dto.vo.ruleinfo.RuleInfoVo;
|
||||
import cc.iotkit.manager.dto.vo.thingmodel.ThingModelVo;
|
||||
import cc.iotkit.manager.model.stats.MainStats;
|
||||
import cc.iotkit.manager.service.*;
|
||||
import cc.iotkit.model.InvokeResult;
|
||||
import cc.iotkit.model.alert.AlertConfig;
|
||||
import cc.iotkit.model.device.DeviceConfig;
|
||||
import cc.iotkit.model.device.DeviceInfo;
|
||||
import cc.iotkit.model.device.message.DeviceProperty;
|
||||
import cc.iotkit.model.product.Product;
|
||||
import cc.iotkit.temporal.IThingModelMessageData;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
@Api(tags = {"小程序-我的设备"})
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/xcxDevice")
|
||||
public class XcxDeviceController {
|
||||
|
||||
|
||||
@Autowired
|
||||
IProductService productService;
|
||||
@Autowired
|
||||
IRuleEngineService ruleEngineService;
|
||||
@Autowired
|
||||
private DeviceCtrlService deviceCtrlService;
|
||||
@Autowired
|
||||
private IDeviceManagerService deviceServiceImpl;
|
||||
|
||||
@Autowired
|
||||
private IProductData productData;
|
||||
|
||||
@Resource
|
||||
private NotifyService notifyService;
|
||||
@Autowired
|
||||
private AlertService alertService;
|
||||
/**
|
||||
* 获取部门树列表
|
||||
*/
|
||||
/* @ApiOperation("获取部门树列表")
|
||||
|
||||
@PostMapping("/deptTree")
|
||||
public List<Tree<Long>> deptTree(@RequestBody @Validated(QueryGroup.class) Request<SysDeptBo> reqDept) {
|
||||
|
||||
return deptService.selectDeptTreeList(reqDept.getData());
|
||||
}*/
|
||||
|
||||
|
||||
@ApiOperation(value = "设备列表", notes = "设备列表", httpMethod = "POST")
|
||||
@PostMapping("/list")
|
||||
public Paging<DeviceInfoVo> getDevices(@Validated @RequestBody PageRequest<DeviceQueryBo> pageRequest) {
|
||||
if(!LoginHelper.isSuperAdmin()){
|
||||
String uid = AuthUtil.getUserId();
|
||||
pageRequest.getData().setUid(uid);
|
||||
}
|
||||
Paging<DeviceInfoVo> d= deviceServiceImpl.getDevices(pageRequest);
|
||||
return deviceServiceImpl.getDevices(pageRequest);
|
||||
}
|
||||
|
||||
/* @ApiOperation(value = "创建设备")
|
||||
@SaCheckPermission("iot:device:add")
|
||||
@PostMapping("/add")
|
||||
public boolean createDevice(@RequestBody @Validated Request<DeviceInfoBo> bo) {
|
||||
return deviceServiceImpl.addDevice(bo.getData());
|
||||
}*/
|
||||
|
||||
@ApiOperation(value = "保存与绑定设备")
|
||||
@PostMapping("/save")
|
||||
public boolean saveDevice(@RequestBody @Validated Request<DeviceInfoBo> bo) {
|
||||
|
||||
return deviceServiceImpl.editBandDeviceInfo(bo.getData());
|
||||
}
|
||||
@ApiOperation("设备解绑")
|
||||
// @SaCheckPermission("iot:device:edit")
|
||||
@PostMapping("/unbind")
|
||||
public boolean unbindDevice(@Validated @RequestBody Request<String> request) {
|
||||
return deviceServiceImpl.unbindDevice(request.getData());
|
||||
}
|
||||
@ApiOperation(value = "获取子设备", notes = "获取子设备")
|
||||
// @SaCheckPermission("iot:device:query")
|
||||
@PostMapping("/children/list")
|
||||
public List<DeviceInfoVo> getChildren(@Validated @RequestBody PageRequest<String> request) {
|
||||
String deviceId = request.getData();
|
||||
return deviceServiceImpl.selectChildrenPageList(deviceId);
|
||||
}
|
||||
|
||||
@ApiOperation("获取网关设备")
|
||||
// @SaCheckPermission("iot:device:query")
|
||||
@PostMapping("/getParentDevices")
|
||||
public List<ParentDeviceVo> getParentDevices() {
|
||||
return deviceServiceImpl.getParentDevices();
|
||||
}
|
||||
|
||||
@ApiOperation("获取设备详情")
|
||||
// @SaCheckPermission("iot:device:query")
|
||||
@PostMapping("/detail")
|
||||
public DeviceInfo getDetail(@RequestBody @Validated Request<String> request) {
|
||||
DeviceInfo deviceInfo = deviceServiceImpl.getDetail(request.getData());
|
||||
Product product= productData.findByProductKey(deviceInfo.getProductKey());
|
||||
deviceInfo.setProductName(product.getName());
|
||||
return deviceInfo;
|
||||
}
|
||||
|
||||
/* @ApiOperation("删除设备")
|
||||
@SaCheckPermission("iot:device:remove")
|
||||
@PostMapping("/delete")
|
||||
public boolean deleteDevice(@Validated @RequestBody Request<String> request) {
|
||||
return deviceServiceImpl.deleteDevice(request.getData());
|
||||
}*/
|
||||
|
||||
@ApiOperation("设备物模型日志")
|
||||
// @SaCheckPermission("iot:deviceLog:query")
|
||||
@PostMapping("/deviceLogs/list")
|
||||
public Paging<ThingModelMessage> logs(@Validated(QueryGroup.class) @RequestBody PageRequest<DeviceLogQueryBo> request) {
|
||||
return deviceServiceImpl.logs(request);
|
||||
}
|
||||
|
||||
@ApiOperation("获取设备属性历史数据")
|
||||
// @SaCheckPermission("iot:deviceLog:query")
|
||||
@PostMapping("/deviceProperty/log/list")
|
||||
public List<DeviceProperty> getPropertyHistory(@Validated @RequestBody
|
||||
Request<DevicePropertyLogQueryBo> query) {
|
||||
DevicePropertyLogQueryBo data = query.getData();
|
||||
String deviceId = data.getDeviceId();
|
||||
String name = data.getName();
|
||||
long start = data.getStart();
|
||||
long end = data.getEnd();
|
||||
return deviceServiceImpl.getPropertyHistory(deviceId, name, start, end, 10000);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ApiOperation("添加标签")
|
||||
// @SaCheckPermission("iot:device:edit")
|
||||
@PostMapping("/tag/add")
|
||||
public boolean addTag(@Validated @RequestBody Request<DeviceTagAddBo> bo) {
|
||||
return deviceServiceImpl.addTag(bo.getData());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存设备配置
|
||||
*/
|
||||
@ApiOperation(value = "保存设备配置")
|
||||
//@SaCheckPermission("iot:device:edit")
|
||||
@PostMapping("/config/save")
|
||||
public boolean saveConfig(@Validated @RequestBody Request<DeviceConfigAddBo> request) {
|
||||
DeviceConfig data = request.getData().to(DeviceConfig.class);
|
||||
return deviceServiceImpl.saveConfig(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设备配置
|
||||
*/
|
||||
@ApiOperation(value = "获取设备配置")
|
||||
// @SaCheckPermission("iot:device:query")
|
||||
@PostMapping("/config/get")
|
||||
public DeviceConfigVo getConfig(@Validated @RequestBody Request<String> request) {
|
||||
String deviceId = request.getData();
|
||||
return deviceServiceImpl.getConfig(deviceId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备配置下发
|
||||
*/
|
||||
@ApiOperation(value = "设备配置下发")
|
||||
//@SaCheckPermission("iot:device:ctrl")
|
||||
@PostMapping("/config/send")
|
||||
public InvokeResult sendConfig(@Validated @RequestBody Request<String> bo) {
|
||||
String deviceId = bo.getData();
|
||||
return new InvokeResult(deviceCtrlService.sendConfig(deviceId));
|
||||
}
|
||||
/*
|
||||
* 规则-告警配置
|
||||
* **********************************************************************/
|
||||
@ApiOperation("规则列表")
|
||||
@PostMapping("/rulelist")
|
||||
public Paging<RuleInfoVo> rules(
|
||||
@Validated @RequestBody
|
||||
PageRequest<RuleInfoBo> request
|
||||
) {
|
||||
return ruleEngineService.selectPageList(request);
|
||||
}
|
||||
@ApiOperation("产品列表")
|
||||
//@SaCheckPermission("iot:product:query")
|
||||
@PostMapping("/productlist")
|
||||
public Paging<ProductVo> getProducts(@Validated(QueryGroup.class) @RequestBody
|
||||
PageRequest<ProductBo> request) {
|
||||
return productService.selectPageList(request);
|
||||
}
|
||||
@ApiOperation("查看产品属性")
|
||||
//@SaCheckPermission("iot:thingModel:query")
|
||||
@PostMapping("/getThingModelByProductKey")
|
||||
public ThingModelVo getThingModelByProductKey(@RequestBody @Validated Request<String> request) {
|
||||
return productService.getThingModelByProductKey(request.getData());
|
||||
}
|
||||
@ApiOperation("暂停规则")
|
||||
@PostMapping("/pause")
|
||||
public boolean pauseRule(@Validated @RequestBody Request<String> request) {
|
||||
String ruleId = request.getData();
|
||||
return ruleEngineService.pauseRule(ruleId);
|
||||
}
|
||||
@ApiOperation("恢复规则")
|
||||
@PostMapping("/resume")
|
||||
public boolean resumeRule(@Validated @RequestBody Request<String> request) {
|
||||
String ruleId = request.getData();
|
||||
return ruleEngineService.resumeRule(ruleId);
|
||||
}
|
||||
@ApiOperation("保存规则")
|
||||
@PostMapping("/ruleEdit")
|
||||
public boolean saveRule(@RequestBody @Validated Request<RuleInfoBo> ruleInfoBo) {
|
||||
return ruleEngineService.saveRule(ruleInfoBo.getData());
|
||||
}
|
||||
@ApiOperation("删除规则")
|
||||
//@SaCheckPermission("iot:rule:remove")
|
||||
@PostMapping("/ruledelete")
|
||||
public boolean deleteRule(@Validated @RequestBody Request<String> request) {
|
||||
String ruleId = request.getData();
|
||||
return ruleEngineService.deleteRule(ruleId);
|
||||
}
|
||||
@ApiOperation("获取通道模板列表")
|
||||
//@SaCheckPermission("iot:channel:query")
|
||||
@PostMapping("/channel/template/getList")
|
||||
public Paging<ChannelTemplateVo> getChannelTemplateList(@RequestBody @Validated(QueryGroup.class) PageRequest<ChannelTemplateBo> request) {
|
||||
//方案1 admin设置好之后,过滤租户id,所有租户都可以用该模版.
|
||||
return notifyService.getChannelTemplateList(request);
|
||||
}
|
||||
|
||||
@ApiOperation("新增告警中心配置")
|
||||
// @SaCheckPermission("iot:alertConfig:add")
|
||||
@PostMapping("/createAlertConfig")
|
||||
public AlertConfig createAlertConfig(@RequestBody @Validated Request<AlertConfig> request) {
|
||||
if(!LoginHelper.isSuperAdmin()){
|
||||
String uid = AuthUtil.getUserId();
|
||||
request.getData().setUid(uid);
|
||||
}
|
||||
List<AlertConfig> list= alertService.getAlertConfig(request.getData());
|
||||
if(ObjectUtils.isNotEmpty(list)){
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
if(!list.get(i).getRuleInfoId().equals(request.getData().getRuleInfoId())){
|
||||
throw new BizException("该规则模版已存在");
|
||||
}
|
||||
}
|
||||
}
|
||||
return alertService.createAlertConfig(request.getData());
|
||||
}
|
||||
|
||||
@ApiOperation("查询告警中心配置分页")
|
||||
@PostMapping("/selectAlertConfigPage")
|
||||
public Paging<AlertConfig> selectAlertConfigPage(@RequestBody @Validated PageRequest<AlertConfig> request) {
|
||||
if(!LoginHelper.isSuperAdmin()){
|
||||
String uid = AuthUtil.getUserId();
|
||||
request.getData().setUid(uid);
|
||||
}
|
||||
return alertService.selectAlertConfigPage(request);
|
||||
}
|
||||
@ApiOperation("删除告警中心配置")
|
||||
// @SaCheckPermission("iot:alertConfig:remove")
|
||||
@PostMapping("/deleteAlertConfigById")
|
||||
public void deleteAlertConfigById(@RequestBody @Validated Request<Long> request) {
|
||||
alertService.deleteAlertConfigById(request.getData());
|
||||
}
|
||||
/* @ApiOperation("编辑告警中心配置")
|
||||
// @SaCheckPermission("iot:alertConfig:edit")
|
||||
@PostMapping("/updateAlertConfig")
|
||||
public AlertConfig updateAlertConfig(@RequestBody @Validated Request<AlertConfig> request) {
|
||||
return alertService.updateAlertConfig(request.getData());
|
||||
}*/
|
||||
}
|
@ -0,0 +1,155 @@
|
||||
/*
|
||||
*
|
||||
* * | Licensed 未经许可不能去掉「OPENIITA」相关版权
|
||||
* * +----------------------------------------------------------------------
|
||||
* * | Author: xw2sy@163.com
|
||||
* * +----------------------------------------------------------------------
|
||||
*
|
||||
* Copyright [2024] [OPENIITA]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* /
|
||||
*/
|
||||
package cc.iotkit.manager.controller;
|
||||
|
||||
import cc.iotkit.common.api.PageRequest;
|
||||
import cc.iotkit.common.api.Paging;
|
||||
import cc.iotkit.common.api.Request;
|
||||
import cc.iotkit.common.api.Response;
|
||||
import cc.iotkit.common.excel.utils.ExcelUtil;
|
||||
import cc.iotkit.common.satoken.utils.AuthUtil;
|
||||
import cc.iotkit.common.satoken.utils.LoginHelper;
|
||||
import cc.iotkit.common.thing.ThingModelMessage;
|
||||
import cc.iotkit.common.validate.QueryGroup;
|
||||
import cc.iotkit.data.config.TenantContext;
|
||||
import cc.iotkit.data.manager.IAlertRecordData;
|
||||
import cc.iotkit.data.manager.ICategoryData;
|
||||
import cc.iotkit.data.manager.IDeviceInfoData;
|
||||
import cc.iotkit.data.manager.IProductData;
|
||||
import cc.iotkit.manager.dto.bo.device.*;
|
||||
import cc.iotkit.manager.dto.bo.deviceconfig.DeviceConfigAddBo;
|
||||
import cc.iotkit.manager.dto.bo.devicegroup.DeviceAddGroupBo;
|
||||
import cc.iotkit.manager.dto.bo.devicegroup.DeviceGroupBo;
|
||||
import cc.iotkit.manager.dto.bo.thingmodel.ThingModelMessageBo;
|
||||
import cc.iotkit.manager.dto.vo.deviceconfig.DeviceConfigVo;
|
||||
import cc.iotkit.manager.dto.vo.devicegroup.DeviceGroupImportVo;
|
||||
import cc.iotkit.manager.dto.vo.devicegroup.DeviceGroupVo;
|
||||
import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInfoImportVo;
|
||||
import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInfoVo;
|
||||
import cc.iotkit.manager.dto.vo.deviceinfo.ParentDeviceVo;
|
||||
import cc.iotkit.manager.dto.vo.thingmodel.ThingModelVo;
|
||||
import cc.iotkit.manager.model.stats.MainStats;
|
||||
import cc.iotkit.manager.service.AlertService;
|
||||
import cc.iotkit.manager.service.DeviceCtrlService;
|
||||
import cc.iotkit.manager.service.IDeviceManagerService;
|
||||
import cc.iotkit.manager.service.IProductService;
|
||||
import cc.iotkit.model.InvokeResult;
|
||||
import cc.iotkit.model.alert.AlertRecord;
|
||||
import cc.iotkit.model.device.DeviceConfig;
|
||||
import cc.iotkit.model.device.DeviceGroup;
|
||||
import cc.iotkit.model.device.DeviceInfo;
|
||||
import cc.iotkit.model.device.message.DeviceProperty;
|
||||
import cc.iotkit.temporal.IThingModelMessageData;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.context.request.async.DeferredResult;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Api(tags = {"小程序-首页"})
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/xcxIndex")
|
||||
public class XcxIndexController {
|
||||
|
||||
|
||||
@Autowired
|
||||
IProductService productService;
|
||||
|
||||
@Autowired
|
||||
private DeviceCtrlService deviceCtrlService;
|
||||
@Autowired
|
||||
private IDeviceManagerService deviceServiceImpl;
|
||||
@Autowired
|
||||
private cc.iotkit.data.manager.ICategoryData ICategoryData;
|
||||
@Autowired
|
||||
@Qualifier("productDataCache")
|
||||
private IProductData productData;
|
||||
@Autowired
|
||||
@Qualifier("deviceInfoDataCache")
|
||||
private IDeviceInfoData deviceInfoData;
|
||||
@Autowired
|
||||
private IThingModelMessageData thingModelMessageData;
|
||||
@Autowired
|
||||
private IAlertRecordData iAlertRecordData;
|
||||
|
||||
@PostMapping("/main")
|
||||
public MainStats getMainStats() {
|
||||
MainStats mainStats = new MainStats();
|
||||
String uid = AuthUtil.getUserId();
|
||||
log.info("Thread {} - TenantFilter disabled: {}",
|
||||
Thread.currentThread().getId(),
|
||||
TenantContext.isFilterDisabled());
|
||||
long now = System.currentTimeMillis();
|
||||
mainStats.setDeviceTotal(deviceInfoData.countByUid(uid));
|
||||
// mainStats.setOnlineTotal(deviceInfoData.countOnlineByUid(uid));
|
||||
/* mainStats.setCategoryTotal(ICategoryData.count());
|
||||
mainStats.setProductTotal(productData.count());
|
||||
mainStats.setDeviceTotal(deviceInfoData.count());*/
|
||||
|
||||
DeviceInfo condition = new DeviceInfo();
|
||||
DeviceInfo.State state = new DeviceInfo.State();
|
||||
state.setOnline(true);
|
||||
|
||||
condition.setState(state);
|
||||
condition.setUid(uid);
|
||||
mainStats.setOnlineTotal(deviceInfoData.findAllByCondition(condition).size());
|
||||
mainStats.setAlertCount(iAlertRecordData.countByUid(uid));
|
||||
//上报数据统计
|
||||
/* mainStats.setReportDataStats(thingModelMessageData.getDeviceMessageStatsWithUid(uid, now - 48 * 3600 * 1000, now));
|
||||
//产品数量统计
|
||||
mainStats.setDeviceStatsOfCategory(deviceInfoData.getDeviceStatsByCategory(uid));
|
||||
*/
|
||||
|
||||
return mainStats;
|
||||
}
|
||||
@PostMapping("/getAlertRecord")
|
||||
public Paging<AlertRecord> selectAlertConfigPage(@Validated @RequestBody PageRequest<AlertRecord> request) {
|
||||
if(!LoginHelper.isSuperAdmin()){
|
||||
String uid = AuthUtil.getUserId();
|
||||
request.getData().setUid(uid);
|
||||
}
|
||||
Paging<AlertRecord> alertRecordPage = iAlertRecordData.selectAlertConfigPage(request);
|
||||
return alertRecordPage;
|
||||
}
|
||||
@ApiOperation("获取设备属性历史数据")
|
||||
@PostMapping("/deviceProperty/log/list")
|
||||
public List<DeviceProperty> getPropertyHistory(@Validated @RequestBody
|
||||
Request<DevicePropertyLogQueryBo> query) {
|
||||
DevicePropertyLogQueryBo data = query.getData();
|
||||
String deviceId = data.getDeviceId();
|
||||
String name = data.getName();
|
||||
long start = data.getStart();
|
||||
long end = data.getEnd();
|
||||
return deviceServiceImpl.getPropertyHistory(deviceId, name, start, end, 10000);
|
||||
}
|
||||
}
|
@ -0,0 +1,162 @@
|
||||
/*
|
||||
*
|
||||
* * | Licensed 未经许可不能去掉「OPENIITA」相关版权
|
||||
* * +----------------------------------------------------------------------
|
||||
* * | Author: xw2sy@163.com
|
||||
* * +----------------------------------------------------------------------
|
||||
*
|
||||
* Copyright [2024] [OPENIITA]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* /
|
||||
*/
|
||||
package cc.iotkit.manager.controller;
|
||||
|
||||
import cc.iotkit.common.api.PageRequest;
|
||||
import cc.iotkit.common.api.Paging;
|
||||
import cc.iotkit.common.api.Request;
|
||||
import cc.iotkit.common.satoken.utils.AuthUtil;
|
||||
import cc.iotkit.common.satoken.utils.LoginHelper;
|
||||
import cc.iotkit.data.config.TenantContext;
|
||||
import cc.iotkit.data.manager.IAlertRecordData;
|
||||
import cc.iotkit.data.manager.IDeviceInfoData;
|
||||
import cc.iotkit.data.manager.IProductData;
|
||||
import cc.iotkit.manager.dto.bo.device.DevicePropertyLogQueryBo;
|
||||
import cc.iotkit.manager.dto.vo.FeedBackEvaluation.FeedBackEvaluationPageReqVO;
|
||||
import cc.iotkit.manager.dto.vo.FeedBackEvaluation.FeedBackEvaluationSaveReqVO;
|
||||
import cc.iotkit.manager.dto.vo.worder.WorderPageReqVO;
|
||||
import cc.iotkit.manager.dto.vo.worder.WorderSaveReqVO;
|
||||
import cc.iotkit.manager.model.stats.MainStats;
|
||||
import cc.iotkit.manager.service.*;
|
||||
import cc.iotkit.model.FeedBackEvaluation.FeedBackEvaluationDO;
|
||||
import cc.iotkit.model.alert.AlertRecord;
|
||||
import cc.iotkit.model.device.DeviceInfo;
|
||||
import cc.iotkit.model.device.message.DeviceProperty;
|
||||
import cc.iotkit.model.worder.WorderDO;
|
||||
import cc.iotkit.temporal.IThingModelMessageData;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
@Api(tags = {"小程序-我的"})
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/xcxMyCenter")
|
||||
public class XcxMyCenterController {
|
||||
@Autowired
|
||||
private FeedBackEvaluationService feedBackEvaluationService;
|
||||
@Resource
|
||||
private IWorderService worderService;
|
||||
@PostMapping("/feedadd")
|
||||
//@Operation(summary = "创建意见反馈评价")
|
||||
//@PreAuthorize("@ss.hasPermission('installEqu:feed-back-evaluation:create')")
|
||||
public Long createFeedBackEvaluation(@Valid @RequestBody Request<FeedBackEvaluationSaveReqVO> createReqVO) {
|
||||
return feedBackEvaluationService.createFeedBackEvaluation(createReqVO.getData());
|
||||
}
|
||||
|
||||
@PostMapping("/feededit")
|
||||
//@Operation(summary = "更新意见反馈评价")
|
||||
// @PreAuthorize("@ss.hasPermission('installEqu:feed-back-evaluation:update')")
|
||||
public Boolean updateFeedBackEvaluation(@Valid @RequestBody Request<FeedBackEvaluationSaveReqVO> updateReqVO) {
|
||||
feedBackEvaluationService.updateFeedBackEvaluation(updateReqVO.getData());
|
||||
return true;
|
||||
}
|
||||
|
||||
@PostMapping("/feeddelete")
|
||||
//@Operation(summary = "删除意见反馈评价")
|
||||
//@Parameter(name = "id", description = "编号", required = true)
|
||||
//@PreAuthorize("@ss.hasPermission('installEqu:feed-back-evaluation:delete')")
|
||||
public boolean deleteFeedBackEvaluation(@Validated @RequestBody Request<Long> request) {
|
||||
feedBackEvaluationService.deleteFeedBackEvaluation(request.getData());
|
||||
return true;
|
||||
}
|
||||
|
||||
@PostMapping("/feedgetDetail")
|
||||
//@Operation(summary = "获得意见反馈评价")
|
||||
//@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
//@PreAuthorize("@ss.hasPermission('installEqu:feed-back-evaluation:query')")
|
||||
public FeedBackEvaluationDO getFeedBackEvaluation(@Validated @RequestBody Request<Long> request) {
|
||||
FeedBackEvaluationDO feedBackEvaluation = feedBackEvaluationService.getFeedBackEvaluation(request.getData());
|
||||
return feedBackEvaluation;
|
||||
}
|
||||
|
||||
@PostMapping("/feedlist")
|
||||
//@Operation(summary = "获得意见反馈评价分页")
|
||||
//@PreAuthorize("@ss.hasPermission('installEqu:feed-back-evaluation:query')")
|
||||
public Paging<FeedBackEvaluationDO> getFeedBackEvaluationPage(@RequestBody @Validated PageRequest<FeedBackEvaluationPageReqVO> pageReqVO) {
|
||||
if(!LoginHelper.isSuperAdmin()){
|
||||
String uid = AuthUtil.getUserId();
|
||||
pageReqVO.getData().setCustomerId(Long.valueOf(uid));
|
||||
}
|
||||
Paging<FeedBackEvaluationDO> pageResult = feedBackEvaluationService.getFeedBackEvaluationPage(pageReqVO);
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
@PostMapping("/worderadd")
|
||||
//@Operation(summary = "创建工单")
|
||||
//@PreAuthorize("@ss.hasPermission('installEqu:feed-back-evaluation:create')")
|
||||
public Long createWorder(@Valid @RequestBody Request<WorderSaveReqVO> createReqVO) {
|
||||
return worderService.createWorder(createReqVO.getData());
|
||||
}
|
||||
|
||||
@PostMapping("/worderedit")
|
||||
//@Operation(summary = "更新工单")
|
||||
// @PreAuthorize("@ss.hasPermission('installEqu:feed-back-evaluation:update')")
|
||||
public Boolean updateWorder(@Valid @RequestBody Request<WorderSaveReqVO> updateReqVO) {
|
||||
worderService.updateWorder(updateReqVO.getData());
|
||||
return true;
|
||||
}
|
||||
|
||||
@PostMapping("/worderdelete")
|
||||
//@Operation(summary = "删除工单")
|
||||
//@Parameter(name = "id", description = "编号", required = true)
|
||||
//@PreAuthorize("@ss.hasPermission('installEqu:feed-back-evaluation:delete')")
|
||||
public Boolean deleteWorder(@Validated @RequestBody Request<Long> request) {
|
||||
worderService.deleteWorder(request.getData());
|
||||
return true;
|
||||
}
|
||||
|
||||
@PostMapping("/wordergetDetail")
|
||||
//@Operation(summary = "获得工单")
|
||||
//@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
//@PreAuthorize("@ss.hasPermission('installEqu:feed-back-evaluation:query')")
|
||||
public WorderDO getWorder(@Validated @RequestBody Request<Long> request) {
|
||||
WorderDO worderDO = worderService.getWorder(request.getData());
|
||||
return worderDO;
|
||||
}
|
||||
|
||||
@PostMapping("/worderlist")
|
||||
//@Operation(summary = "获得工单分页")
|
||||
//@PreAuthorize("@ss.hasPermission('installEqu:feed-back-evaluation:query')")
|
||||
public Paging<WorderDO> getWorderPage(@Validated @RequestBody PageRequest<WorderPageReqVO> pageReqVO) {
|
||||
if(!LoginHelper.isSuperAdmin()){
|
||||
String uid = AuthUtil.getUserId();
|
||||
pageReqVO.getData().setCustomerId(Long.valueOf(uid));
|
||||
}
|
||||
Paging<WorderDO> pageResult = worderService.getWorderPage(pageReqVO);
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue