package com.se.system.service.impl; import java.util.List; import com.se.common.core.utils.DateUtils; import com.se.system.service.WebSocketService; import com.se.system.utils.CaffeineUtils; import com.se.system.utils.ConnectUtils; import com.se.system.utils.StringUtils; import org.springframework.stereotype.Service; import com.se.system.mapper.SysStatusCtrlMapper; import com.se.system.domain.SysStatusCtrl; import com.se.system.service.inte.ISysStatusCtrlService; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; /** * 系统状态监控Service业务层处理 * * @author se * @date 2024-12-07 */ @Service @SuppressWarnings("ALL") public class SysStatusCtrlServiceImpl implements ISysStatusCtrlService { @Resource private SysStatusCtrlMapper sysStatusCtrlMapper; private final static String CACHE_KEY = "list:statusctrl"; /** * 查询系统状态监控 * * @param statusId 系统状态监控主键 * @return 系统状态监控 */ @Override public SysStatusCtrl selectSysStatusCtrlByStatusId(Long statusId) { return sysStatusCtrlMapper.selectSysStatusCtrlByStatusId(statusId); } /** * 查询系统状态监控列表 * * @param sysStatusCtrl 系统状态监控 * @return 系统状态监控 */ @Override public List selectSysStatusCtrlList(SysStatusCtrl sysStatusCtrl) { return sysStatusCtrlMapper.selectSysStatusCtrlList(sysStatusCtrl); } /** * 新增系统状态监控 * * @param sysStatusCtrl 系统状态监控 * @return 结果 */ @Override public int insertSysStatusCtrl(SysStatusCtrl sysStatusCtrl) { CaffeineUtils.remove(CACHE_KEY); sysStatusCtrl.setCreateTime(DateUtils.getNowDate()); return sysStatusCtrlMapper.insertSysStatusCtrl(sysStatusCtrl); } /** * 修改系统状态监控 * * @param sysStatusCtrl 系统状态监控 * @return 结果 */ @Override public int updateSysStatusCtrl(SysStatusCtrl sysStatusCtrl) { CaffeineUtils.remove(CACHE_KEY); sysStatusCtrl.setUpdateTime(DateUtils.getNowDate()); return sysStatusCtrlMapper.updateSysStatusCtrl(sysStatusCtrl); } /** * 批量删除系统状态监控 * * @param statusIds 需要删除的系统状态监控主键 * @return 结果 */ @Override public int deleteSysStatusCtrlByStatusIds(Long[] statusIds) { CaffeineUtils.remove(CACHE_KEY); return sysStatusCtrlMapper.deleteSysStatusCtrlByStatusIds(statusIds); } /** * 删除系统状态监控信息 * * @param statusId 系统状态监控主键 * @return 结果 */ @Override public int deleteSysStatusCtrlByStatusId(Long statusId) { CaffeineUtils.remove(CACHE_KEY); return sysStatusCtrlMapper.deleteSysStatusCtrlByStatusId(statusId); } private List getList() { List list = CaffeineUtils.getListByKey(CACHE_KEY); if (null == list) { list = selectSysStatusCtrlList(new SysStatusCtrl()); CaffeineUtils.putListByKey(CACHE_KEY, list); } return list; } public void runSubSysTest() { List list = getList(); if (CollectionUtils.isEmpty(list)) return; for (SysStatusCtrl ctrl : list) { ctrl.setStatus("0"); ctrl.setRemark(""); if (!StringUtils.isEmpty(ctrl.getIp()) && !ConnectUtils.isReachable(ctrl.getIp())) { ctrl.setStatus("1"); ctrl.setRemark("IP不连通"); } if (!StringUtils.isEmpty(ctrl.getUrl()) && !ConnectUtils.testUrl(ctrl.getUrl(), ctrl.getMethod())) { ctrl.setStatus("1"); ctrl.setRemark((ctrl.getRemark().length() > 0 ? ctrl.getRemark() + "," : "") + "URL连接不上"); } } sysStatusCtrlMapper.updates(list); } private void sendMsg(String json) throws Exception { //String json = JSONObject.toJSONStringWithDateFormat(jsonObject, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteMapNullValue); WebSocketService.broadCastInfo(json); } }