Parcourir la source

集成websocket、页面对接数据

bihuisong il y a 1 an
Parent
commit
3fecd2ac12

+ 76 - 69
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java

@@ -4,9 +4,14 @@ import java.util.Date;
 import java.util.List;
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletResponse;
+import javax.websocket.OnMessage;
+import javax.websocket.OnOpen;
 
-import com.ruoyi.system.service.IUnableToAccessWebsiteListTodayService;
-import com.ruoyi.system.service.IWebsiteAvailabilityMonitorService;
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.system.service.*;
+import com.ruoyi.websocket.WebSocketServer;
+import com.ruoyi.websocket.WebSocketUsers;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
@@ -26,8 +31,6 @@ import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.ServletUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.shiro.service.SysPasswordService;
-import com.ruoyi.system.service.ISysConfigService;
-import com.ruoyi.system.service.ISysMenuService;
 import org.springframework.web.servlet.ModelAndView;
 
 /**
@@ -36,21 +39,53 @@ import org.springframework.web.servlet.ModelAndView;
  * @author ruoyi
  */
 @Controller
-public class SysIndexController extends BaseController
-{
+@Slf4j
+public class SysIndexController extends BaseController {
     @Autowired
     private ISysMenuService menuService;
-
     @Autowired
     private ISysConfigService configService;
-
     @Autowired
     private SysPasswordService passwordService;
-
+    @Autowired
+    private IWebsiteAvailabilityMonitorService websiteAvailabilityMonitorService;
+    @Autowired
+    private IUnableToAccessWebsiteListTodayService unableToAccessWebsiteListTodayService;
+    @Autowired
+    private IWebSiteTenDaysHitsService webSiteTenDaysHitsService;
+    @Autowired
+    private IVisitingWebsiteRankingService visitingWebsiteRankingService;
+    @Autowired
+    private IColumnPageViewService columnPageViewService;
+    @Autowired
+    private IPopularInformationService popularInformationService;
+    @Autowired
+    private IMunicipalMisprintService municipalMisprintService;
+    @Autowired
+    private ICountyAndDistrictMisprintService countyAndDistrictMisprintService;
+    @Autowired
+    private IMunicipalErrorLinkMonitorService municipalErrorLinkMonitorService;
+    @Autowired
+    private ICensusElementsService censusElementsService;
+    @Autowired
+    private ICensusItemNegativeInformationService censusItemNegativeInformationService;
+    @Autowired
+    private IDailyTrafficRankingService dailyTrafficRankingService;
+    @Autowired
+    private IDailyUpdateRankingService dailyUpdateRankingService;
+    @Autowired
+    private ICountyDailyTrafficRankingService countyDailyTrafficRankingService;
+    @Autowired
+    private ICountyDailyUpdateRankingService countyDailyUpdateRankingService;
+    @Autowired
+    private IMunicipalInteractiveColumnsService municipalInteractiveColumnsService;
+    @Autowired
+    private IAreaInteractiveColumnsService areaInteractiveColumnsService;
+    @Autowired
+    private ICountyInteractiveColumnsService countyInteractiveColumnsService;
     // 系统首页
     @GetMapping("/index")
-    public String index(ModelMap mmap)
-    {
+    public String index(ModelMap mmap) {
         // 取身份信息
         SysUser user = getSysUser();
         // 根据用户id取出菜单
@@ -77,10 +112,8 @@ public class SysIndexController extends BaseController
 
         // 优先Cookie配置导航菜单
         Cookie[] cookies = ServletUtils.getRequest().getCookies();
-        for (Cookie cookie : cookies)
-        {
-            if (StringUtils.isNotEmpty(cookie.getName()) && "nav-style".equalsIgnoreCase(cookie.getName()))
-            {
+        for (Cookie cookie : cookies) {
+            if (StringUtils.isNotEmpty(cookie.getName()) && "nav-style".equalsIgnoreCase(cookie.getName())) {
                 indexStyle = cookie.getValue();
                 break;
             }
@@ -91,8 +124,7 @@ public class SysIndexController extends BaseController
 
     // 锁定屏幕
     @GetMapping("/lockscreen")
-    public String lockscreen(ModelMap mmap)
-    {
+    public String lockscreen(ModelMap mmap) {
         mmap.put("user", getSysUser());
         ServletUtils.getSession().setAttribute(ShiroConstants.LOCK_SCREEN, true);
         return "lock";
@@ -101,15 +133,12 @@ public class SysIndexController extends BaseController
     // 解锁屏幕
     @PostMapping("/unlockscreen")
     @ResponseBody
-    public AjaxResult unlockscreen(String password)
-    {
+    public AjaxResult unlockscreen(String password) {
         SysUser user = getSysUser();
-        if (StringUtils.isNull(user))
-        {
+        if (StringUtils.isNull(user)) {
             return AjaxResult.error("服务器超时,请重新登录");
         }
-        if (passwordService.matches(user, password))
-        {
+        if (passwordService.matches(user, password)) {
             ServletUtils.getSession().removeAttribute(ShiroConstants.LOCK_SCREEN);
             return AjaxResult.success();
         }
@@ -118,84 +147,73 @@ public class SysIndexController extends BaseController
 
     // 切换主题
     @GetMapping("/system/switchSkin")
-    public String switchSkin()
-    {
+    public String switchSkin() {
         return "skin";
     }
 
     // 切换菜单
     @GetMapping("/system/menuStyle/{style}")
-    public void menuStyle(@PathVariable String style, HttpServletResponse response)
-    {
+    public void menuStyle(@PathVariable String style, HttpServletResponse response) {
         CookieUtils.setCookie(response, "nav-style", style);
     }
 
     // 系统介绍
     @GetMapping("/system/main")
-    public String main(ModelMap mmap)
-    {
+    public String main(ModelMap mmap) {
         mmap.put("version", RuoYiConfig.getVersion());
         return "main";
     }
 
     //网站普查指标监测
     @GetMapping("/censusIndicators")
-    public String censusIndicators(ModelMap mmap)
-    {
+    public Object censusIndicators(ModelMap mmap) {
+        ModelAndView modelAndView = new ModelAndView("censusIndicators.html");
+        modelAndView.addObject("dataSourceOne",censusElementsService.selectCensusElementsList());
+        modelAndView.addObject("dataSourceTwo", censusItemNegativeInformationService.selectCensusItemNegativeInformationList());
         mmap.put("version", RuoYiConfig.getVersion());
-        return "censusIndicators";
+        return modelAndView;
     }
 
     //日更新量排行
     @GetMapping("/dailyUpdateVolume")
-    public String dailyUpdateVolume(ModelMap mmap)
-    {
+    public String dailyUpdateVolume(ModelMap mmap) {
         mmap.put("version", RuoYiConfig.getVersion());
         return "dailyUpdateVolume";
     }
 
     //日访问量
     @GetMapping("/dailyVisits")
-    public String dailyVisits(ModelMap mmap)
-    {
+    public String dailyVisits(ModelMap mmap) {
         mmap.put("version", RuoYiConfig.getVersion());
         return "dailyVisits";
     }
 
     //全市政府网站群互动类栏目更新情况
     @GetMapping("/InteractiveColumns")
-    public String InteractiveColumns(ModelMap mmap)
-    {
+    public String InteractiveColumns(ModelMap mmap) {
         mmap.put("version", RuoYiConfig.getVersion());
         return "InteractiveColumns";
     }
 
     //错别字监测
     @GetMapping("/misunderstanding")
-    public String misunderstanding(ModelMap mmap)
-    {
+    public String misunderstanding(ModelMap mmap) {
         mmap.put("version", RuoYiConfig.getVersion());
         return "misunderstanding";
     }
 
     //错链监测
     @GetMapping("/staggeredChain")
-    public String staggeredChain(ModelMap mmap)
-    {
+    public String staggeredChain(ModelMap mmap) {
         mmap.put("version", RuoYiConfig.getVersion());
         return "staggeredChain";
     }
-    @Autowired
-    private IWebsiteAvailabilityMonitorService websiteAvailabilityMonitorService;
 
-    @Autowired
-    private IUnableToAccessWebsiteListTodayService unableToAccessWebsiteListTodayService;
     //吉林市政府网站可用性监测
     @GetMapping("/usability")
-    public Object usability(ModelMap mmap)
-    {
+    public Object usability(ModelMap mmap) {
         ModelAndView modelAndView = new ModelAndView("usability.html");
-        modelAndView.addObject("dataSource",websiteAvailabilityMonitorService.selectWebsiteAvailabilityMonitorList());
+        modelAndView.addObject("dataSource", websiteAvailabilityMonitorService.selectWebsiteAvailabilityMonitorList());
         modelAndView.addObject("dataAccess",unableToAccessWebsiteListTodayService.selectUnableToAccessWebsiteListTodayList());
         mmap.put("version", RuoYiConfig.getVersion());
         return modelAndView;
@@ -203,45 +221,34 @@ public class SysIndexController extends BaseController
 
     //网站普查指标监测
     @GetMapping("/websiteAccess")
-    public Object websiteAccess(ModelMap mmap)
-    {
+    public Object websiteAccess(ModelMap mmap) {
 
         mmap.put("version", RuoYiConfig.getVersion());
         return "websiteAccess";
     }
 
-    public String contentMainClass(Boolean footer, Boolean tagsView)
-    {
-        if (!footer && !tagsView)
-        {
+    public String contentMainClass(Boolean footer, Boolean tagsView) {
+        if (!footer && !tagsView) {
             return "tagsview-footer-hide";
-        }
-        else if (!footer)
-        {
+        } else if (!footer) {
             return "footer-hide";
-        }
-        else if (!tagsView)
-        {
+        } else if (!tagsView) {
             return "tagsview-hide";
         }
         return StringUtils.EMPTY;
     }
 
     // 检查初始密码是否提醒修改
-    public boolean initPasswordIsModify(Date pwdUpdateDate)
-    {
+    public boolean initPasswordIsModify(Date pwdUpdateDate) {
         Integer initPasswordModify = Convert.toInt(configService.selectConfigByKey("sys.account.initPasswordModify"));
         return initPasswordModify != null && initPasswordModify == 1 && pwdUpdateDate == null;
     }
 
     // 检查密码是否过期
-    public boolean passwordIsExpiration(Date pwdUpdateDate)
-    {
+    public boolean passwordIsExpiration(Date pwdUpdateDate) {
         Integer passwordValidateDays = Convert.toInt(configService.selectConfigByKey("sys.account.passwordValidateDays"));
-        if (passwordValidateDays != null && passwordValidateDays > 0)
-        {
-            if (StringUtils.isNull(pwdUpdateDate))
-            {
+        if (passwordValidateDays != null && passwordValidateDays > 0) {
+            if (StringUtils.isNull(pwdUpdateDate)) {
                 // 如果从未修改过初始密码,直接提醒过期
                 return true;
             }

+ 17 - 159
ruoyi-admin/src/main/java/com/ruoyi/web/controller/visual/VisualController.java

@@ -69,7 +69,7 @@ public class VisualController {
      */
     @PostMapping("putUnableToAccessWebsiteListToday")
     @ResponseBody
-    public Result<?> insertBatchUnableToAccessWebsiteListToday(List<UnableToAccessWebsiteListToday> list) {
+    public Result<?> insertBatchUnableToAccessWebsiteListToday(@RequestBody List<UnableToAccessWebsiteListToday> list) {
         unableToAccessWebsiteListTodayService.insertBatch(list);
         return Result.ok();
     }
@@ -79,7 +79,7 @@ public class VisualController {
      */
     @PostMapping("putWebSiteTenDaysHits")
     @ResponseBody
-    public Result<?> insertBatchWebSiteTenDaysHits(WebSiteTenDaysHitsDTO dto) {
+    public Result<?> insertBatchWebSiteTenDaysHits(@RequestBody WebSiteTenDaysHitsDTO dto) {
         webSiteTenDaysHitsService.insertBatch(dto);
         return Result.ok();
     }
@@ -89,7 +89,7 @@ public class VisualController {
      */
     @PostMapping("putVisitingWebsiteRanking")
     @ResponseBody
-    public Result<?> insertBatchVisitingWebsiteRanking(VisitingWebsiteRankingDTO dto) {
+    public Result<?> insertBatchVisitingWebsiteRanking(@RequestBody VisitingWebsiteRankingDTO dto) {
         visitingWebsiteRankingService.insertBatch(dto);
         return Result.ok();
     }
@@ -99,7 +99,7 @@ public class VisualController {
      */
     @PostMapping("putColumnPageView")
     @ResponseBody
-    public Result<?> insertColumnPageView(List<ColumnPageView> list) {
+    public Result<?> insertColumnPageView(@RequestBody List<ColumnPageView> list) {
         columnPageViewService.insertBatch(list);
         return Result.ok();
     }
@@ -109,7 +109,7 @@ public class VisualController {
      */
     @PostMapping("putPopularInformation")
     @ResponseBody
-    public Result<?> insertPopularInformation(List<PopularInformation> list) {
+    public Result<?> insertPopularInformation(@RequestBody List<PopularInformation> list) {
         popularInformationService.insertBatch(list);
         return Result.ok();
     }
@@ -119,7 +119,7 @@ public class VisualController {
      */
     @PostMapping("putMunicipalMisprint")
     @ResponseBody
-    public Result<?> insertMunicipalMisprint(List<MunicipalMisprint> list) {
+    public Result<?> insertMunicipalMisprint(@RequestBody List<MunicipalMisprint> list) {
         municipalMisprintService.insertBatch(list);
         return Result.ok();
     }
@@ -129,7 +129,7 @@ public class VisualController {
      */
     @PostMapping("putCountyAndDistrictMisprint")
     @ResponseBody
-    public Result<?> insertCountyAndDistrictMisprint(List<CountyAndDistrictMisprint> list) {
+    public Result<?> insertCountyAndDistrictMisprint(@RequestBody List<CountyAndDistrictMisprint> list) {
         countyAndDistrictMisprintService.insertBatch(list);
         return Result.ok();
     }
@@ -139,7 +139,7 @@ public class VisualController {
      */
     @PostMapping("putMunicipalErrorLinkMonitor")
     @ResponseBody
-    public Result<?> insertMunicipalErrorLinkMonitor(List<MunicipalErrorLinkMonitor> list) {
+    public Result<?> insertMunicipalErrorLinkMonitor(@RequestBody List<MunicipalErrorLinkMonitor> list) {
         municipalErrorLinkMonitorService.insertBatch(list);
         return Result.ok();
     }
@@ -149,7 +149,7 @@ public class VisualController {
      */
     @PostMapping("putCensusElements")
     @ResponseBody
-    public Result<?> insertCensusElements(List<CensusElements> list) {
+    public Result<?> insertCensusElements(@RequestBody List<CensusElements> list) {
         censusElementsService.insertBatch(list);
         return Result.ok();
     }
@@ -159,7 +159,7 @@ public class VisualController {
      */
     @PostMapping("putCensusItemNegativeInformation")
     @ResponseBody
-    public Result<?> insertCensusItemNegativeInformation(List<CensusItemNegativeInformation> list) {
+    public Result<?> insertCensusItemNegativeInformation(@RequestBody List<CensusItemNegativeInformation> list) {
         censusItemNegativeInformationService.insertBatch(list);
         return Result.ok();
     }
@@ -169,7 +169,7 @@ public class VisualController {
      */
     @PostMapping("putDailyTrafficRanking")
     @ResponseBody
-    public Result<?> insertDailyTrafficRanking(List<DailyTrafficRanking> list) {
+    public Result<?> insertDailyTrafficRanking(@RequestBody List<DailyTrafficRanking> list) {
         dailyTrafficRankingService.insertBatch(list);
         return Result.ok();
     }
@@ -179,7 +179,7 @@ public class VisualController {
      */
     @PostMapping("putDailyUpdateRanking")
     @ResponseBody
-    public Result<?> insertDailyUpdateRanking(List<DailyUpdateRanking> list) {
+    public Result<?> insertDailyUpdateRanking(@RequestBody List<DailyUpdateRanking> list) {
         dailyUpdateRankingService.insertBatch(list);
         return Result.ok();
     }
@@ -189,7 +189,7 @@ public class VisualController {
      */
     @PostMapping("putCountyDailyTrafficRanking")
     @ResponseBody
-    public Result<?> insertCountyDailyTrafficRanking(List<CountyDailyTrafficRanking> list) {
+    public Result<?> insertCountyDailyTrafficRanking(@RequestBody List<CountyDailyTrafficRanking> list) {
         countyDailyTrafficRankingService.insertBatch(list);
         return Result.ok();
     }
@@ -199,7 +199,7 @@ public class VisualController {
      */
     @PostMapping("putCountyDailyUpdateRanking")
     @ResponseBody
-    public Result<?> insertCountyDailyUpdateRanking(List<CountyDailyUpdateRanking> list) {
+    public Result<?> insertCountyDailyUpdateRanking(@RequestBody List<CountyDailyUpdateRanking> list) {
         countyDailyUpdateRankingService.insertBatch(list);
         return Result.ok();
     }
@@ -209,7 +209,7 @@ public class VisualController {
      */
     @PostMapping("putMunicipalInteractiveColumns")
     @ResponseBody
-    public Result<?> insertMunicipalInteractiveColumns(List<MunicipalInteractiveColumns> list) {
+    public Result<?> insertMunicipalInteractiveColumns(@RequestBody List<MunicipalInteractiveColumns> list) {
         municipalInteractiveColumnsService.insertBatch(list);
         return Result.ok();
     }
@@ -219,7 +219,7 @@ public class VisualController {
      */
     @PostMapping("putAreaInteractiveColumns")
     @ResponseBody
-    public Result<?> insertAreaInteractiveColumns(List<AreaInteractiveColumns> list) {
+    public Result<?> insertAreaInteractiveColumns(@RequestBody List<AreaInteractiveColumns> list) {
         areaInteractiveColumnsService.insertBatch(list);
         return Result.ok();
     }
@@ -229,152 +229,10 @@ public class VisualController {
      */
     @PostMapping("putCountyInteractiveColumns")
     @ResponseBody
-    public Result<?> insertCountyInteractiveColumns(List<CountyInteractiveColumns> list) {
+    public Result<?> insertCountyInteractiveColumns(@RequestBody List<CountyInteractiveColumns> list) {
         countyInteractiveColumnsService.insertBatch(list);
         return Result.ok();
     }
 
-    /**
-     * 网站可用性实时监测
-     */
-    @GetMapping("/listWebsiteAvailabilityMonitor")
-    public List<WebsiteAvailabilityMonitor> selectWebsiteAvailabilityMonitorList() {
-        return websiteAvailabilityMonitorService.selectWebsiteAvailabilityMonitorList();
-    }
-
-    /**
-     * 本日无法访问网站列表
-     */
-    @GetMapping("/listUnableToAccessWebsiteListToday")
-    public List<UnableToAccessWebsiteListToday> selectUnableToAccessWebsiteListTodayList() {
-        return unableToAccessWebsiteListTodayService.selectUnableToAccessWebsiteListTodayList();
-    }
-
-    /**
-     * 市政府网站十日内点击量
-     */
-    @GetMapping("/listWebSiteTenDaysHits")
-    public Map<String, List<String>> selectWebSiteTenDaysHitsList() {
-        return webSiteTenDaysHitsService.selectWebSiteTenDaysHitsList();
-    }
-
-    /**
-     * 全国各省访问吉林市政府网站排名
-     */
-    @GetMapping("/listVisitingWebsiteRanking")
-    public Map<String, List<String>> selectVisitingWebsiteRankingList() {
-        return visitingWebsiteRankingService.selectVisitingWebsiteRankingList();
-    }
-    /**
-     * 门户网站栏目浏览量
-     */
-    @GetMapping("/listColumnPageView")
-    public List<ColumnPageView> selectColumnPageViewList() {
-        return columnPageViewService.selectColumnPageViewList();
-    }
-    /**
-     * 每日最受欢迎信息排名
-     */
-    @GetMapping("/listPopularInformation")
-    public List<PopularInformation> selectPopularInformationList() {
-        return popularInformationService.selectPopularInformationList();
-    }
-
-    /**
-     * 市政府门户网站错别字监测-市政府工作部门
-     */
-    @GetMapping("/listMunicipalMisprint")
-    public List<MunicipalMisprint> selectMunicipalMisprintList() {
-        return municipalMisprintService.selectMunicipalMisprintList();
-    }
-
-    /**
-     * 市政府门户网站错别字监测-县(市)区政府
-     */
-    @GetMapping("/listCountyAndDistrictMisprint")
-    public List<CountyAndDistrictMisprint> selectCountyAndDistrictMisprintList() {
-        return countyAndDistrictMisprintService.selectCountyAndDistrictMisprintList();
-    }
-
-    /**
-     * 市政府门户网站错误链接监测
-     */
-    @GetMapping("/listMunicipalErrorLinkMonitor")
-    public List<MunicipalErrorLinkMonitor> selectMunicipalErrorLinkMonitorList() {
-        return municipalErrorLinkMonitorService.selectMunicipalErrorLinkMonitorList();
-    }
-
-    /**
-     * 网站普查要素
-     */
-    @GetMapping("/listCensusElements")
-    public List<CensusElements> selectCensusElementsList() {
-        return censusElementsService.selectCensusElementsList();
-    }
-
-    /**
-     * 网站普查单项否信息
-     */
-    @GetMapping("/listCensusItemNegativeInformation")
-    public List<CensusItemNegativeInformation> selectCensusItemNegativeInformationList() {
-        return censusItemNegativeInformationService.selectCensusItemNegativeInformationList();
-    }
-
-    /**
-     * 市直部门日访问量排名
-     */
-    @GetMapping("/listDailyTrafficRanking")
-    public List<DailyTrafficRanking> selectDailyTrafficRankingList() {
-        return dailyTrafficRankingService.selectDailyTrafficRankingList();
-    }
-
-    /**
-     * 市直部门日更新量排名
-     */
-    @GetMapping("/listDailyUpdateRanking")
-    public List<DailyUpdateRanking> selectDailyUpdateRankingList() {
-        return dailyUpdateRankingService.selectDailyUpdateRankingList();
-    }
-
-    /**
-     * 县(市)区政府日访问量排名
-     */
-    @GetMapping("/listCountyDailyTrafficRanking")
-    public List<CountyDailyTrafficRanking> selectCountyDailyTrafficRankingList() {
-        return countyDailyTrafficRankingService.selectCountyDailyTrafficRankingList();
-    }
-
-    /**
-     * 县(市)区政府日更新量排名
-     */
-    @GetMapping("/listCountyDailyUpdateRanking")
-    public List<CountyDailyUpdateRanking> selectCountyDailyUpdateRankingList() {
-        return countyDailyUpdateRankingService.selectCountyDailyUpdateRankingList();
-    }
-
-    /**
-     * 市政府网站群互动类栏目更新情况-市直部门
-     */
-    @GetMapping("/listMunicipalInteractiveColumns")
-    public List<MunicipalInteractiveColumns> selectMunicipalInteractiveColumnsList() {
-        return municipalInteractiveColumnsService.selectMunicipalInteractiveColumnsList();
-    }
-
-    /**
-     * 市政府网站群互动类栏目更新情况-区、开发区
-     */
-    @GetMapping("/listAreaInteractiveColumns")
-    public List<AreaInteractiveColumns> selectAreaInteractiveColumnsList() {
-        return areaInteractiveColumnsService.selectAreaInteractiveColumnsList();
-    }
-
-    /**
-     * 市政府网站群互动类栏目更新情况告警展示-县(市)
-     */
-    @GetMapping("/listCountyInteractiveColumns")
-    public List<CountyInteractiveColumns> selectCountyInteractiveColumnsList() {
-        return countyInteractiveColumnsService.selectCountyInteractiveColumnsList();
-    }
-
 
 }

+ 6 - 6
ruoyi-admin/src/main/resources/static/js/socket.js

@@ -73,10 +73,10 @@ WebSocketWithHeartbeat.prototype.stopHeartbeat = function() {
 };
 
 WebSocketWithHeartbeat.prototype.sendHeartbeat = function() {
-    var heartbeatMessage = 'heartbeat';
+    var heartbeatMessage = "{code:200,msg:1111,data:null}"
 
     if (this.websocket.readyState === WebSocket.OPEN) {
-        this.websocket.send(heartbeatMessage);
+        // this.websocket.send(heartbeatMessage);
     }
 };
 
@@ -102,10 +102,10 @@ socket.onOpen = function() {
     // 可以在这里执行一些初始化操作或发送初始消息
 };
 
-socket.onMessage = function(data) {
-    console.log('收到消息:', data);
-    // 处理接收到的消息
-};
+// socket.onMessage = function(data) {
+//     console.log('收到消息:', data);
+//     // 处理接收到的消息
+// };
 
 socket.onClose = function() {
     console.log('连接已关闭');

+ 138 - 125
ruoyi-admin/src/main/resources/templates/censusIndicators.html

@@ -1,136 +1,149 @@
 <!-- 网站普查指标监测 -->
 <!DOCTYPE html>
 <html lang="en">
-  <head>
-    <meta charset="UTF-8" />
-    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+<head>
+    <meta charset="UTF-8"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
     <title>网站普查指标监测</title>
-    <link rel="stylesheet" type="text/css" href="/style/html.css" />
-    <link rel="stylesheet" type="text/css" href="/style/base.css" />
-  </head>
-  <body class="black-bg">
-    <!-- 头部 Start -->
-    <div class="header flex-row flex-y-center">
-      <h1>网站普查指标监测</h1>
-    </div>
-    <!-- 头部 End -->
-    <!-- 内容 Start -->
-    <div class="container">
-      <!-- 正文 Start -->
-      <div class="content m-t-20">
+    <link rel="stylesheet" type="text/css" href="/style/html.css"/>
+    <link rel="stylesheet" type="text/css" href="/style/base.css"/>
+</head>
+<body class="black-bg">
+<!-- 头部 Start -->
+<div class="header flex-row flex-y-center">
+    <h1>网站普查指标监测</h1>
+</div>
+<!-- 头部 End -->
+<!-- 内容 Start -->
+<div class="container">
+    <!-- 正文 Start -->
+    <div class="content m-t-20">
         <div class="content-list flex-col" style="top: 0">
-          <!-- 网站普查要素 -->
-          <div class="content-list-left w100 flex-col">
-            <div class="pc-content-title"><span>网站普查要素</span></div>
-            <div class="content-list-body height-28" style="width: auto">
-              <ul>
-                <li class="content-list-body-tit">
-                  <div class="w50"><h5>站点名称</h5></div>
-                  <div class="w15"><h5>结果</h5></div>
-                  <div class="w15"><h5>时间</h5></div>
-                  <div class="w15"><h5>备注</h5></div>
-                </li>
-                <li>
-                  <div class="w50"><span>市住建局</span></div>
-                  <div class="w15">
-                    <span><img src="img/no-img.png" alt="" /></span>
-                  </div>
-                  <div class="w15"><span>2024-1-16 20:20:10</span></div>
-                  <div class="w15"><span>0</span></div>
-                  <img class="table-triangle-top" src="img/triangle.png" />
-                  <img class="table-triangle-btm" src="img/triangle.png" />
-                </li>
-                <li>
-                  <div class="w50"><span>市住建局</span></div>
-                  <div class="w15">
-                    <span><img src="img/yes-img.png" alt="" /></span>
-                  </div>
-                  <div class="w15"><span>2024-1-16 20:20:10</span></div>
-                  <div class="w15"><span>0</span></div>
-                  <img class="table-triangle-top" src="img/triangle.png" />
-                  <img class="table-triangle-btm" src="img/triangle.png" />
-                </li>
-                <li>
-                  <div class="w50"><span>市住建局</span></div>
-                  <div class="w15">
-                    <span><img src="img/no-img.png" alt="" /></span>
-                  </div>
-                  <div class="w15"><span>2024-1-16 20:20:10</span></div>
-                  <div class="w15"><span>0</span></div>
-                  <img class="table-triangle-top" src="img/triangle.png" />
-                  <img class="table-triangle-btm" src="img/triangle.png" />
-                </li>
-              </ul>
+            <!-- 网站普查要素 -->
+            <div class="content-list-left w100 flex-col">
+                <div class="pc-content-title"><span>网站普查要素</span></div>
+                <div class="content-list-body height-28" style="width: auto">
+                    <ul id="messageUlOne">
+                        <li class="content-list-body-tit">
+                            <div class="w50"><h5>站点名称</h5></div>
+                            <div class="w15"><h5>结果</h5></div>
+                            <div class="w15"><h5>时间</h5></div>
+                            <div class="w15"><h5>备注</h5></div>
+                        </li>
+                        <li th:each="item : ${dataSourceOne}">
+                            <div class="w50"><span th:text="${item.siteName}"></span></div>
+                            <div class="w15">
+                                <span th:if="${item.result == '1'}">
+                                    <img src="img/yes-img.png" alt="" />
+                                </span>
+                                <span th:if="${item.result == '2'}">
+                                    <img src="img/no-img.png" alt="" />
+                                </span>
+                            </div>
+                            <div class="w15"><span th:text="${item.censusTime}"></span></div>
+                            <div class="w15"><span th:text="${item.remark}"></span></div>
+                            <img class="table-triangle-top" src="img/triangle.png"/>
+                            <img class="table-triangle-btm" src="img/triangle.png"/>
+                        </li>
+                    </ul>
+                </div>
             </div>
-          </div>
 
-          <!-- 网站普查单项否信息 -->
-          <div class="content-list-left w100 flex-col m-t-20">
-            <div class="pc-content-title"><span>网站普查单项否信息</span></div>
-            <div class="content-list-body height-28" style="width: auto">
-              <ul>
-                <li class="content-list-body-tit">
-                  <div class="w20"><h5>站点名称</h5></div>
-                  <div class="w10 j-left"><span>网址</span></div>
-                  <div class="w10"><span>首页类别</span></div>
-                  <div class="w10"><span>要闻动态</span></div>
-                  <div class="w10"><span>空栏目超5个</span></div>
-                  <div class="w10"><span>互动回应</span></div>
-                  <div class="w10"><span>未更新栏目超10个</span></div>
-                  <div class="w10"><span>通知公告/政策文件类</span></div>
-                  <div class="w10"><span>监测时间</span></div>
-                </li>
-                <li>
-                  <div class="w20"><span>站点名称</span></div>
-                  <div class="w10 j-left"><span>linye.jlcity.gov.cn</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>2024-01-09</span></div>
-                </li>
-                <li>
-                  <div class="w20"><span>站点名称</span></div>
-                  <div class="w10 j-left"><span>linye.jlcity.gov.cn</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>2024-01-09</span></div>
-                </li>
-                <li>
-                  <div class="w20"><span>站点名称</span></div>
-                  <div class="w10 j-left"><span>linye.jlcity.gov.cn</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>2024-01-09</span></div>
-                </li>
-                <li>
-                  <div class="w20"><span>站点名称</span></div>
-                  <div class="w10 j-left"><span>linye.jlcity.gov.cn</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>合格</span></div>
-                  <div class="w10"><span>2024-01-09</span></div>
-                </li>
-              </ul>
+            <!-- 网站普查单项否信息 -->
+            <div class="content-list-left w100 flex-col m-t-20">
+                <div class="pc-content-title"><span>网站普查单项否信息</span></div>
+                <div class="content-list-body height-28" style="width: auto">
+                    <ul id="messageUlTwo">
+                        <li class="content-list-body-tit">
+                            <div class="w20"><h5>站点名称</h5></div>
+                            <div class="w10 j-left"><span>网址</span></div>
+                            <div class="w10"><span>首页类别</span></div>
+                            <div class="w10"><span>要闻动态</span></div>
+                            <div class="w10"><span>空栏目超5个</span></div>
+                            <div class="w10"><span>互动回应</span></div>
+                            <div class="w10"><span>未更新栏目超10个</span></div>
+                            <div class="w10"><span>通知公告/政策文件类</span></div>
+                            <div class="w10"><span>监测时间</span></div>
+                        </li>
+                        <li th:each="item : ${dataSourceTwo}">
+                            <div class="w20"><span th:text="${item.siteName}"></span></div>
+                            <div class="w10 j-left"><span th:text="${item.siteUrl}"></span></div>
+                            <div class="w10"><span th:text="${item.homepageType}"></span></div>
+                            <div class="w10"><span th:text="${item.trends}"></span></div>
+                            <div class="w10"><span th:text="${item.columnFive}"></span></div>
+                            <div class="w10"><span th:text="${item.interactiveResponse}"></span></div>
+                            <div class="w10"><span th:text="${item.columnTen}"></span></div>
+                            <div class="w10"><span th:text="${item.notice}"></span></div>
+                            <div class="w10"><span th:text="${item.monitorTime}"></span></div>
+                        </li>
+                    </ul>
+                </div>
             </div>
-          </div>
         </div>
-      </div>
-      <!-- 正文 End -->
     </div>
-    <!-- 内容End -->
-  </body>
+    <!-- 正文 End -->
+</div>
+<!-- 内容End -->
+<script type="text/javascript" src="/js/socket.js"></script>
+<script>
+    socket.onMessage = function (res) {
+        let message = []
+        message = JSON.parse(res).data
+        // 处理接收到的消息
+        document.getElementById("messageUlTwo").innerHTML = "<li class=\"content-list-body-tit\">\n" +
+            "              <div class=\"w20\"><h5>站点名称</h5></div>\n" +
+            "              <div class=\"w10 j-left\"><span>网址</span></div>\n" +
+            "              <div class=\"w10\"><span>首页类别</span></div>\n" +
+            "              <div class=\"w10\"><span>要闻动态</span></div>\n" +
+            "              <div class=\"w10\"><span>空栏目超5个</span></div>\n" +
+            "              <div class=\"w10\"><span>互动回应</span></div>\n" +
+            "              <div class=\"w10\"><span>未更新栏目超10个</span></div>\n" +
+            "              <div class=\"w10\"><span>通知公告/政策文件类</span></div>\n" +
+            "              <div class=\"w10\"><span>监测时间</span></div>\n" +
+            "            </li";
+        for (let i = 0; i < message.length; i++) {
+            document.getElementById("messageUlTwo").innerHTML += "<li>\n" +
+                `                  <div class=\"w20\"><span>${message[i].siteName}</span></div>\n` +
+                `                  <div class=\"w10 j-left\"><span>${message[i].siteUrl}</span></div>\n` +
+                `              <div class=\"w10\"><span>${message[i].homepageType}</span></div>\n` +
+                `                  <div class=\"w10\"><span>${message[i].trends}</span></div>\n` +
+                `                  <div class=\"w10\"><span>${message[i].columnFive}</span></div>\n` +
+                `                  <div class=\"w10\"><span>${message[i].interactiveResponse}</span></div>\n` +
+                `                  <div class=\"w10\"><span>${message[i].columnTen}</span></div>\n` +
+                `                  <div class=\"w10\"><span>${message[i].notice}</span></div>\n` +
+                `                  <div class=\"w10\"><span>${message[i].monitorTime}</span></div>\n` +
+                `                </li>`
+        }
+    };
+    socket.onMessage = function (res) {
+        let message = []
+        message = JSON.parse(res).data
+        // 处理接收到的消息
+        document.getElementById("messageUlOne").innerHTML = "<li class=\"content-list-body-tit\">\n" +
+            "                            <div class=\"w50\"><h5>站点名称</h5></div>\n" +
+            "                            <div class=\"w15\"><h5>结果</h5></div>\n" +
+            "                            <div class=\"w15\"><h5>时间</h5></div>\n" +
+            "                            <div class=\"w15\"><h5>备注</h5></div>\n" +
+            "                        </li>";
+        for (let i = 0; i < message.length; i++) {
+            let imgSrc = message[i].result == "1" ? 'img/yes-img.png' : 'img/no-img.png';
+            document.getElementById("messageUlOne").innerHTML += "<li>\n" +
+                `                  <div class="w50"><span>${message[i].siteName}</span></div>\n` +
+                `                  <div class="w15">
+                                        <span>
+                                           <img src="${imgSrc}" alt="" />
+                                        </span>
+                                   </div>\n` +
+                `                  <div class="w15"><span>${message[i].censusTime}</span></div>\n` +
+                `                  <div class="w15"><span>${message[i].remark}</span></div>\n` +
+                `                  <img class="table-triangle-top" src="img/triangle.png"/>\n` +
+                `                  <img class="table-triangle-btm" src="img/triangle.png"/>\n` +
+                `                </li>`
+        }
+    };
+
+</script>
+</body>
+
 </html>
+

+ 1 - 1
ruoyi-admin/src/main/resources/templates/index.html

@@ -26,7 +26,7 @@
         </div>
         <a th:href="@{/index}">
             <li class="logo hidden-xs">
-                <span class="logo-lg">吉林监测可视化管理</span>
+                <span class="logo-lg">吉林可视化监测</span>
             </li>
          </a>
         <div class="sidebar-collapse">

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/CensusItemNegativeInformation.java

@@ -18,6 +18,8 @@ public class CensusItemNegativeInformation {
 
     private String columnFive;
 
+    private String interactiveResponse;
+
     private String columnTen;
 
     private String notice;

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CensusElementsServiceImpl.java

@@ -1,17 +1,21 @@
 package com.ruoyi.system.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.ruoyi.system.domain.CensusElements;
 import com.ruoyi.system.domain.ColumnPageView;
 import com.ruoyi.system.mapper.CensusElementsMapper;
 import com.ruoyi.system.mapper.ColumnPageViewMapper;
 import com.ruoyi.system.service.ICensusElementsService;
 import com.ruoyi.system.service.IColumnPageViewService;
+import com.ruoyi.websocket.WebSocketUsers;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import java.util.List;
 
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+
 
 @Service
 public class CensusElementsServiceImpl implements ICensusElementsService {
@@ -32,5 +36,6 @@ public class CensusElementsServiceImpl implements ICensusElementsService {
             censusElementsMapper.deleteCensusElementsAll();
         }
         censusElementsMapper.insertBatch(list);
+        WebSocketUsers.sendMessageToUsersByText(JSON.toJSONString(success(list)));
     }
 }

+ 6 - 3
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CensusItemNegativeInformationServiceImpl.java

@@ -1,17 +1,19 @@
 package com.ruoyi.system.service.impl;
 
-import com.ruoyi.system.domain.CensusElements;
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.system.domain.CensusItemNegativeInformation;
-import com.ruoyi.system.mapper.CensusElementsMapper;
 import com.ruoyi.system.mapper.CensusItemNegativeInformationMapper;
-import com.ruoyi.system.service.ICensusElementsService;
 import com.ruoyi.system.service.ICensusItemNegativeInformationService;
+import com.ruoyi.websocket.WebSocketUsers;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import java.util.List;
 
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+
 
 @Service
 public class CensusItemNegativeInformationServiceImpl implements ICensusItemNegativeInformationService {
@@ -32,5 +34,6 @@ public class CensusItemNegativeInformationServiceImpl implements ICensusItemNega
             censusItemNegativeInformationMapper.deleteCensusItemNegativeInformationAll();
         }
         censusItemNegativeInformationMapper.insertBatch(list);
+        WebSocketUsers.sendMessageToUsersByText(JSON.toJSONString(success(list)));
     }
 }

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UnableToAccessWebsiteListTodayImpl.java

@@ -1,11 +1,13 @@
 package com.ruoyi.system.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.ruoyi.system.domain.UnableToAccessWebsiteListToday;
 import com.ruoyi.system.domain.WebSiteTenDaysHits;
 import com.ruoyi.system.mapper.UnableToAccessWebsiteListTodayMapper;
 import com.ruoyi.system.mapper.WebSiteTenDaysHitsMapper;
 import com.ruoyi.system.service.IUnableToAccessWebsiteListTodayService;
 import com.ruoyi.system.service.IWebSiteTenDaysHitsService;
+import com.ruoyi.websocket.WebSocketUsers;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -32,5 +34,6 @@ public class UnableToAccessWebsiteListTodayImpl implements IUnableToAccessWebsit
             unableToAccessWebsiteListTodayMapper.deleteUnableToAccessWebsiteListTodayAll();
         }
         unableToAccessWebsiteListTodayMapper.insertBatch(list);
+        WebSocketUsers.sendMessageToUsersByText(JSON.toJSONString(list));
     }
 }

+ 0 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WebsiteAvailabilityMonitorServiceImpl.java

@@ -21,7 +21,6 @@ public class WebsiteAvailabilityMonitorServiceImpl implements IWebsiteAvailabili
 
     @Override
     public List<WebsiteAvailabilityMonitor> selectWebsiteAvailabilityMonitorList() {
-        WebSocketUsers.sendMessageToUsersByText(JSONObject.toJSONString(websiteAvailabilityMonitorMapper.selectWebsiteAvailabilityMonitorList()));
         return websiteAvailabilityMonitorMapper.selectWebsiteAvailabilityMonitorList();
     }
 

+ 4 - 3
ruoyi-system/src/main/resources/mapper/system/CensusItemNegativeInformationMapper.xml

@@ -11,13 +11,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="homepageType"     column="homepage_type"     />
         <result property="trends"     column="trends"     />
         <result property="columnFive"     column="column_five"     />
+        <result property="interactiveResponse"     column="interactive_response"     />
         <result property="columnTen"     column="column_ten"     />
         <result property="notice"     column="notice"     />
         <result property="monitorTime"     column="monitor_time"     />
     </resultMap>
     
     <sql id="selectCensusItemNegativeInformationVo">
-        select id, site_name, site_url, homepage_type, trends, column_five, column_ten, notice, monitor_time from sooka_censusitem_negativeinformation
+        select id, site_name, site_url, homepage_type, trends, column_five, interactive_response, column_ten, notice, monitor_time from sooka_censusitem_negativeinformation
     </sql>
 
     <select id="selectCensusItemNegativeInformationList" parameterType="CensusItemNegativeInformation" resultMap="CensusItemNegativeInformationResult">
@@ -29,9 +30,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</delete>
 
 	<insert id="insertBatch">
-		insert into sooka_censusitem_negativeinformation (site_name, site_url, homepage_type, trends, column_five, column_ten, notice, monitor_time) values
+		insert into sooka_censusitem_negativeinformation (site_name, site_url, homepage_type, trends, column_five, interactive_response, column_ten, notice, monitor_time) values
 		<foreach item="item" collection="list" separator=",">
-			(#{item.siteName},#{item.siteUrl},#{item.homepageType},#{item.trends},#{item.columnFive},#{item.columnTen},#{item.notice},#{item.monitorTime})
+			(#{item.siteName},#{item.siteUrl},#{item.homepageType},#{item.trends},#{item.columnFive},#{item.interactiveResponse},#{item.columnTen},#{item.notice},#{item.monitorTime})
 		</foreach>
 	</insert>