fix:1.优化查询 2.异常预处理

This commit is contained in:
nieziyan 2023-11-28 18:35:53 +08:00
parent b5775437e1
commit b4fae893cb
24 changed files with 156 additions and 200 deletions

View File

@ -13,9 +13,4 @@ public class AlarmRuleVo extends QueryRequest implements Serializable {
private String sourceType;
private String sourceId;
private Integer pageStart;
// 标记根据条件查询但不进行分页
private String pageFlag;
}

View File

@ -15,9 +15,4 @@ public class AlarmVo extends QueryRequest implements Serializable {
private String startDate;
private String endDate;
private Integer pageStart;
// 标记根据条件查询但不进行分页
private String pageFlag;
}

View File

@ -9,6 +9,4 @@ public class NuclideAvgVo extends QueryRequest {
private String startDate;
private String endDate;
private int pageStart;
}

View File

@ -14,6 +14,4 @@ public class SourceVo extends QueryRequest implements Serializable {
private String startDate;
private String endDate;
private Integer pageStart;
}

View File

@ -32,4 +32,8 @@ public class EmailDto implements Serializable {
private String stoerCapacity;
private boolean stoerRed;
private String username; // 邮箱用户名
private Integer isQiye; // 是否企业邮箱
}

View File

@ -30,7 +30,7 @@ public class SysServerController {
@GetMapping("findInfo")
@ApiOperation(value = "服务器数据详情信息", notes = "服务器数据详情信息")
public Result findInfo(String id){
public Result findInfo(@RequestParam String id){
return sysServerService.findInfo(id);
}
@ -48,7 +48,7 @@ public class SysServerController {
@DeleteMapping("deleteById")
@ApiOperation(value = "删除服务器数据信息", notes = "删除服务器数据信息")
public Result deleteById(String id){
public Result deleteById(@RequestParam String id){
return sysServerService.deleteById(id);
}

View File

@ -1,5 +1,6 @@
package org.jeecg.modules.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.base.dto.NuclideAvgDto;
import org.jeecg.modules.base.entity.postgre.AlarmAnalysisNuclideAvg;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@ -9,5 +10,5 @@ import java.util.Map;
public interface AlarmAnalysisNuclideAvgMapper extends BaseMapper<AlarmAnalysisNuclideAvg> {
List<NuclideAvgDto> findPage(Map<String,Object> params);
Page<NuclideAvgDto> findPage(Page<?> page, Map<String, Object> params);
}

View File

@ -1,6 +1,7 @@
package org.jeecg.modules.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.base.dto.AlarmRuleDto;
import org.jeecg.modules.base.dto.AlarmRuleInfo;
import org.jeecg.modules.base.entity.postgre.AlarmRule;
@ -10,7 +11,7 @@ import java.util.Map;
public interface AlarmRuleMapper extends BaseMapper<AlarmRule> {
List<AlarmRuleDto> findPage(Map<String, Object> params);
Page<AlarmRuleDto> findPage(Page<?> page, Map<String, Object> params);
AlarmRuleInfo findInfo(String alarmRuleId);
}

View File

@ -1,6 +1,7 @@
package org.jeecg.modules.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.base.dto.DBInfo;
import org.jeecg.modules.base.dto.DatabaseDto;
@ -12,7 +13,7 @@ import java.util.Map;
public interface SysDatabaseMapper extends BaseMapper<SysDatabase> {
List<AlarmHistory> findAlarmHistory(Map<String,Object> params);
Page<AlarmHistory> findAlarmHistory(Page<?> page, Map<String,Object> params);
List<DatabaseDto> findPage(Map<String,Object> params);
Page<DatabaseDto> findPage(Page<?> page, Map<String,Object> params);
}

View File

@ -1,6 +1,7 @@
package org.jeecg.modules.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.base.dto.*;
import org.jeecg.modules.base.entity.postgre.SysServer;
@ -11,11 +12,11 @@ import java.util.Map;
public interface SysServerMapper extends BaseMapper<SysServer> {
List<AlarmHistory> findAlarmHistory(Map<String,Object> params);
Page<AlarmHistory> findAlarmHistory(Page<?> page, Map<String,Object> params);
List<ServerDto> findPage(Map<String,Object> params);
Page<ServerDto> findPage(Page<?> page, Map<String,Object> params);
List<SourceDto> pageAll(String itemName);
Page<SourceDto> pageAll(Page<?> page, String itemName);
List<AlarmInfo> alarmInfo(String sourceId);
Page<AlarmInfo> alarmInfo(Page<?> page, String sourceId);
}

View File

@ -17,16 +17,13 @@
FROM
alarm_analysis_nuclide_avg
<where>
<if test="startDate != null and startDate != ''">
cacl_date &gt;= #{startDate}
<if test="params.startDate != null and params.startDate != ''">
cacl_date &gt;= #{params.startDate}
</if>
<if test="endDate != null and endDate != ''">
AND cacl_date &lt;= #{endDate}
<if test="params.endDate != null and params.endDate != ''">
AND cacl_date &lt;= #{params.endDate}
</if>
</where>
ORDER BY cacl_date DESC
<if test="pageFlag == null">
LIMIT #{pageSize} OFFSET #{pageStart}
</if>
</select>
</mapper>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mapper.AlarmRuleMapper">
<select id="findPage" parameterType="Map" resultType="org.jeecg.modules.base.dto.AlarmRuleDto">
<select id="findPage" resultType="org.jeecg.modules.base.dto.AlarmRuleDto">
SELECT
*
FROM
@ -28,20 +28,17 @@
INNER JOIN alarm_contact_group g ON g.id = r.contact_id
) AS res
<where>
<if test="enabled != null">
enabled = #{enabled}
<if test="params.enabled != null">
enabled = #{params.enabled}
</if>
<if test="sourceType != null and sourceType != ''">
AND source_type = #{sourceType}
<if test="params.sourceType != null and params.sourceType != ''">
AND source_type = #{params.sourceType}
</if>
<if test="sourceId != null and sourceId != ''">
AND source_id = #{sourceId}
<if test="params.sourceId != null and params.sourceId != ''">
AND source_id = #{params.sourceId}
</if>
</where>
ORDER BY enabled DESC, create_time DESC
<if test="pageFlag == null">
LIMIT #{pageSize} OFFSET #{pageStart}
</if>
</select>
<select id="findInfo" parameterType="String" resultType="org.jeecg.modules.base.dto.AlarmRuleInfo">

View File

@ -32,6 +32,8 @@
SELECT
e.ID,
e.NAME,
e.username,
e.is_qiye,
e.enabled,
e.email_server_address,
COUNT (l.id) AS alarms

View File

@ -13,23 +13,20 @@
INNER JOIN alarm_rule r ON r.source_id = s.id
INNER JOIN alarm_log l ON l.rule_id = r.id
<where>
<if test="sourceId != null and sourceId.size() > 0">
<if test="params.sourceId != null and params.sourceId.size() > 0">
s.id IN
<foreach collection="sourceId" index="index" open="(" close=")" item="item" separator=",">
<foreach collection="params.sourceId" index="index" open="(" close=")" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="startDate != null and startDate != ''">
AND l.alarm_start_date &gt;= #{startDate}
<if test="params.startDate != null and params.startDate != ''">
AND l.alarm_start_date &gt;= #{params.startDate}
</if>
<if test="endDate != null and endDate != ''">
AND l.alarm_start_date &lt;= #{endDate}
<if test="params.endDate != null and params.endDate != ''">
AND l.alarm_start_date &lt;= #{params.endDate}
</if>
</where>
ORDER BY alarm_start_date DESC
<if test="pageFlag == null">
LIMIT #{pageSize} OFFSET #{pageStart}
</if>
</select>
<select id="findPage" resultType="org.jeecg.modules.base.dto.ServerDto">
SELECT
@ -42,11 +39,8 @@
sys_server s
LEFT JOIN alarm_rule r ON s.ID = r.source_id
LEFT JOIN alarm_log l ON r.ID = l.rule_id
AND l.alarm_start_date BETWEEN #{startDate} AND #{endDate}
AND l.alarm_start_date BETWEEN #{params.startDate} AND #{params.endDate}
GROUP BY s.ID, s.NAME, s.host_id, s.ip_address
<if test="pageFlag == null">
LIMIT #{pageSize} OFFSET #{pageStart}
</if>
</select>
<select id="pageAll" resultType="org.jeecg.modules.base.dto.SourceDto">
SELECT

View File

@ -14,23 +14,20 @@
INNER JOIN alarm_rule r ON r.source_id = d.id
INNER JOIN alarm_log l ON l.rule_id = r.id
<where>
<if test="sourceId != null and sourceId.size() > 0">
<if test="params.sourceId != null and params.sourceId.size() > 0">
d.id IN
<foreach collection="sourceId" index="index" open="(" close=")" item="item" separator=",">
<foreach collection="params.sourceId" index="index" open="(" close=")" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="startDate != null and startDate != ''">
AND l.alarm_start_date &gt;= #{startDate}
<if test="params.startDate != null and params.startDate != ''">
AND l.alarm_start_date &gt;= #{params.startDate}
</if>
<if test="endDate != null and endDate != ''">
AND l.alarm_start_date &lt;= #{endDate}
<if test="params.endDate != null and params.endDate != ''">
AND l.alarm_start_date &lt;= #{params.endDate}
</if>
</where>
ORDER BY alarm_start_date DESC
<if test="pageFlag == null">
LIMIT #{pageSize} OFFSET #{pageStart}
</if>
</select>
<select id="findPage" resultType="org.jeecg.modules.base.dto.DatabaseDto">
SELECT
@ -43,10 +40,7 @@
sys_database d
LEFT JOIN alarm_rule r ON d.ID = r.source_id
LEFT JOIN alarm_log l ON r.ID = l.rule_id
AND l.alarm_start_date BETWEEN #{startDate} AND #{endDate}
AND l.alarm_start_date BETWEEN #{params.startDate} AND #{params.endDate}
GROUP BY d.ID, d.NAME, d.db_url, d.db_type
<if test="pageFlag == null">
LIMIT #{pageSize} OFFSET #{pageStart}
</if>
</select>
</mapper>

View File

@ -6,34 +6,40 @@ import com.netease.qiye.qiyeopenplatform.sdk.QiyeOpenPlatSDK;
import com.netease.qiye.qiyeopenplatform.sdk.QiyeOpenPlatSDKConfig;
import com.netease.qiye.qiyeopenplatform.sdk.dto.Q;
import com.netease.qiye.qiyeopenplatform.sdk.dto.R;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.util.SpringContextUtils;
import org.springframework.core.env.Environment;
@Slf4j
public class InstanceSDK {
public static QiyeOpenPlatSDK getInstance() {
// 获取nacos armd.yaml配置文件中企业邮箱的相关配置信息
Property property = Property.getInstance();
String appId = property.getAppId();
String orgOpenId = property.getOrgOpenId();
String authCode = property.getAuthCode();
String urlPrefix = property.getUrlPrefix();
// 使用配置信息初始化配置类
QiyeOpenPlatSDKConfig qiyeOpenPlatSDKConfig = QiyeOpenPlatSDKConfig.builder()
//应用ID
.appId(appId)
//企业OpenID
.orgOpenId(orgOpenId)
//服务地址信息
.urlPrefix(urlPrefix)
.build();
// 使用配置类创建SDK实例
QiyeOpenPlatSDK qiyeOpenPlatSDK = new QiyeOpenPlatSDK("qiyeOpenPlatSDK", qiyeOpenPlatSDKConfig);
// 通过授权码登录 获取Token类并给SDK实例设置Token类
R<AppLoginResp> appLoginRespR = qiyeOpenPlatSDK.appLogin(authCode);
AppLoginResp appLoginResp = appLoginRespR.getDataBean(AppLoginResp.class);
qiyeOpenPlatSDK.getQiyeOpenPlatSDKConfig().setupToken(appLoginResp);
return qiyeOpenPlatSDK;
QiyeOpenPlatSDK qiyeOpenPlatSDK = null;
try {
// 获取nacos armd.yaml配置文件中企业邮箱的相关配置信息
Property property = Property.getInstance();
String appId = property.getAppId();
String orgOpenId = property.getOrgOpenId();
String authCode = property.getAuthCode();
String urlPrefix = property.getUrlPrefix();
// 使用配置信息初始化配置类
QiyeOpenPlatSDKConfig qiyeOpenPlatSDKConfig = QiyeOpenPlatSDKConfig.builder()
//应用ID
.appId(appId)
//企业OpenID
.orgOpenId(orgOpenId)
//服务地址信息
.urlPrefix(urlPrefix)
.build();
// 使用配置类创建SDK实例
qiyeOpenPlatSDK = new QiyeOpenPlatSDK("qiyeOpenPlatSDK", qiyeOpenPlatSDKConfig);
// 通过授权码登录 获取Token类并给SDK实例设置Token类
R<AppLoginResp> appLoginRespR = qiyeOpenPlatSDK.appLogin(authCode);
AppLoginResp appLoginResp = appLoginRespR.getDataBean(AppLoginResp.class);
qiyeOpenPlatSDK.getQiyeOpenPlatSDKConfig().setupToken(appLoginResp);
return qiyeOpenPlatSDK;
}catch (Exception e){
log.error("网易企业邮箱QiyeOpenPlatSDK登录失败: {}", e.getMessage());
return null;
}
}
}

View File

@ -14,4 +14,13 @@ public class RParam {
private String orgOpenId; // 必须
private Boolean showAliasDomain; // 必须
public RParam(String account_name, String domain) {
this.account_name = account_name;
this.domain = domain;
}
public RParam() {
}
}

View File

@ -12,17 +12,17 @@ import java.util.List;
public interface ISysServerService extends IService<SysServer> {
Result findPage(QueryRequest query);
Result<?> findPage(QueryRequest query);
Result findInfo(String id);
Result<?> findInfo(String id);
Result create(SysServer sysServer);
Result<?> create(SysServer sysServer);
Result update(SysServer sysServer);
Result<?> update(SysServer sysServer);
Result deleteById(String id);
Result<?> deleteById(String id);
Result findAlarmHistory(SourceVo sourceVo);
Result<?> findAlarmHistory(SourceVo sourceVo);
List<SourceDto> listAll();

View File

@ -34,14 +34,9 @@ public class AlarmAnalysisNuclideAvgServiceImpl extends ServiceImpl<AlarmAnalysi
public Page<NuclideAvgDto> findPage(NuclideAvgVo nuclideAvgVo) {
Integer pageNo = nuclideAvgVo.getPageNo();
Integer pageSize = nuclideAvgVo.getPageSize();
int pageStart = (pageNo - 1) * pageSize;
nuclideAvgVo.setPageStart(pageStart);
Map<String, Object> params = BeanUtil.beanToMap(nuclideAvgVo);
List<NuclideAvgDto> records = baseMapper.findPage(params);
params.put("pageFlag","noPage");
int total = baseMapper.findPage(params).size();
Page<NuclideAvgDto> page = new Page<>(pageNo,pageSize,total);
page.setRecords(records);
Page<NuclideAvgDto> page = new Page<>(pageNo, pageSize);
page = baseMapper.findPage(page, params);
return page;
}
}

View File

@ -58,17 +58,9 @@ public class AlarmRuleServiceImpl extends ServiceImpl<AlarmRuleMapper, AlarmRule
public Result<?> findPage(AlarmRuleVo alarmRuleVo) {
Integer pageNo = alarmRuleVo.getPageNo();
Integer pageSize = alarmRuleVo.getPageSize();
Page<AlarmRuleDto> page = new Page<>(pageNo,pageSize);
Integer pageStart = (pageNo - 1) * pageSize;
alarmRuleVo.setPageStart(pageStart);
Page<AlarmRuleDto> page = new Page<>(pageNo, pageSize);
Map<String, Object> params = BeanUtil.beanToMap(alarmRuleVo);
List<AlarmRuleDto> alarmHistories = baseMapper.findPage(params);
// 当前页数据
page.setRecords(alarmHistories);
// 获取数据总条数(经过查询条件过滤后的)
params.put("pageFlag","noPage");
int total = baseMapper.findPage(params).size();
page.setTotal(total);
page = baseMapper.findPage(page, params);
return Result.OK(page);
}

View File

@ -53,10 +53,7 @@ public class SysDatabaseServiceImpl extends ServiceImpl<SysDatabaseMapper, SysDa
public Result<?> findPage(QueryRequest query) {
Integer pageNo = query.getPageNo();
Integer pageSize = query.getPageSize();
Integer pageStart = (pageNo - 1) * pageSize;
Map<String,Object> params = new HashMap<>();
params.put("pageSize",pageSize);
params.put("pageStart",pageStart);
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern(DateConstant.DATE);
String date = LocalDate.now().format(formatter);
@ -64,7 +61,9 @@ public class SysDatabaseServiceImpl extends ServiceImpl<SysDatabaseMapper, SysDa
String endDate = date + DateConstant.TIME_END;
params.put("startDate",startDate);
params.put("endDate",endDate);
List<DatabaseDto> databaseDtos = baseMapper.findPage(params);
Page<DatabaseDto> page = new Page<>(pageNo, pageSize);
page = baseMapper.findPage(page, params);
List<DatabaseDto> databaseDtos = page.getRecords();
List<DictModel> items = systemClient.getItems(DictConstant.DATASOURCE_TYPE);
// 数据库类型Map key:类型值 value:类型名称
Map<String, String> dataSourceMap = items.stream().collect(Collectors
@ -85,9 +84,6 @@ public class SysDatabaseServiceImpl extends ServiceImpl<SysDatabaseMapper, SysDa
.setAlarmRed(true).setCpuUutilzation("35.8%")
.setMemoryUsage("55.8%").setDiskUsage("35.68%");
}
params.put("pageFlag","noPage");
long total = baseMapper.findPage(params).size();
Page<DatabaseDto> page = new Page<>(pageNo, pageSize, total);
page.setRecords(databaseDtos);
return Result.OK(page);
}
@ -202,16 +198,9 @@ public class SysDatabaseServiceImpl extends ServiceImpl<SysDatabaseMapper, SysDa
sourceVo.setEndDate(endDate + DateConstant.TIME_END);
Integer pageNo = sourceVo.getPageNo();
Integer pageSize = sourceVo.getPageSize();
Integer pageStart = (pageNo - 1) * pageSize;
sourceVo.setPageStart(pageStart);
Map<String, Object> params = BeanUtil.beanToMap(sourceVo);
List<AlarmHistory> alarmHistories = baseMapper.findAlarmHistory(params);
// 获取数据总条数(经过查询条件过滤后的)
params.put("pageFlag","noPage");
int total = baseMapper.findAlarmHistory(params).size();
Page<AlarmHistory> page = new Page<>(pageNo,pageSize,total);
// 当前页数据
page.setRecords(alarmHistories);
Page<AlarmHistory> page = new Page<>(pageNo, pageSize);
page = baseMapper.findAlarmHistory(page, params);
return Result.OK(page);
}

View File

@ -101,15 +101,13 @@ public class SysEmailLogServiceImpl extends ServiceImpl<SysEmailLogMapper, SysEm
rParam.setAccount_name(accountName);
// 获取已登录的SDK实例
QiyeOpenPlatSDK platSDK = InstanceSDK.getInstance();
if (ObjectUtil.isNull(platSDK))
return map;
AccountInfo mailAccountInfo = Account.getMailAccountInfo(platSDK, rParam);
Integer usedQuota = mailAccountInfo.getUsedQuota();
Integer unreadMsg = MailBox.unreadMsg(platSDK, rParam);
// Integer maxQuota = mailAccountInfo.getMaxQuota();
// maxQuota = ObjectUtil.isNull(maxQuota) ? 0 : maxQuota;
// map.put("total", maxQuota < 0 ? maxQuota + "(No Limit)" : m2G(maxQuota));
map.put("usage", m2G(usedQuota)); // 邮箱空间使用量 单位G
map.put("unreadMsg", unreadMsg); // 未读邮件数量
// map.put("usage","74.3%");
return map;
}

View File

@ -30,6 +30,7 @@ import org.jeecg.modules.entity.AlarmHistory;
import org.jeecg.modules.mapper.SysEmailMapper;
import org.jeecg.modules.qiyeEmail.base.InstanceSDK;
import org.jeecg.modules.qiyeEmail.base.RParam;
import org.jeecg.modules.qiyeEmail.base.dto.AccountInfo;
import org.jeecg.modules.qiyeEmail.service.Account;
import org.jeecg.modules.qiyeEmail.service.MailBox;
import org.jeecg.modules.service.ISysEmailService;
@ -87,11 +88,34 @@ public class SysEmailServiceImpl extends ServiceImpl<SysEmailMapper, SysEmail> i
String emailStatus = RedisConstant.EMAIL_STATUS;
String statusKey = prefixStatus + emailStatus;
Map<Object, Object> statusMap = redisUtil.hmget(statusKey);
// 查询是否有企业邮箱
List<Integer> hasQieye = emailDtos.stream().map(EmailDto::getIsQiye)
.filter(ObjectUtil::isNotNull).filter(isQiye -> Qiye.IS.getValue() == isQiye)
.collect(Collectors.toList());
QiyeOpenPlatSDK platSDK = null;
// 如果emailDtos中存在企业邮箱 则提前登录为查询邮箱信息做准备
if (CollUtil.isNotEmpty(hasQieye)) platSDK = InstanceSDK.getInstance();
// 遍历emailDtos 完善每一个邮箱的详细配置信息
for (EmailDto emailDto : emailDtos) {
String id = emailDto.getId();
Integer isQiye = emailDto.getIsQiye();
String capacity = "--";
if (ObjectUtil.isNotNull(isQiye) && Qiye.IS.getValue() == isQiye){
String username = emailDto.getUsername();
String[] info = StrUtil.split(username, SymbolConstant.AT);
if (ArrayUtil.length(info) == 2 && ObjectUtil.isNotNull(platSDK)){
String accountName = info[0];
String domain = info[1];
RParam param = new RParam(accountName, domain);
AccountInfo accountInfo = Account.getMailAccountInfo(platSDK, param);
Integer usedQuota = accountInfo.getUsedQuota();
if (ObjectUtil.isNotNull(usedQuota))
capacity = usedQuota + " MB";
}
}
Boolean online = (Boolean) statusMap.get(id);
if (ObjectUtil.isNull(online)) online = false;
emailDto.setOnline(online).setStoerCapacity("100%").setStoerRed(true)
emailDto.setOnline(online).setStoerCapacity(capacity).setStoerRed(true)
.setToday(todayMap.getOrDefault(id, 0))
.setYesterday(yestMap.getOrDefault(id, 0))
.setWeekly(weekMap.getOrDefault(id, 0));
@ -264,13 +288,4 @@ public class SysEmailServiceImpl extends ServiceImpl<SysEmailMapper, SysEmail> i
boolean contains = CollUtil.contains(domains, domain);
return contains ? Qiye.IS.getValue() : Qiye.NOT.getValue();
}
public static void main(String[] args) {
/*QiyeOpenPlatSDK platSDK = InstanceSDK.getInstance();
RParam rParam = new RParam();
rParam.setDomain("ndc.org.cn");
rParam.setAccount_name("cnndc.rn.dr");
System.out.println(MailBox.unreadMsg(platSDK, rParam));*/
}
}

