服务器自动注册
This commit is contained in:
+24
@@ -10,6 +10,7 @@ import com.ruoyi.common.log.annotation.Log;
|
||||
import com.ruoyi.common.log.enums.BusinessType;
|
||||
import com.ruoyi.common.security.annotation.InnerAuth;
|
||||
import com.ruoyi.common.security.annotation.RequiresPermissions;
|
||||
import com.ruoyi.system.api.domain.RmRegisterMsgRemote;
|
||||
import com.ruoyi.system.domain.RmResourceRegistration;
|
||||
import com.ruoyi.system.service.IRmResourceRegistrationService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -165,5 +166,28 @@ public class RmResourceRegistrationController extends BaseController
|
||||
List<RmResourceRegistration> list = rmResourceRegistrationService.selectRmResourceRegistrationList(rmResourceRegistration);
|
||||
return R.ok(list.get(0));
|
||||
}
|
||||
/**
|
||||
* 查询资源注册列表
|
||||
*/
|
||||
@RequiresPermissions("system:registration:list")
|
||||
@PostMapping("/getRegistList")
|
||||
public AjaxResult getRegistList(@RequestBody RmResourceRegistration rmResourceRegistration)
|
||||
{
|
||||
List<RmResourceRegistration> list = rmResourceRegistrationService.selectRmResourceRegistrationList(rmResourceRegistration);
|
||||
return success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动注册服务器
|
||||
* @param rmResourceRegistration mq接收的消息
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/innerAddRegist")
|
||||
@InnerAuth
|
||||
public R<Integer> innerAddRegist(@RequestBody RmRegisterMsgRemote rmResourceRegistration)
|
||||
{
|
||||
int rows = rmResourceRegistrationService.innerAddRegist(rmResourceRegistration);
|
||||
return R.ok(rows);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.ruoyi.system.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
@Data
|
||||
public class RspVo {
|
||||
/** 状态码,0、失败;1、成功*/
|
||||
private int resCode;
|
||||
/** 描述 */
|
||||
private String resMag;
|
||||
/** 时间戳 */
|
||||
private long timestamp = Instant.now().getEpochSecond();
|
||||
}
|
||||
+8
@@ -2,6 +2,7 @@ package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.web.domain.AjaxResult;
|
||||
import com.ruoyi.system.api.domain.RmRegisterMsgRemote;
|
||||
import com.ruoyi.system.domain.RmResourceRegistration;
|
||||
|
||||
import java.util.List;
|
||||
@@ -90,4 +91,11 @@ public interface IRmResourceRegistrationService
|
||||
AjaxResult getServerOnlineRate();
|
||||
|
||||
List<RmResourceRegistration> getRegistrationByIds(String[] ids);
|
||||
|
||||
/**
|
||||
* 自动注册
|
||||
* @param rmResourceRegistration
|
||||
* @return
|
||||
*/
|
||||
int innerAddRegist(RmRegisterMsgRemote rmResourceRegistration);
|
||||
}
|
||||
|
||||
+77
@@ -8,22 +8,27 @@ import com.ruoyi.common.core.utils.DateUtils;
|
||||
import com.ruoyi.common.core.web.domain.AjaxResult;
|
||||
import com.ruoyi.common.security.utils.SecurityUtils;
|
||||
import com.ruoyi.system.api.RemoteRocketMqService;
|
||||
import com.ruoyi.system.api.domain.NetworkInfo;
|
||||
import com.ruoyi.system.api.domain.RmRegisterMsgRemote;
|
||||
import com.ruoyi.system.domain.EpsNodeBandwidth;
|
||||
import com.ruoyi.system.domain.EpsServerRevenueConfig;
|
||||
import com.ruoyi.system.domain.RmEpsTopologyManagement;
|
||||
import com.ruoyi.system.domain.RmResourceRegistration;
|
||||
import com.ruoyi.system.domain.vo.MessageVo;
|
||||
import com.ruoyi.system.domain.vo.ResourceVo;
|
||||
import com.ruoyi.system.domain.vo.RspVo;
|
||||
import com.ruoyi.system.mapper.EpsNodeBandwidthMapper;
|
||||
import com.ruoyi.system.mapper.EpsServerRevenueConfigMapper;
|
||||
import com.ruoyi.system.mapper.RmEpsTopologyManagementMapper;
|
||||
import com.ruoyi.system.mapper.RmResourceRegistrationMapper;
|
||||
import com.ruoyi.system.service.IRmResourceRegistrationService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -35,6 +40,7 @@ import java.util.Map;
|
||||
* @date 2025-08-12
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class RmResourceRegistrationServiceImpl implements IRmResourceRegistrationService
|
||||
{
|
||||
@Autowired
|
||||
@@ -350,5 +356,76 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
|
||||
return rmResourceRegistrationMapper.getRegistrationByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动注册
|
||||
* @param registerMsg
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int innerAddRegist(RmRegisterMsgRemote registerMsg) {
|
||||
// 解析mq接收的消息
|
||||
// 时间戳转换
|
||||
long timestamp = registerMsg.getTimestamp();
|
||||
long millis = timestamp * 1000;
|
||||
Date createTime = new Date(millis / 1000 * 1000); // 去除毫秒
|
||||
String timeStr = DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", createTime);
|
||||
List<NetworkInfo> networkInfoList = registerMsg.getNetworkInfo();
|
||||
if(!networkInfoList.isEmpty()){
|
||||
// 查询此数据是否存在
|
||||
RmResourceRegistration queryParam = new RmResourceRegistration();
|
||||
queryParam.setClientId(registerMsg.getClientId());
|
||||
RmResourceRegistration exits = rmResourceRegistrationMapper.selectRegistMsgByClientId(queryParam);
|
||||
if(exits == null){
|
||||
// 构建服务器信息
|
||||
RmResourceRegistration insertData = new RmResourceRegistration();
|
||||
try {
|
||||
// 如果网卡信息只有1条,自动绑定多公网IP
|
||||
if(networkInfoList.size()==1){
|
||||
insertData.setClientId(registerMsg.getClientId());
|
||||
insertData.setHardwareSn(registerMsg.getSn());
|
||||
insertData.setRegistrationStatus("1");
|
||||
insertData.setMultiPublicIpStatus("1");
|
||||
insertData.setResourceType("1");
|
||||
insertData.setCreateTime(createTime);
|
||||
rmResourceRegistrationMapper.insertRmResourceRegistration(insertData);
|
||||
}else{
|
||||
insertData.setClientId(registerMsg.getClientId());
|
||||
insertData.setHardwareSn(registerMsg.getSn());
|
||||
insertData.setRegistrationStatus("0");
|
||||
insertData.setMultiPublicIpStatus("0");
|
||||
insertData.setResourceType("1");
|
||||
insertData.setCreateTime(createTime);
|
||||
rmResourceRegistrationMapper.insertRmResourceRegistration(insertData);
|
||||
}
|
||||
// 构建注册应答信息
|
||||
MessageVo messageVo = new MessageVo();
|
||||
messageVo.setClientId(registerMsg.getClientId());
|
||||
messageVo.setDataType(MsgEnum.注册应答.getValue());
|
||||
RspVo rspVo = new RspVo();
|
||||
rspVo.setResCode(1);
|
||||
rspVo.setResMag("注册成功");
|
||||
messageVo.setData(JSONObject.toJSONString(rspVo));
|
||||
remoteRocketMqService.sendAsyncProducerMessage(
|
||||
"tr_agent_down", "", "", JSONObject.toJSONString(messageVo), SecurityConstants.INNER
|
||||
);
|
||||
}catch (Exception e){
|
||||
log.error("注册服务器失败:{}",e.getMessage());
|
||||
// 构建注册应答信息
|
||||
MessageVo messageVo = new MessageVo();
|
||||
messageVo.setClientId(registerMsg.getClientId());
|
||||
messageVo.setDataType(MsgEnum.注册应答.getValue());
|
||||
RspVo rspVo = new RspVo();
|
||||
rspVo.setResCode(1);
|
||||
rspVo.setResMag("平台错误信息:" + e.getMessage());
|
||||
messageVo.setData(JSONObject.toJSONString(rspVo));
|
||||
remoteRocketMqService.sendAsyncProducerMessage(
|
||||
"tr_agent_down", "", "", JSONObject.toJSONString(messageVo), SecurityConstants.INNER
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+11
@@ -331,6 +331,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="updaterName != null">updater_name = #{updaterName},</if>
|
||||
</trim>
|
||||
where hardware_sn = #{hardwareSn}
|
||||
<choose>
|
||||
<when test="hardwareSn != null">
|
||||
hardware_sn = #{hardwareSn}
|
||||
</when>
|
||||
<when test="clientId != null">
|
||||
client_id = #{clientId}
|
||||
</when>
|
||||
<otherwise>
|
||||
1=0 <!-- 如果两个条件都不满足,则不更新任何记录 -->
|
||||
</otherwise>
|
||||
</choose>
|
||||
</update>
|
||||
<select id="getRegistrationByIds" parameterType="String" resultMap="RmResourceRegistrationResult">
|
||||
<include refid="selectRmResourceRegistrationVo"/>
|
||||
|
||||
Reference in New Issue
Block a user