Browse Source

1.设备扩展redis查询接口

2.预警查询-加入dept过滤
3.新罗算法-查询stream参数修正
dev
时子升 1 week ago
parent
commit
c8747e888d
  1. 49
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
  2. 39
      dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java
  3. 2
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SampleEngineRecordServiceImpl.java
  4. 5
      dk-modules/system/src/main/java/org/dromara/system/controller/system/SysConfigController.java
  5. 1
      dk-modules/system/src/main/java/org/dromara/system/service/ISysConfigService.java
  6. 10
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java

49
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java

@ -44,15 +44,18 @@ import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.enums.DataScopeType;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.resource.api.RemoteMessageService; import org.dromara.resource.api.RemoteMessageService;
import org.dromara.system.api.*; import org.dromara.system.api.*;
import org.dromara.system.api.domain.bo.RemoteNoticeBo; import org.dromara.system.api.domain.bo.RemoteNoticeBo;
import org.dromara.system.api.domain.vo.RemoteAiLabelPostVo; import org.dromara.system.api.domain.vo.RemoteAiLabelPostVo;
import org.dromara.system.api.domain.vo.RemoteDeptVo; import org.dromara.system.api.domain.vo.RemoteDeptVo;
import org.dromara.system.api.domain.vo.RemotePostVo;
import org.dromara.system.api.domain.vo.RemoteUserVo; import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.dromara.business.domain.BusinessAlertConstructInfoOss; import org.dromara.business.domain.BusinessAlertConstructInfoOss;
import org.dromara.business.mapper.BusinessAlertConstructInfoOssMapper; import org.dromara.business.mapper.BusinessAlertConstructInfoOssMapper;
import org.dromara.system.api.model.RoleDTO;
import org.dromara.workflow.api.RemoteWorkflowService; import org.dromara.workflow.api.RemoteWorkflowService;
import org.dromara.workflow.api.domain.RemoteStartProcess; import org.dromara.workflow.api.domain.RemoteStartProcess;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@ -131,6 +134,12 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
@DubboReference @DubboReference
private RemoteDeptService remoteDeptService; private RemoteDeptService remoteDeptService;
@DubboReference
RemotePostService remotePostService;
@DubboReference(timeout = 30000)
RemoteDataScopeService remoteDataScopeService;
/** /**
* 新增预警任务 * 新增预警任务
@ -724,8 +733,48 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
} }
private void createPermissions(BusinessAlertBo businessAlertBo) {
try {
RoleDTO roleDTO = LoginHelper.getLoginUser().getRoles().getFirst();
//自定义权限
if (roleDTO.getDataScope().equalsIgnoreCase(DataScopeType.CUSTOM.getCode())){
String roleCustom = remoteDataScopeService.getRoleCustom(roleDTO.getRoleId());
if (roleCustom.equalsIgnoreCase("-1")){
businessAlertBo.setDeptIdList(ListUtil.empty());
}else {
businessAlertBo.setDeptIdList(Arrays.stream(roleCustom.split(","))
.map(Long::parseLong)
.collect(Collectors.toList()));
}
} else if (roleDTO.getDataScope().equalsIgnoreCase(DataScopeType.DEPT_AND_CHILD.getCode())) {
//部门及其以下
String deptAndChild = remoteDataScopeService.getDeptAndChild(LoginHelper.getDeptId());
if (deptAndChild.equalsIgnoreCase("-1")){
businessAlertBo.setDeptIdList(ListUtil.empty());
}else {
businessAlertBo.setDeptIdList(Arrays.stream(deptAndChild.split(","))
.map(Long::parseLong)
.collect(Collectors.toList()));
}
} else if (roleDTO.getDataScope().equalsIgnoreCase(DataScopeType.DEPT.getCode())) {
//本部门
businessAlertBo.setDeptIdList(List.of(LoginHelper.getDeptId()));
}
} catch (Exception e) {
businessAlertBo.setDeptIdList(ListUtil.empty());
log.error(e.getMessage(),e);
}
}
@Override @Override
public Map<String,Object> listAlert(BusinessAlertBo businessAlertBo) { public Map<String,Object> listAlert(BusinessAlertBo businessAlertBo) {
//构建查询数据权限 ()
createPermissions(businessAlertBo);
Map<String,Object> result = new HashMap<>(); Map<String,Object> result = new HashMap<>();
//生成近一周开始时间、结束时间 //生成近一周开始时间、结束时间
List<String> dayList = getLastSixDays(); List<String> dayList = getLastSixDays();

39
dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java

@ -2,11 +2,15 @@ package org.dromara.sample.manage.controller;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.common.json.utils.JsonUtils; import org.dromara.common.json.utils.JsonUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.redis.config.RedisConst;
import org.dromara.common.redis.utils.RedisOpsUtils;
import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.redis.utils.RedisUtils;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.sdk.cloudapi.device.OsdDock; import org.dromara.common.sdk.cloudapi.device.OsdDock;
@ -27,10 +31,8 @@ import org.dromara.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList; import java.util.*;
import java.util.Collection; import java.util.stream.Collectors;
import java.util.List;
import java.util.Optional;
/** /**
* @author sean.zhou * @author sean.zhou
@ -63,6 +65,35 @@ public class DeviceController {
return HttpResultResponse.success(devicesList); return HttpResultResponse.success(devicesList);
} }
@GetMapping("/{workspace_id}/devices/redis")
@Operation(summary = "获取一个工作区中所有在线设备的列表。", description = "获取一个工作区中所有在线设备的列表")
public HttpResultResponse<JSONObject> getDeviceRedis(@PathVariable("workspace_id") String workspaceId,
@RequestParam(name = "nickname",required = false) String nickname,
@RequestParam(name = "proIds",required = false) List<Integer> proIds) {
/* Set<String> hmsMap = deviceRedisService.getAllHmsKeys("1581F6Q8D245R00GZ6DW");
// 读取整个 list
List<String> list = RedisUtils.getCacheListRange("hms:1581F6Q8D245R00GZ6DW", 0, -1); //list data
System.out.println(list);
RedisUtils.keys("osd:*");//--正常
RedisUtils.getCacheObject("osd:7CTDM7H00BQ6W3");//--正常
//查询osd数据
RedisOpsUtils.getAllKeys("osd:*");//--正常
RedisOpsUtils.get("osd:7CTDM7H00BQ6W3");//--正常
Object osdDockObj = RedisOpsUtils.get("osd:8UUXN2B00A00SK");
RedisOpsUtils.listGetAll("osd:7CTDM7H00BQ6W3").stream().map(String::valueOf).collect(Collectors.toSet());*/
JSONObject resJsonObject = new JSONObject();
Set<String> osdKeys = RedisOpsUtils.getAllKeys(RedisConst.OSD_PREFIX+"*");
for (String osdKey : osdKeys) {
Object osdObj = RedisOpsUtils.get(osdKey);
resJsonObject.put(osdKey.replaceFirst(RedisConst.OSD_PREFIX,""), osdObj);
}
return HttpResultResponse.success(resJsonObject);
}
//查找设备列表-简版 //查找设备列表-简版
@GetMapping("/{workspace_id}/devices/simple") @GetMapping("/{workspace_id}/devices/simple")

2
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SampleEngineRecordServiceImpl.java

@ -189,7 +189,7 @@ public class SampleEngineRecordServiceImpl implements ISampleEngineRecordService
// String ip = remoteConfigService.selectStreamIp(); // String ip = remoteConfigService.selectStreamIp();
String ip = remoteConfigFeign.getConfigKey("stream"); String ip = remoteConfigFeign.getConfigKey("stream");
System.out.println(ip); System.out.println(ip);
ip = "121.237.182.235";//服务器使用ip 【测试】 // ip = "121.237.182.235";//服务器使用ip 【测试】
String md5 = Md5Utils.hash("xuzhou_ai"); //获取token + 设置请求Header和Body(如JSON) String md5 = Md5Utils.hash("xuzhou_ai"); //获取token + 设置请求Header和Body(如JSON)
JSONObject jsonObj = new JSONObject(); JSONObject jsonObj = new JSONObject();
jsonObj.put("username", sanitize("xuzhou_ai")); // sanitize函数见下文 jsonObj.put("username", sanitize("xuzhou_ai")); // sanitize函数见下文

5
dk-modules/system/src/main/java/org/dromara/system/controller/system/SysConfigController.java

@ -73,9 +73,10 @@ public class SysConfigController extends BaseController {
return R.ok("操作成功", configService.selectConfigByKey(configKey)); return R.ok("操作成功", configService.selectConfigByKey(configKey));
} }
//feign查询配置key,直接从数据库读取最新数据,跳过缓存,避免异常
@GetMapping(value = "/configKeyFeign/{configKey}") @GetMapping(value = "/configKeyFeign/{configKey}")
public String getConfigKeyFeign(@PathVariable String configKey) { public String getConfigKeyFeign(@PathVariable String configKey) { //configService.selectConfigByKey("stream")
return configService.selectConfigByKey(configKey); return configService.selectConfigFeignByKey(configKey);
} }
/** /**

1
dk-modules/system/src/main/java/org/dromara/system/service/ISysConfigService.java

@ -90,4 +90,5 @@ public interface ISysConfigService {
boolean selectXingluoAutoSubmit(); boolean selectXingluoAutoSubmit();
String selectConfigFeignByKey(String configKey);
} }

10
dk-modules/system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java

@ -229,4 +229,14 @@ public class SysConfigServiceImpl implements ISysConfigService {
return false; return false;
} }
@Override
public String selectConfigFeignByKey(String configKey) {
SysConfig retConfig = baseMapper.selectOne(new LambdaQueryWrapper<SysConfig>()
.eq(SysConfig::getConfigKey, configKey));
if (ObjectUtil.isNotNull(retConfig)) {
return retConfig.getConfigValue();
}
return StringUtils.EMPTY;
}
} }

Loading…
Cancel
Save