From 986513fe8f00d176a03fdffa4baa968d6453061d Mon Sep 17 00:00:00 2001 From: kira Date: Sat, 6 May 2023 10:50:46 +0800 Subject: [PATCH] =?UTF-8?q?yinruoxi:=201.=E6=96=B0=E5=A2=9E=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1,=E7=94=A8=E4=BA=8E=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E5=BF=83=E8=B7=B3=E6=9B=B4=E6=96=B0=202.=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0controll=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sonar-project.properties | 3 +- .../feign/RemoteDigitalmanService.java | 3 ++ .../api/tenant/feign/RemoteTenantService.java | 9 ++++ .../factory/RemoteTenantFallbackFactory.java | 8 ++++ .../java/com/xueyi/job/task/DgmanTask.java | 43 +++++++++++++++++++ .../controller/DmDigitalmanController.java | 15 ++++++- .../controller/DmModelController.java | 1 + .../controller/DmSkillController.java | 10 ++--- .../service/IDmDigitalmanService.java | 5 +++ .../service/impl/DmDigitalmanServiceImpl.java | 25 ++++++++++- .../service/impl/DmManDeviceServiceImpl.java | 5 +++ .../tenant/controller/TeTenantController.java | 6 +++ 12 files changed, 124 insertions(+), 9 deletions(-) create mode 100644 xueyi-modules/xueyi-job/src/main/java/com/xueyi/job/task/DgmanTask.java diff --git a/sonar-project.properties b/sonar-project.properties index 0f9ecf20..69a0103c 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,6 +1,7 @@ sonar.projectKey=digimeta-MultiSaas sonar.projectName=digimeta-MultiSaas +sonar.sourceEncoding=UTF-8 sonar.projectVersion=0.8 @@ -12,5 +13,5 @@ sonar.java.binaries=. sonar.java.source=1.8 sonar.java.target=1.8 +sonar.modules=xueyi-system,xueyi-message #?????????? -sonar.sourceEncoding=UTF-8 \ No newline at end of file diff --git a/xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/digitalmans/feign/RemoteDigitalmanService.java b/xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/digitalmans/feign/RemoteDigitalmanService.java index 9d8e4b55..1ebe2712 100644 --- a/xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/digitalmans/feign/RemoteDigitalmanService.java +++ b/xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/digitalmans/feign/RemoteDigitalmanService.java @@ -8,6 +8,7 @@ import com.xueyi.system.api.digitalmans.domain.po.DmDigitalmanExtPo; import com.xueyi.system.api.organize.feign.factory.RemoteUserFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestParam; @@ -34,4 +35,6 @@ public interface RemoteDigitalmanService { public R initInner(@RequestParam(value = "snCode") String snCode, @RequestHeader(SecurityConstants.ENTERPRISE_ID) Long enterpriseId, @RequestHeader(SecurityConstants.SOURCE_NAME) String sourceName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + @PostMapping("/man/inner/sync") + public R sync(@RequestHeader(SecurityConstants.ENTERPRISE_ID) Long enterpriseId, @RequestHeader(SecurityConstants.SOURCE_NAME) String sourceName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } \ No newline at end of file diff --git a/xueyi-api/xueyi-api-tenant/src/main/java/com/xueyi/tenant/api/tenant/feign/RemoteTenantService.java b/xueyi-api/xueyi-api-tenant/src/main/java/com/xueyi/tenant/api/tenant/feign/RemoteTenantService.java index fb1ddd34..75b40390 100644 --- a/xueyi-api/xueyi-api-tenant/src/main/java/com/xueyi/tenant/api/tenant/feign/RemoteTenantService.java +++ b/xueyi-api/xueyi-api-tenant/src/main/java/com/xueyi/tenant/api/tenant/feign/RemoteTenantService.java @@ -4,12 +4,17 @@ import com.alibaba.fastjson2.JSONObject; import com.xueyi.common.core.constant.basic.SecurityConstants; import com.xueyi.common.core.constant.basic.ServiceConstants; import com.xueyi.common.core.web.result.R; +import com.xueyi.tenant.api.tenant.domain.dto.TeTenantDto; +import com.xueyi.tenant.api.tenant.domain.po.TeTenantPo; import com.xueyi.tenant.api.tenant.feign.factory.RemoteTenantFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; +import java.util.List; + /** * 租户服务 * @@ -27,4 +32,8 @@ public interface RemoteTenantService { */ @PostMapping("/tenant/register") R registerTenantInfo(@RequestBody JSONObject register, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @GetMapping("/tenant/tenant_list") + R> tenantList(); + } \ No newline at end of file diff --git a/xueyi-api/xueyi-api-tenant/src/main/java/com/xueyi/tenant/api/tenant/feign/factory/RemoteTenantFallbackFactory.java b/xueyi-api/xueyi-api-tenant/src/main/java/com/xueyi/tenant/api/tenant/feign/factory/RemoteTenantFallbackFactory.java index 99473d62..79ca461c 100644 --- a/xueyi-api/xueyi-api-tenant/src/main/java/com/xueyi/tenant/api/tenant/feign/factory/RemoteTenantFallbackFactory.java +++ b/xueyi-api/xueyi-api-tenant/src/main/java/com/xueyi/tenant/api/tenant/feign/factory/RemoteTenantFallbackFactory.java @@ -2,11 +2,14 @@ package com.xueyi.tenant.api.tenant.feign.factory; import com.alibaba.fastjson2.JSONObject; import com.xueyi.common.core.web.result.R; +import com.xueyi.tenant.api.tenant.domain.dto.TeTenantDto; import com.xueyi.tenant.api.tenant.feign.RemoteTenantService; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; +import java.util.List; + /** * 租户服务降级处理 @@ -26,6 +29,11 @@ public class RemoteTenantFallbackFactory implements FallbackFactory> tenantList() { + return null; + } }; } } \ No newline at end of file diff --git a/xueyi-modules/xueyi-job/src/main/java/com/xueyi/job/task/DgmanTask.java b/xueyi-modules/xueyi-job/src/main/java/com/xueyi/job/task/DgmanTask.java new file mode 100644 index 00000000..939e9325 --- /dev/null +++ b/xueyi-modules/xueyi-job/src/main/java/com/xueyi/job/task/DgmanTask.java @@ -0,0 +1,43 @@ +package com.xueyi.job.task; + +import com.xueyi.common.cache.utils.SourceUtil; +import com.xueyi.common.core.utils.core.StrUtil; +import com.xueyi.common.core.web.result.R; +import com.xueyi.system.api.model.Source; +import com.xueyi.tenant.api.tenant.domain.dto.TeTenantDto; +import com.xueyi.tenant.api.tenant.feign.RemoteTenantService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 定时任务调度测试 + * + * @author xueyi + */ +@Component("dgmanTask") +public class DgmanTask { + + @Autowired + RemoteTenantService tenantService; + + public void ryParams(String params) { + System.out.println(StrUtil.format("执行有参方法:参数{}", params)); + } + + public void dgmanMonitor() { + R> listR = tenantService.tenantList(); + if (listR.isFail()) { + System.out.println("租户列表获取失败"); + return; + } + listR.getData().forEach(item->{ + // 获取数据源 + Source source = SourceUtil.getSourceCache(item.getStrategyId()); + // 更新租户内数字人信息 + + }); + System.out.println("监控心跳执行完成"); + } +} diff --git a/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmDigitalmanController.java b/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmDigitalmanController.java index 0b66e290..940c0ddc 100644 --- a/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmDigitalmanController.java +++ b/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmDigitalmanController.java @@ -1,6 +1,7 @@ package com.xueyi.system.digitalmans.controller; import com.xueyi.common.core.constant.basic.BaseConstants; +import com.xueyi.common.core.constant.basic.SecurityConstants; import com.xueyi.common.core.constant.digitalman.InitConstants; import com.xueyi.common.core.web.result.AjaxResult; import com.xueyi.common.core.web.result.R; @@ -74,6 +75,18 @@ public class DmDigitalmanController extends BaseController sync() { + // 获取账号绑定的设备号 + List devices = super.baseService.selectRegisteredDevices(); + devices.forEach(item->{ + // 获取并更新在线状态 + super.baseService.syncRegisteredDevice(item); + // 数字人预警机制 + }); + return null; + } /** * 同步数字人信息 | 内部调用 */ @@ -139,7 +152,7 @@ public class DmDigitalmanController extends BaseController idList) { return super.batchRemove(idList); } diff --git a/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/IDmDigitalmanService.java b/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/IDmDigitalmanService.java index bae16f0e..3817a6a8 100644 --- a/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/IDmDigitalmanService.java +++ b/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/IDmDigitalmanService.java @@ -8,6 +8,7 @@ import com.xueyi.system.digitalmans.domain.dto.DmDigitalmanDto; import com.xueyi.system.digitalmans.domain.query.DmDigitalmanQuery; import java.io.Serializable; +import java.util.List; /** * 数字人基础管理 服务层 @@ -27,4 +28,8 @@ public interface IDmDigitalmanService extends IBaseService selectRegisteredDevices(); + + boolean syncRegisteredDevice(String deviceId); } \ No newline at end of file diff --git a/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/impl/DmDigitalmanServiceImpl.java b/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/impl/DmDigitalmanServiceImpl.java index 64a01f8b..b4ed4745 100644 --- a/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/impl/DmDigitalmanServiceImpl.java +++ b/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/impl/DmDigitalmanServiceImpl.java @@ -41,6 +41,7 @@ import org.springframework.stereotype.Service; import java.io.Serializable; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -299,8 +300,6 @@ public class DmDigitalmanServiceImpl extends BaseServiceImpl selectRegisteredDevices() { + List dmDigitalmanPoList = dmDigitalmanExtMapper.selectList(Wrappers.query().lambda() + .isNotNull(DmDigitalmanExtPo::getDeviceId)); + return dmDigitalmanPoList.stream().map(DmDigitalmanExtPo::getDeviceId) + .filter(Objects::nonNull) + .filter(str->!str.isEmpty()) + .collect(Collectors.toList()); + } + + @Override + public boolean syncRegisteredDevice(String deviceId) { + DmDigitalmanExtPo po = dmDigitalmanExtMapper.selectOne(Wrappers.query().lambda() + .eq(DmDigitalmanExtPo::getDeviceId,deviceId)); + if (po != null) { + po.setIsOnline(Integer.parseInt(transferService.getDeviceOnlineStatus(deviceId).get("msg").toString())); + dmDigitalmanExtMapper.updateById(po); + return true; + } + return false; + } } \ No newline at end of file diff --git a/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/impl/DmManDeviceServiceImpl.java b/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/impl/DmManDeviceServiceImpl.java index 0c06303e..5af6da40 100644 --- a/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/impl/DmManDeviceServiceImpl.java +++ b/xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/impl/DmManDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.xueyi.system.digitalmans.service.impl; +import com.github.pagehelper.Page; import com.xueyi.common.core.constant.digitalman.InitConstants; import com.xueyi.common.core.constant.digitalman.MessageConstants; import com.xueyi.common.core.utils.core.IdUtil; @@ -15,6 +16,7 @@ import com.xueyi.system.digitalmans.domain.query.DmManDeviceQuery; import com.xueyi.system.digitalmans.manager.IDmManDeviceManager; import com.xueyi.system.digitalmans.mapper.DmManDeviceMapper; import com.xueyi.system.digitalmans.service.IDmManDeviceService; +import com.xueyi.system.resource.service.IDmResourcesService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; @@ -43,6 +45,8 @@ public class DmManDeviceServiceImpl extends BaseServiceImpl manDeviceDtoRedisTemplate; + + /** * 查询数字人设备管理对象列表 | 数据权限 * @@ -63,6 +67,7 @@ public class DmManDeviceServiceImpl extends BaseServiceImpl> tenantList() { + return R.ok(super.baseService.selectList(new TeTenantQuery())); + } /** * 查询租户列表 */