whycxzp
2024-10-22 d08836b395519deddba190fdbb2938f98aef274a
3.日登录人数
2个文件已修改
37 ■■■■ 已修改文件
src/main/java/com/whyc/service/LoginService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/webService/IMS_ServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/LoginService.java
@@ -12,10 +12,7 @@
import com.whyc.pojo.PermitGroupUser;
import com.whyc.pojo.UserClient;
import com.whyc.pojo.UserInf;
import com.whyc.util.ActionUtil;
import com.whyc.util.CommonUtil;
import com.whyc.util.MessageUtils;
import com.whyc.util.RSAUtil;
import com.whyc.util.*;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken;
@@ -271,6 +268,14 @@
            //登录成功
            servletContext.setAttribute(userName, request.getSession().getId());
            //日登录用户统计
            HashMap<String, String> loginMap = (HashMap<String, String>) servletContext.getAttribute("login");
            if(loginMap == null){
                loginMap = new HashMap<>();
                servletContext.setAttribute("login", loginMap);
            }
            String dateStr = DateUtil.YYYY_MM_DD.format(new Date());
            loginMap.put(userName, dateStr);
            //Session存储当前用户及权限组列表
            request.getSession().setAttribute("user", subject.getPrincipal());
            request.getSession().setMaxInactiveInterval(60*60*24);
src/main/java/com/whyc/webService/IMS_ServiceImpl.java
@@ -1,6 +1,7 @@
package com.whyc.webService;
import com.whyc.service.UserService;
import com.whyc.util.DateUtil;
import com.whyc.webService.dto.request.Api;
import com.whyc.webService.dto.request.RequestParam;
import com.whyc.webService.dto.response.response1.Corporation;
@@ -13,6 +14,7 @@
import javax.jws.WebService;
import javax.servlet.ServletContext;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
@@ -91,7 +93,11 @@
                            break;
                        //2在线用户数
                        case "BusinessSystemOnlineNum":
                            item2(apisResponse);
                            getItem2(apisResponse);
                            break;
                        //3日登录用户数
                        case "BusinessDayLoginNum":
                            getItem3(apisResponse);
                            break;
                    }
                }
@@ -107,7 +113,21 @@
        return null;
    }
    private void item2(List<com.whyc.webService.dto.response.response1.Api> apisResponse) {
    private void getItem3(List<com.whyc.webService.dto.response.response1.Api> apisResponse) {
        HashMap<String, String> loginMap = (HashMap<String, String>) servletContext.getAttribute("login");
        int loginQuantity = 0;
        if(loginMap != null){
            String dateStr = DateUtil.YYYY_MM_DD.format(new Date());
            loginMap.values().removeIf(aString -> !aString.equals(dateStr));
            loginQuantity = loginMap.size();
        }
        com.whyc.webService.dto.response.response1.Api apiResponse = new com.whyc.webService.dto.response.response1.Api();
        apiResponse.setName("BusinessDayLoginNum");
        apiResponse.setValue(loginQuantity);
        apisResponse.add(apiResponse);
    }
    private void getItem2(List<com.whyc.webService.dto.response.response1.Api> apisResponse) {
        HashMap<String, Long> onlineMap = (HashMap<String, Long>) servletContext.getAttribute("online");
        //统计更新时间在10秒钟内的
        int onlineQuantity = 0;