|  |  | 
 |  |  | import doumeemes.core.model.PageWrap; | 
 |  |  | import doumeemes.core.utils.Utils; | 
 |  |  | import doumeemes.dao.business.model.Company; | 
 |  |  | import doumeemes.dao.business.model.CompanyUser; | 
 |  |  | import doumeemes.dao.ext.dto.ActivityLoginDTO; | 
 |  |  | import doumeemes.dao.ext.vo.ActivityLoginVO; | 
 |  |  | import doumeemes.dao.ext.vo.StagingLoginVO; | 
 |  |  | import doumeemes.dao.system.SystemLoginLogMapper; | 
 |  |  | import doumeemes.dao.system.dto.QuerySystemLoginLogDTO; | 
 |  |  | import doumeemes.dao.system.join.SystemLoginLogJoinMapper; | 
 |  |  | 
 |  |  |         Wrapper<SystemLoginLog> wrapper = new QueryWrapper<>(systemLoginLog); | 
 |  |  |         return systemLoginLogMapper.selectList(wrapper); | 
 |  |  |     } | 
 |  |  |    | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public PageData<SystemLoginLog> findPage(PageWrap<QuerySystemLoginLogDTO> pageWrap) { | 
 |  |  |         IPage<SystemLoginLog> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
 |  |  | 
 |  |  |         MPJLambdaWrapper<SystemLoginLog> mpjLambdaWrapper = new MPJLambdaWrapper<>(); | 
 |  |  |         mpjLambdaWrapper.selectAll(SystemLoginLog.class); | 
 |  |  |         mpjLambdaWrapper.leftJoin(Company.class,Company::getId,SystemLoginLog::getCompanyId); | 
 |  |  |         mpjLambdaWrapper.leftJoin(CompanyUser.class,CompanyUser::getId,SystemLoginLog::getCompanyUserId); | 
 |  |  |         mpjLambdaWrapper.selectAs(Company::getName, SystemLoginLog::getCompanyName); | 
 |  |  |         mpjLambdaWrapper.selectAs(CompanyUser::getName, SystemLoginLog::getCompanyUserName); | 
 |  |  |         // 登录用户名 | 
 |  |  |         if (StringUtils.isNotBlank(pageWrap.getModel().getLoginUsername())) { | 
 |  |  |             mpjLambdaWrapper.like(SystemLoginLog::getLoginUsername, pageWrap.getModel().getLoginUsername()); | 
 |  |  | 
 |  |  |         Wrapper<SystemLoginLog> wrapper = new QueryWrapper<>(systemLoginLog); | 
 |  |  |         return systemLoginLogMapper.selectCount(wrapper); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public StagingLoginVO getStagingLoginVO(){ | 
 |  |  |         StagingLoginVO stagingLoginVO = new StagingLoginVO(); | 
 |  |  |         //今日活跃用户:统计当天登录用户数,一个系统用户在不同的企业登录,算两个用户;一个用户在一个企业内多次登录,算一个用户 | 
 |  |  |         stagingLoginVO.setDayActiveUserNum( | 
 |  |  |             systemLoginLogMapper.selectList(new QueryWrapper<SystemLoginLog>() | 
 |  |  |                     .select(" COMPANY_USER_ID ") | 
 |  |  |                     .isNotNull(" COMPANY_ID ") | 
 |  |  |                     .isNotNull(" COMPANY_USER_ID ") | 
 |  |  |                     .apply(" LOGIN_TIME like concat(CURDATE(),'%') ") | 
 |  |  |                     .groupBy(" COMPANY_ID , COMPANY_USER_ID ") | 
 |  |  |             ).size() | 
 |  |  |         ); | 
 |  |  |         //今日活跃企业:统计当天登录的企业数,一个企业的不同用户登录,算一个企业数; | 
 |  |  |         stagingLoginVO.setDayActiveCompanyNum( | 
 |  |  |                 systemLoginLogMapper.selectList(new QueryWrapper<SystemLoginLog>() | 
 |  |  |                         .select(" COMPANY_ID ") | 
 |  |  |                         .isNotNull(" COMPANY_ID ") | 
 |  |  |                         .isNotNull(" COMPANY_USER_ID ") | 
 |  |  |                         .apply(" LOGIN_TIME like concat(CURDATE(),'%') ") | 
 |  |  |                         .groupBy(" COMPANY_ID ") | 
 |  |  |                 ).size() | 
 |  |  |         ); | 
 |  |  |         //统计本月(自然月)登录的企业数,逻辑同上; | 
 |  |  |         stagingLoginVO.setMonthActiveCompanyNum( | 
 |  |  |                 systemLoginLogMapper.selectList(new QueryWrapper<SystemLoginLog>() | 
 |  |  |                         .select(" COMPANY_ID ") | 
 |  |  |                         .isNotNull(" COMPANY_ID ") | 
 |  |  |                         .isNotNull(" COMPANY_USER_ID ") | 
 |  |  |                         .apply(" LOGIN_TIME like concat(date_format(NOW(), '%Y-%m'),'%') ") | 
 |  |  |                         .groupBy(" COMPANY_ID ") | 
 |  |  |                 ).size() | 
 |  |  |         ); | 
 |  |  |         //本月登录2次及以上企业数:统计本月(自然月)登录2次及以上的企业数,逻辑同上; | 
 |  |  |         stagingLoginVO.setMonthTwoCompanyNum( | 
 |  |  |                 systemLoginLogMapper.selectList(new QueryWrapper<SystemLoginLog>() | 
 |  |  |                         .select(" COMPANY_ID ") | 
 |  |  |                         .isNotNull(" COMPANY_ID ") | 
 |  |  |                         .isNotNull(" COMPANY_USER_ID ") | 
 |  |  |                         .apply(" LOGIN_TIME like concat(date_format(NOW(), '%Y-%m'),'%') ") | 
 |  |  |                         .groupBy(" COMPANY_ID ") | 
 |  |  |                         .having(" count(1) > 1 ") | 
 |  |  |                 ).size() | 
 |  |  |         ); | 
 |  |  |         //本月登录2次及以上企业数(羚羊):统计本月(自然月)登录2次及以上(登录来源于羚羊平台)的企业数,逻辑同上; | 
 |  |  |         stagingLoginVO.setMonthTwoCompanyLYNum( | 
 |  |  |                 systemLoginLogMapper.selectList(new QueryWrapper<SystemLoginLog>() | 
 |  |  |                         .select(" COMPANY_ID ") | 
 |  |  |                         .isNotNull(" COMPANY_ID ") | 
 |  |  |                         .isNotNull(" COMPANY_USER_ID ") | 
 |  |  |                         .apply(" LOGIN_TIME like concat(date_format(NOW(), '%Y-%m'),'%') ") | 
 |  |  |                         .eq("ORGIN",2) | 
 |  |  |                         .groupBy(" COMPANY_ID ") | 
 |  |  |                         .having(" count(1) > 1 ") | 
 |  |  |                 ).size() | 
 |  |  |         ); | 
 |  |  |         return stagingLoginVO; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } |