From be3a3227c1abc4c076aac3c1c08ff8ea3e3734d1 Mon Sep 17 00:00:00 2001 From: Tang Date: Wed, 10 Jan 2024 11:11:52 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=AE=BF=E9=97=AE=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/IndexController.java | 36 +++++++++++++++++++ .../system/mapper/log/SysLogLoginMapper.java | 11 ++++++ .../impl/log/SysLogLoginServiceImpl.java | 35 ++++++++++++++++++ .../service/log/SysLogLoginService.java | 7 ++++ .../mapper/system/log/SysLogLoginMapper.xml | 6 ++++ 5 files changed, 95 insertions(+) create mode 100644 tang-admin/src/main/java/com/tang/admin/controller/IndexController.java diff --git a/tang-admin/src/main/java/com/tang/admin/controller/IndexController.java b/tang-admin/src/main/java/com/tang/admin/controller/IndexController.java new file mode 100644 index 00000000..cef72622 --- /dev/null +++ b/tang-admin/src/main/java/com/tang/admin/controller/IndexController.java @@ -0,0 +1,36 @@ +package com.tang.admin.controller; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.tang.commons.utils.AjaxResult; +import com.tang.system.service.log.SysLogLoginService; + +/** + * 首页逻辑控制层 + * + * @author Tang + */ +@RestController +@RequestMapping("/index") +public class IndexController { + + private final SysLogLoginService logLoginService; + + public IndexController(SysLogLoginService logLoginService) { + this.logLoginService = logLoginService; + } + + /** + * 用户访问量 + * + * @return 用户访问量 + */ + @GetMapping("/user-visit") + public AjaxResult userVisit() { + var userVisit = logLoginService.selectUserVisit(); + return AjaxResult.success(userVisit); + } + +} diff --git a/tang-system/src/main/java/com/tang/system/mapper/log/SysLogLoginMapper.java b/tang-system/src/main/java/com/tang/system/mapper/log/SysLogLoginMapper.java index 8652057f..becaf86b 100644 --- a/tang-system/src/main/java/com/tang/system/mapper/log/SysLogLoginMapper.java +++ b/tang-system/src/main/java/com/tang/system/mapper/log/SysLogLoginMapper.java @@ -1,7 +1,10 @@ package com.tang.system.mapper.log; +import java.time.LocalDate; import java.util.List; +import org.apache.ibatis.annotations.Param; + import com.tang.system.entity.log.SysLogLogin; /** @@ -35,6 +38,14 @@ public interface SysLogLoginMapper { */ SysLogLogin selectSysLogLoginByLoginId(Long loginId); + /* + * 查询用户访问量 + * + * @startTime 开始时间 + * @return 用户访问量 + */ + List selectUserVisit(@Param("userId") Long userId, @Param("startDate") LocalDate startDate); + /** * 新增登陆日志信息 * diff --git a/tang-system/src/main/java/com/tang/system/service/impl/log/SysLogLoginServiceImpl.java b/tang-system/src/main/java/com/tang/system/service/impl/log/SysLogLoginServiceImpl.java index 64b0a48d..9940385e 100644 --- a/tang-system/src/main/java/com/tang/system/service/impl/log/SysLogLoginServiceImpl.java +++ b/tang-system/src/main/java/com/tang/system/service/impl/log/SysLogLoginServiceImpl.java @@ -1,6 +1,10 @@ package com.tang.system.service.impl.log; +import java.time.DayOfWeek; +import java.time.LocalDate; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import org.springframework.stereotype.Service; @@ -58,6 +62,37 @@ public SysLogLogin selectSysLogLoginByLoginId(Long loginId) { return sysLogLoginMapper.selectSysLogLoginByLoginId(loginId); } + /* + * 查询用户访问量 + * + * @return 用户访问量 + */ + @Override + public List selectUserVisit() { + var userId = SecurityUtils.getUser().getUserId(); + var now = LocalDate.now(); + var monday = now.with(DayOfWeek.MONDAY); + var sunday = monday.plusDays(6); + var startDate = monday; + var list = sysLogLoginMapper.selectUserVisit(userId, startDate); + var listGrouped = list.stream() + .collect(Collectors.groupingBy(logLogin -> { + var loginTime = logLogin.getLoginTime(); + return LocalDate.of(loginTime.getYear(), loginTime.getMonth(), loginTime.getDayOfMonth()); + })); + var userVisitList = new ArrayList(); + while (startDate.isBefore(sunday)) { + var count = listGrouped.get(startDate); + if (count != null) { + userVisitList.add(count.stream().count()); + } else { + userVisitList.add(0L); + } + startDate = startDate.plusDays(1); + } + return userVisitList; + } + /** * 新增登陆日志信息 * diff --git a/tang-system/src/main/java/com/tang/system/service/log/SysLogLoginService.java b/tang-system/src/main/java/com/tang/system/service/log/SysLogLoginService.java index a676b825..c06e79df 100644 --- a/tang-system/src/main/java/com/tang/system/service/log/SysLogLoginService.java +++ b/tang-system/src/main/java/com/tang/system/service/log/SysLogLoginService.java @@ -36,6 +36,13 @@ public interface SysLogLoginService { */ SysLogLogin selectSysLogLoginByLoginId(Long loginId); + /* + * 查询用户访问量 + * + * @return 用户访问量 + */ + List selectUserVisit(); + /** * 新增登陆日志信息 * diff --git a/tang-system/src/main/resources/mapper/system/log/SysLogLoginMapper.xml b/tang-system/src/main/resources/mapper/system/log/SysLogLoginMapper.xml index 4122f45c..03edb645 100644 --- a/tang-system/src/main/resources/mapper/system/log/SysLogLoginMapper.xml +++ b/tang-system/src/main/resources/mapper/system/log/SysLogLoginMapper.xml @@ -51,6 +51,12 @@ where ll.login_id = #{loginId} + + insert into sys_log_login (