Преглед на файлове

yinruoxi:

1.新增定时任务,用于监控心跳更新
2.添加controll日志
tags/v0.8.0a
kira преди 2 години
родител
ревизия
986513fe8f
променени са 12 файла, в които са добавени 124 реда и са изтрити 9 реда
  1. +2
    -1
      sonar-project.properties
  2. +3
    -0
      xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/digitalmans/feign/RemoteDigitalmanService.java
  3. +9
    -0
      xueyi-api/xueyi-api-tenant/src/main/java/com/xueyi/tenant/api/tenant/feign/RemoteTenantService.java
  4. +8
    -0
      xueyi-api/xueyi-api-tenant/src/main/java/com/xueyi/tenant/api/tenant/feign/factory/RemoteTenantFallbackFactory.java
  5. +43
    -0
      xueyi-modules/xueyi-job/src/main/java/com/xueyi/job/task/DgmanTask.java
  6. +14
    -1
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmDigitalmanController.java
  7. +1
    -0
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmModelController.java
  8. +5
    -5
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmSkillController.java
  9. +5
    -0
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/IDmDigitalmanService.java
  10. +23
    -2
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/impl/DmDigitalmanServiceImpl.java
  11. +5
    -0
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/service/impl/DmManDeviceServiceImpl.java
  12. +6
    -0
      xueyi-modules/xueyi-tenant/src/main/java/com/xueyi/tenant/tenant/controller/TeTenantController.java

+ 2
- 1
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

+ 3
- 0
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<Integer> 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<Boolean> sync(@RequestHeader(SecurityConstants.ENTERPRISE_ID) Long enterpriseId, @RequestHeader(SecurityConstants.SOURCE_NAME) String sourceName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}

+ 9
- 0
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<Boolean> registerTenantInfo(@RequestBody JSONObject register, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);

@GetMapping("/tenant/tenant_list")
R<List<TeTenantDto>> tenantList();

}

+ 8
- 0
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<RemoteTenant
{
return R.fail("注册租户失败:" + throwable.getMessage());
}

@Override
public R<List<TeTenantDto>> tenantList() {
return null;
}
};
}
}

+ 43
- 0
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<List<TeTenantDto>> listR = tenantService.tenantList();
if (listR.isFail()) {
System.out.println("租户列表获取失败");
return;
}
listR.getData().forEach(item->{
// 获取数据源
Source source = SourceUtil.getSourceCache(item.getStrategyId());
// 更新租户内数字人信息

});
System.out.println("监控心跳执行完成");
}
}

+ 14
- 1
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<DmDigitalmanQuery, Dm
return R.ok(super.baseService.selectExt(devId));
}


@PostMapping("/inner/sync")
public R<Boolean> sync() {
// 获取账号绑定的设备号
List<String> devices = super.baseService.selectRegisteredDevices();
devices.forEach(item->{
// 获取并更新在线状态
super.baseService.syncRegisteredDevice(item);
// 数字人预警机制
});
return null;
}
/**
* 同步数字人信息 | 内部调用
*/
@@ -139,7 +152,7 @@ public class DmDigitalmanController extends BaseController<DmDigitalmanQuery, Dm
* 数字人工作时间修改
*/
@PutMapping(value = "/worktime")
@Log(title = "数字人基础管理", businessType = BusinessType.UPDATE)
@Log(title = "数字人基础管理-工作时间", businessType = BusinessType.UPDATE)
public AjaxResult worktimeEdit(@Validated({V_E.class}) @RequestBody DmDigitalmanWorktimeDto customMadeDto) {
customMadeDto.initOperate(BaseConstants.Operate.EDIT);
return toAjax(baseService.worktimeUpdate(customMadeDto));


+ 1
- 0
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmModelController.java Целия файл

@@ -82,6 +82,7 @@ public class DmModelController extends BaseController<DmModelQuery, DmModelDto,
* 上传资源修改
*/
@PostMapping(value = "/upload_resource")
@Log(title = "资源管理", businessType = BusinessType.OTHER)
public AjaxResult uploadResource(@Validated({V_A.class}) @RequestBody DmModelUploadDto modelUploadDto) {

return toAjax(modelService.uploadResource(modelUploadDto));


+ 5
- 5
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmSkillController.java Целия файл

@@ -105,12 +105,12 @@ public class DmSkillController extends BaseController<DmSkillQuery, DmSkillDto,
}

/**
* 访客新增
* 技能新增
*/
@Override
@PostMapping
@RequiresPermissions(Auth.DM_SKILL_ADD)
@Log(title = "访客管理", businessType = BusinessType.INSERT)
@Log(title = "技能管理", businessType = BusinessType.INSERT)
public AjaxResult add(@Validated({V_A.class}) @RequestBody DmSkillDto dmVisitors) {
return super.add(dmVisitors);
}
@@ -130,18 +130,18 @@ public class DmSkillController extends BaseController<DmSkillQuery, DmSkillDto,
@Override
@PutMapping
@RequiresPermissions(Auth.DM_SKILL_EDIT)
@Log(title = "访客管理", businessType = BusinessType.UPDATE)
@Log(title = "技能管理", businessType = BusinessType.UPDATE)
public AjaxResult edit(@Validated({V_E.class}) @RequestBody DmSkillDto dmVisitors) {
return super.edit(dmVisitors);
}

/**
* 访客批量删除
* 技能批量删除
*/
@Override
@DeleteMapping("/batch/{idList}")
@RequiresPermissions(Auth.DM_SKILL_DEL)
@Log(title = "访客管理", businessType = BusinessType.DELETE)
@Log(title = "技能管理", businessType = BusinessType.DELETE)
public AjaxResult batchRemove(@PathVariable List<Long> idList) {
return super.batchRemove(idList);
}


+ 5
- 0
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<DmDigitalmanQuery, Dm
int initDigitalman(String snCode);

DmDigitalmanExtPo selectExt(String devId);

List<String> selectRegisteredDevices();

boolean syncRegisteredDevice(String deviceId);
}

