资源模板以及资源策略模块方法和接口。

This commit is contained in:
gaoyutao
2025-09-11 17:57:51 +08:00
parent df7ed79fcb
commit 3dc8b2c2c6
59 changed files with 3523 additions and 184 deletions
@@ -3,16 +3,16 @@ package com.ruoyi.system.api;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.domain.AllInterfaceNameRemote;
import com.ruoyi.system.api.domain.EpsInitialTrafficDataRemote;
import com.ruoyi.system.api.domain.InitialSwitchInfoDetailsRemote;
import com.ruoyi.system.api.domain.RmResourceRegistrationRemote;
import com.ruoyi.system.api.domain.*;
import com.ruoyi.system.api.factory.RemoteRevenueConfigFallbackFactory;
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;
/**
* 用户服务
*
@@ -36,9 +36,39 @@ public interface RemoteRevenueConfigService
@PostMapping("/switchInfoDetails/autoSaveSwitchTraffic")
public R<String> autoSaveSwitchTraffic(@RequestBody InitialSwitchInfoDetailsRemote queryParam, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 监控资源信息,如果检测到心跳异常,修改资源表在线状态
* @param queryParam
* @param source
* @return
*/
@PostMapping("/registration/updateStatusByResource")
public R<String> updateStatusByResource(@RequestBody RmResourceRegistrationRemote queryParam, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 根据客户端id查询设备其他信息
* @param queryParam
* @param source
* @return
*/
@PostMapping("/interfaceName/getMsgByClientId")
public R<AllInterfaceNameRemote> getMsgByClientId(@RequestBody AllInterfaceNameRemote queryParam, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 根据资源组id查询资源组名称
* @param id
* @param source
* @return
*/
@GetMapping("/group/getResourceGroupMsgById")
public R<RmResourceGroupRemote> getResourceGroupMsgById(Long id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 根据id查询资源信息
* @param ids
* @param source
* @return
*/
@PostMapping("/registration/getRegistrationByIds")
public R<List<RmResourceRegistrationRemote>> getRegistrationByIds(String[] ids, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}
@@ -0,0 +1,19 @@
package com.ruoyi.system.api;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.factory.RemoteRocketMqFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Map;
@FeignClient(contextId = "remoteRocketMqService", value = ServiceNameConstants.ROCKETMQ_SERVICE, fallbackFactory = RemoteRocketMqFallbackFactory.class)
public interface RemoteRocketMqService {
@PostMapping("/api/rocketMessage/sendAsyncProducerMessage")
public R<Map> sendAsyncProducerMessage(@RequestParam("topic") String topic, @RequestParam("tag") String tag, @RequestParam("key") String key, @RequestParam("value") String value, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}
@@ -0,0 +1,60 @@
package com.ruoyi.system.api.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import java.util.Date;
/**
* 资源分组对象 rm_resource_group
*
* @author gyt
* @date 2025-08-12
*/
@Data
public class RmResourceGroupRemote extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** id */
private Long id;
/** 组名 */
@Excel(name = "组名")
private String groupName;
/** 描述 */
@Excel(name = "描述")
private String description;
/** 包含设备id */
private String includedDevicesId;
/** 包含设备名称 */
@Excel(name = "包含设备")
private String includedDevicesName;
/** 创建时间 */
@Excel(name = "创建时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/** 修改时间 */
@Excel(name = "修改时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/** 创建人id */
private Long creatorId;
/** 创建人名称 */
private String creatorName;
/** 修改人id */
private Long updaterId;
/** 修改人名称 */
private String updaterName;
}
@@ -2,15 +2,14 @@ package com.ruoyi.system.api.factory;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.RemoteRevenueConfigService;
import com.ruoyi.system.api.domain.AllInterfaceNameRemote;
import com.ruoyi.system.api.domain.EpsInitialTrafficDataRemote;
import com.ruoyi.system.api.domain.InitialSwitchInfoDetailsRemote;
import com.ruoyi.system.api.domain.RmResourceRegistrationRemote;
import com.ruoyi.system.api.domain.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 用户服务降级处理
*
@@ -46,6 +45,16 @@ public class RemoteRevenueConfigFallbackFactory implements FallbackFactory<Remot
public R<AllInterfaceNameRemote> getMsgByClientId(AllInterfaceNameRemote queryParam, String source) {
return R.fail("获取服务器信息失败:" + throwable.getMessage());
}
@Override
public R<RmResourceGroupRemote> getResourceGroupMsgById(Long id, String source) {
return R.fail("获取资源组信息失败:" + throwable.getMessage());
}
@Override
public R<List<RmResourceRegistrationRemote>> getRegistrationByIds(String[] ids, String source) {
return R.fail("获取资源注册信息失败:" + throwable.getMessage());
}
};
}
}
@@ -0,0 +1,38 @@
package com.ruoyi.system.api.factory;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.RemoteRocketMqService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* 用户服务降级处理
*
* @author ruoyi
*/
@Component
public class RemoteRocketMqFallbackFactory implements FallbackFactory<RemoteRocketMqService>
{
private static final Logger log = LoggerFactory.getLogger(RemoteRocketMqFallbackFactory.class);
@Override
public RemoteRocketMqService create(Throwable throwable)
{
log.error("rocketMq服务调用失败:{}", throwable.getMessage());
return new RemoteRocketMqService()
{
@Override
public R<Map> sendAsyncProducerMessage(String topic, String tag, String key, String value, String source) {
Map<String, Object> errorMap = new HashMap<>();
errorMap.put("msg", "生产者发送消息失败");
errorMap.put("error", throwable.getMessage());
return R.fail(errorMap);
}
};
}
}
@@ -2,3 +2,4 @@ com.ruoyi.system.api.factory.RemoteUserFallbackFactory
com.ruoyi.system.api.factory.RemoteLogFallbackFactory
com.ruoyi.system.api.factory.RemoteFileFallbackFactory
com.ruoyi.system.api.factory.RemoteRevenueConfigFallbackFactory
com.ruoyi.system.api.factory.RemoteRocketMqFallbackFactory