View File

@ -10,6 +10,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.api.QueryRequest;
import org.jeecg.common.api.vo.Result;
@ -41,6 +42,7 @@ import java.util.*;
import java.util.stream.Collectors;
@Service("sysServerService")
@Slf4j
public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer> implements ISysServerService {
@Autowired
@ -50,10 +52,7 @@ public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer
public Result<?> findPage(QueryRequest query) {
Integer pageNo = query.getPageNo();
Integer pageSize = query.getPageSize();
Integer pageStart = (pageNo - 1) * pageSize;
Map<String,Object> params = new HashMap<>();
params.put("pageSize",pageSize);
params.put("pageStart",pageStart);
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern(DateConstant.DATE);
String date = LocalDate.now().format(formatter);
@ -61,10 +60,17 @@ public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer
String endDate = date + DateConstant.TIME_END;
params.put("startDate",startDate);
params.put("endDate",endDate);
List<ServerDto> serverDtos = baseMapper.findPage(params);
Page<ServerDto> page = new Page<>(pageNo, pageSize);
page = baseMapper.findPage(page, params);
List<ServerDto> serverDtos = page.getRecords();
// 获取所有在线服务器信息
List<Host> hosts = monitorAlarm.listOnApp(MonitorConstant.STATUS_ON,
MonitorConstant.SERVER_APP).getResult().getRecords();
List<Host> hosts = new ArrayList<>();
try {
hosts = monitorAlarm.listOnApp(MonitorConstant.STATUS_ON,
MonitorConstant.SERVER_APP).getResult().getRecords();
}catch (Exception e){
log.error("向运管系统查询Server监控项信息异常: {}", e.getMessage());
}
for (ServerDto serverDto : serverDtos) {
int alarms = serverDto.getAlarms();
String hostIdS = serverDto.getHostId();
@ -85,44 +91,27 @@ public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer
String memory = StrUtil.isBlank(memoryValue) ? "--" :
NumUtil.keepStr(memoryValue, 1) + "%";
// 磁盘使用率
serverDto.setOnline(true).setCpuUutilzation(cpu)
.setMemoryUsage(memory).setDiskUsage("--");
}
}
params.put("pageFlag","noPage");
// 统计Alarm总数
List<ServerDto> noPage = baseMapper.findPage(params);
int alarms = noPage.stream().mapToInt(ServerDto::getAlarms).sum();
// 获取记录总条数
long total = noPage.size();
Page<ServerDto> page = new Page<>(pageNo, pageSize, total);
// int alarms = noPage.stream().mapToInt(ServerDto::getAlarms).sum();
page.setRecords(serverDtos);
return Result.OK(page);
}
@Override
public Result<?> findInfo(String id) {
Result result = new Result();
if (StringUtils.isBlank(id)){
result.error500("id信息不能为空");
}
//查询对应数据详情内容
LambdaQueryWrapper<SysServer> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysServer::getId, id);
SysServer sysServer = this.baseMapper.selectOne(queryWrapper);
if (Objects.isNull(sysServer)){
result.error500("查询数据不存在");
return result;
}
result.setSuccess(true);
result.setResult(sysServer);
return result;
SysServer sysServer = getById(id);
if (ObjectUtil.isNull(sysServer))
return Result.error(Prompt.DATA_NOT_EXITS);
return Result.OK(sysServer);
}
@Override
@Transactional
public Result create(SysServer sysServer) {
public Result<?> create(SysServer sysServer) {
String name = sysServer.getName();
String ipAddress = sysServer.getIpAddress();
LambdaQueryWrapper<SysServer> wrapper = new LambdaQueryWrapper<>();
@ -142,7 +131,7 @@ public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer
@Override
@Transactional
public Result update(SysServer sysServer) {
public Result<?> update(SysServer sysServer) {
SysServer server = getById(sysServer.getId());
if (ObjectUtil.isNull(server))
return Result.error(Prompt.DATA_NOT_EXITS);
@ -168,15 +157,15 @@ public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer
@Override
@Transactional
public Result deleteById(String id) {
int count = baseMapper.deleteById(id);
if(count == 1)
public Result<?> deleteById(String id) {
boolean success = removeById(id);
if(success)
return Result.OK(Prompt.DELETE_SUCC);
return Result.error(Prompt.DELETE_ERR);
}
@Override
public Result findAlarmHistory(SourceVo sourceVo) {
public Result<?> findAlarmHistory(SourceVo sourceVo) {
String startDate = sourceVo.getStartDate();
String endDate = sourceVo.getEndDate();
if (StrUtil.isNotBlank(startDate))
@ -185,16 +174,9 @@ public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer
sourceVo.setEndDate(endDate + DateConstant.TIME_END);
Integer pageNo = sourceVo.getPageNo();
Integer pageSize = sourceVo.getPageSize();
Integer pageStart = (pageNo - 1) * pageSize;
sourceVo.setPageStart(pageStart);
Map<String, Object> params = BeanUtil.beanToMap(sourceVo);
List<AlarmHistory> alarmHistories = baseMapper.findAlarmHistory(params);
// 获取数据总条数(经过查询条件过滤后的)
params.put("pageFlag","noPage");
Integer total = baseMapper.findAlarmHistory(params).size();
Page<AlarmHistory> page = new Page<>(pageNo,pageSize,total);
// 当前页数据
page.setRecords(alarmHistories);
Page<AlarmHistory> page = new Page<>(pageNo, pageSize);
page = baseMapper.findAlarmHistory(page, params);
return Result.OK(page);
}
@ -218,12 +200,8 @@ public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer
public Page<?> pageAll(QueryRequest query) {
Integer pageNo = query.getPageNo();
Integer pageSize = query.getPageSize();
List<SourceDto> sourceDtos = baseMapper.pageAll(MonitorConstant.ITEM_CPUUSED);
int total = sourceDtos.size();
Page<SourceDto> page = new Page<>(pageNo, pageSize, total);
List<SourceDto> records = PageUtil.page(pageNo, pageSize, sourceDtos);
page.setRecords(records);
Page<SourceDto> page = new Page<>(pageNo, pageSize);
page = baseMapper.pageAll(page, MonitorConstant.ITEM_CPUUSED);
return page;
}
@ -231,9 +209,8 @@ public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer
public String getByName(String name) {
LambdaQueryWrapper<SysServer> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysServer::getName,name);
String id = Optional.ofNullable(getOne(wrapper, false))
return Optional.ofNullable(getOne(wrapper, false))
.orElse(new SysServer()).getId();
return id;
}
@Override
@ -297,11 +274,8 @@ public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer
@Override
public Result<?> details_AlarmInfo(String sourceId, Integer pageNo, Integer pageSize) {
List<AlarmInfo> alarmInfos = baseMapper.alarmInfo(sourceId);
int total = alarmInfos.size();
Page<AlarmInfo> page = new Page<>(pageNo, pageSize, total);
List<AlarmInfo> records = PageUtil.page(pageNo, pageSize, alarmInfos);
page.setRecords(records);
Page<AlarmInfo> page = new Page<>(pageNo, pageSize);
page = baseMapper.alarmInfo(page, sourceId);
return Result.OK(page);
}
}