+ 23
- 2
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<DmDigitalmanQuery,
dmSkillService.batchInitInsert(digitalmanDto);




// 添加展示页
DmModelDto modelDto = new DmModelDto();
modelDto.setName(digitalmanDto.getName());
@@ -384,4 +383,26 @@ public class DmDigitalmanServiceImpl extends BaseServiceImpl<DmDigitalmanQuery,
this.worktimeUpdate(worktimeDto);
return 0;
}

@Override
public List<String> selectRegisteredDevices() {
List<DmDigitalmanExtPo> dmDigitalmanPoList = dmDigitalmanExtMapper.selectList(Wrappers.<DmDigitalmanExtPo>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.<DmDigitalmanExtPo>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;
}
}

+ 5
- 0
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<DmManDeviceQuery, Dm

@Autowired
RedisTemplate<String, Serializable> manDeviceDtoRedisTemplate;


/**
* 查询数字人设备管理对象列表 | 数据权限
*
@@ -63,6 +67,7 @@ public class DmManDeviceServiceImpl extends BaseServiceImpl<DmManDeviceQuery, Dm
item.setOnlineStatus(InitConstants.DEVICE_ACTIVATE_STATUS_NOT_ACTIVATE);
}
});

return list;
}



+ 6
- 0
xueyi-modules/xueyi-tenant/src/main/java/com/xueyi/tenant/tenant/controller/TeTenantController.java Целия файл

@@ -5,6 +5,7 @@ import com.xueyi.common.core.constant.system.OrganizeConstants;
import com.xueyi.common.core.utils.core.CollUtil;
import com.xueyi.common.core.utils.core.StrUtil;
import com.xueyi.common.core.web.result.AjaxResult;
import com.xueyi.common.core.web.result.R;
import com.xueyi.common.core.web.validate.V_A;
import com.xueyi.common.core.web.validate.V_E;
import com.xueyi.common.log.annotation.Log;
@@ -15,6 +16,7 @@ import com.xueyi.common.security.annotation.RequiresPermissions;
import com.xueyi.common.security.auth.Auth;
import com.xueyi.common.web.entity.controller.BaseController;
import com.xueyi.tenant.api.tenant.domain.dto.TeTenantDto;
import com.xueyi.tenant.api.tenant.domain.po.TeTenantPo;
import com.xueyi.tenant.api.tenant.domain.query.TeTenantQuery;
import com.xueyi.tenant.tenant.domain.model.TeTenantRegister;
import com.xueyi.tenant.tenant.service.ITeTenantService;
@@ -51,6 +53,10 @@ public class TeTenantController extends BaseController<TeTenantQuery, TeTenantDt
return add(tenantRegister);
}

@GetMapping("/tenant_list")
R<List<TeTenantDto>> tenantList() {
return R.ok(super.baseService.selectList(new TeTenantQuery()));
}
/**
* 查询租户列表
*/


Зареждане…
Отказ
Запис