| | |
| | | package com.se.system.controller; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.se.common.core.utils.ServletUtils; |
| | | import com.se.common.core.utils.StringUtils; |
| | | import com.se.common.core.utils.ip.IpUtils; |
| | | import com.se.common.core.web.controller.BaseController; |
| | | import com.se.common.core.web.domain.AjaxResult; |
| | | import com.se.common.core.web.page.TableDataInfo; |
| | | import com.se.common.log.annotation.Log; |
| | | import com.se.common.log.enums.BusinessType; |
| | | import com.se.common.security.utils.SecurityUtils; |
| | | import com.se.system.api.domain.SysLogininfor; |
| | | import com.se.system.api.domain.SysOperLog; |
| | | import com.se.system.api.model.LoginUser; |
| | | import com.se.system.service.IndexService; |
| | | import com.se.system.service.inte.ISysLogininforService; |
| | | import com.se.system.service.inte.ISysOperLogService; |
| | | import org.springframework.http.HttpMethod; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | |
| | | import javax.annotation.Resource; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @RestController |
| | |
| | | @SuppressWarnings("ALL") |
| | | public class IndexController extends BaseController { |
| | | @Resource |
| | | IndexService indexService; |
| | | |
| | | @Resource |
| | | ISysOperLogService operLogService; |
| | | |
| | | @GetMapping("/monitor") |
| | | public Map<String, Object> monitor() { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | @Resource |
| | | ISysLogininforService logininforService; |
| | | |
| | | return map; |
| | | } |
| | | |
| | | @GetMapping("/userList") |
| | | public Map<String, Object> userList() { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | |
| | | return map; |
| | | } |
| | | |
| | | @GetMapping("/uvCount") |
| | | public Map<String, Object> uvCount() { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | |
| | | return map; |
| | | } |
| | | |
| | | // ①PV统计:PV(Page View):页面浏览量或点击量,即网站所有页面被访问的总次数。 |
| | | // 每打开或刷新一个页面,PV就会增加一次,多次打开或刷新同一页面则浏览量累计。 |
| | | // PV反映了网站用户访问的网页数量,是衡量网站流量的重要指标之一 |
| | | @Log(title = "PV统计", businessType = BusinessType.OTHER) |
| | | @GetMapping("/pvCount") |
| | | public Map<String, Object> pvCount() { |
| | | Map<String, Object> map = new HashMap<>(); |
| | |
| | | return map; |
| | | } |
| | | |
| | | //@Log(title = "角色管理", businessType = BusinessType.INSERT) |
| | | // ②访问数量:UV(Unique Visitor):独立访客数,指访问网站的独立用户数。一天内同一访客多次访问只计算一次。 |
| | | // 可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过来访电脑的cookies实现的。 |
| | | // 如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的。 |
| | | @Log(title = "UV统计", businessType = BusinessType.OTHER) |
| | | @GetMapping("/uvCount") |
| | | public Map<String, Object> uvCount() { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | |
| | | return map; |
| | | } |
| | | |
| | | // ③新增用户统计:一段时间内新注册的用户数量。目前定为一周内的新增用户数量。 |
| | | @Log(title = "新增用户统计", businessType = BusinessType.OTHER) |
| | | @GetMapping("/newUserCount") |
| | | public Map<String, Object> newUserCount(Integer day) { |
| | | if (null == day || day < 1) day = 7; |
| | | if (day > 365) day = 365; |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("newUserCount", indexService.newUserCount(day)); |
| | | |
| | | return map; |
| | | } |
| | | |
| | | // ④用户登录信息:以一定形式展示新登录或退出登录的用户账户及时间。 |
| | | @Log(title = "用户登录信息", businessType = BusinessType.OTHER) |
| | | @GetMapping("/lastLogin") |
| | | public TableDataInfo lastLogin(SysLogininfor logininfor) { |
| | | startPage(); |
| | | List<SysLogininfor> list = logininforService.selectLogininforList(logininfor); |
| | | |
| | | return getDataTable(list); |
| | | } |
| | | |
| | | // ⑤用户统计排行(活跃用户):以一定时间段内的登录时间或登录次数排名,展示前五名的用户信息 |
| | | @Log(title = "用户统计排行", businessType = BusinessType.OTHER) |
| | | @GetMapping("/userCountList") |
| | | public Map<String, Object> userCountList() { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | |
| | | return map; |
| | | } |
| | | |
| | | // ⑥常用系统展示/各系统访问信息:基于用户访问次数排名,展示前五个系统的排名 |
| | | // 并展示各个系统一天内、三天内、一周内的访问次数。【可考虑按其他指标进行排名展示】 |
| | | @Log(title = "用户统计排行", businessType = BusinessType.OTHER) |
| | | @GetMapping("/sysVisitList") |
| | | public Map<String, Object> sysVisitList() { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | |
| | | return map; |
| | | } |
| | | |
| | | @Log(title = "运维监控", businessType = BusinessType.OTHER) |
| | | @GetMapping("/monitor") |
| | | public Map<String, Object> monitor() { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("cpu", "50%"); |
| | | map.put("mem", "65%"); |
| | | map.put("ratio", "40%"); |
| | | |
| | | return map; |
| | | } |
| | | |
| | | @GetMapping("/addAccessLog") |
| | | public AjaxResult addAccessLog(String title, int status) { |
| | | long start = System.currentTimeMillis(); |
| | |
| | | return toAjax(rows); |
| | | } |
| | | } |
| | | |
| | | |