From ef6dc207445822bdb4bb3ac9d81e86ebfbe488e9 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Thu, 01 Jun 2023 16:10:28 +0800
Subject: [PATCH] app使用率接口

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/vo/AppStatistics.java                     |   17 +++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/controller/SmLogManageController.java     |   16 ++--
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java              |    5 +
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java     |    5 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/vo/AppStatisticsVO.java                   |   34 +++++++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.java             |    8 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/ISmLogManageService.java          |    3 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.xml              |   29 +++++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/impl/ISmLogManageServiceImpl.java |   21 +++++++
 9 files changed, 127 insertions(+), 11 deletions(-)

diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java
index 10504a9..6275bb4 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java
@@ -52,7 +52,7 @@
 	String USER_AUTH_INFO = API_PREFIX + "/user-auth-info";
 	String SAVE_USER = API_PREFIX + "/save-user";
 	String REMOVE_USER = API_PREFIX + "/remove-user";
-
+	String GET_ALL_USER_LIST = API_PREFIX+ "/get-all-user-list";
 	/**
 	 * 获取用户信息
 	 *
@@ -141,4 +141,7 @@
 	@PostMapping(REMOVE_USER)
 	R<Boolean> removeUser(@RequestParam("tenantIds") String tenantIds);
 
+	@GetMapping(GET_ALL_USER_LIST)
+	R<List<User>> getAllUserList();
+
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/controller/SmLogManageController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/controller/SmLogManageController.java
index 76bfffc..0b76c9d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/controller/SmLogManageController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/controller/SmLogManageController.java
@@ -2,6 +2,7 @@
 
 import cn.gistack.sm.log.entity.SmLogManage;
 import cn.gistack.sm.log.service.ISmLogManageService;
+import cn.gistack.sm.log.vo.AppStatisticsVO;
 import cn.gistack.sm.patrol.entity.PatrolConfig;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -9,10 +10,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.ObjectUtil;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @ClassName 日志管理
@@ -33,11 +31,13 @@
 	@ApiOperation(value="日志管理-添加", notes="日志管理-添加")
 	@PostMapping(value = "/add")
 	public R add(@RequestBody SmLogManage smLogManage) {
-
-		if (ObjectUtil.isEmpty(smLogManage.getSource())){
-			smLogManage.setSource("WEB");
-		}
 		return R.data(smLogManageService.save(smLogManage));
 	}
 
+	@ApiOperation(value="查询app使用人数", notes="查询app使用人数")
+	@GetMapping(value = "/getAppStatistics")
+	public R getAppStatistics(AppStatisticsVO appStatisticsVO){
+		return R.data(smLogManageService.getAppStatistics(appStatisticsVO));
+	}
+
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.java
index b171490..b6746aa 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.java
@@ -1,7 +1,12 @@
 package cn.gistack.sm.log.mapper;
 
 import cn.gistack.sm.log.entity.SmLogManage;
+import cn.gistack.sm.log.vo.AppStatistics;
+import cn.gistack.sm.log.vo.AppStatisticsVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @ClassName SmLogManageMapper
@@ -11,4 +16,7 @@
  * @Version 1.0
  */
 public interface SmLogManageMapper extends BaseMapper<SmLogManage> {
+	List<AppStatistics> getAppStatistics(@Param("vo") AppStatisticsVO appStatisticsVO);
+
+	Integer getAppUserNum();
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.xml
index 54d17d0..8da5696 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.xml
@@ -1,6 +1,31 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cn.gistack.sm.log.mapper.SmLogManageMapper">
-
-
+    <select id="getAppUserNum"  resultType="java.lang.Integer">
+        SELECT SUM(CASE WHEN useTimes !=0 THEN 1 ELSE 0 END) FROM (
+            SELECT COUNT(*) as useTimes
+            FROM SM_LOG_MANAGE SLM
+            WHERE SLM.SOURCE = 'APP' AND SLM.IS_DELETED = 0
+            GROUP BY SLM.CREATE_USER
+        )
+    </select>
+    <select id="getAppStatistics" resultType="cn.gistack.sm.log.vo.AppStatistics">
+        SELECT COUNT(A.useTime) AS useCount,A.useTime as useTime FROM
+        (
+        SELECT
+        COUNT(*),
+        to_char(create_time,'yyyy-mm-dd') AS useTime,
+        CREATE_USER
+        FROM SK002.SM_LOG_MANAGE
+        WHERE IS_DELETED = 0 AND SOURCE = 'APP'
+        <if test="vo.startTime !=null and vo.startTime !=''">
+            AND DATE_FORMAT(creat_time,'%Y-%m-%d') &gt;= #{vo.startTime}
+        </if>
+        <if test="vo.endTime !=null and vo.endTime !=''">
+            AND DATE_FORMAT(creat_time,'%Y-%m-%d') &lt;= #{vo.endTime}
+        </if>
+        GROUP BY (CREATE_USER,to_char(create_time,'yyyy-mm-dd'),CREATE_USER)
+        ) A
+        GROUP BY A.useTime
+    </select>
 </mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/ISmLogManageService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/ISmLogManageService.java
index 6d65a43..abc5258 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/ISmLogManageService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/ISmLogManageService.java
@@ -1,6 +1,8 @@
 package cn.gistack.sm.log.service;
 
 import cn.gistack.sm.log.entity.SmLogManage;
+import cn.gistack.sm.log.vo.AppStatistics;
+import cn.gistack.sm.log.vo.AppStatisticsVO;
 import org.springblade.core.mp.base.BaseService;
 
 /**
@@ -11,4 +13,5 @@
  * @Version 1.0
  */
 public interface ISmLogManageService extends BaseService<SmLogManage> {
+    AppStatisticsVO getAppStatistics(AppStatisticsVO appStatisticsVO);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/impl/ISmLogManageServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/impl/ISmLogManageServiceImpl.java
index 409c3da..be872fa 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/impl/ISmLogManageServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/impl/ISmLogManageServiceImpl.java
@@ -3,8 +3,14 @@
 import cn.gistack.sm.log.entity.SmLogManage;
 import cn.gistack.sm.log.mapper.SmLogManageMapper;
 import cn.gistack.sm.log.service.ISmLogManageService;
+import cn.gistack.sm.log.vo.AppStatistics;
+import cn.gistack.sm.log.vo.AppStatisticsVO;
+import cn.gistack.system.user.feign.IUserClient;
+import lombok.AllArgsConstructor;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * @ClassName ISmLogManageServiceImpl
@@ -14,5 +20,20 @@
  * @Version 1.0
  */
 @Service
+@AllArgsConstructor
 public class ISmLogManageServiceImpl extends BaseServiceImpl<SmLogManageMapper, SmLogManage> implements ISmLogManageService {
+	private IUserClient userClient;
+
+	@Override
+	public AppStatisticsVO getAppStatistics(AppStatisticsVO appStatisticsVO) {
+
+		Integer appUserNum = baseMapper.getAppUserNum();
+		Integer sysUserNum = userClient.getAllUserList().getData().size();
+		appStatisticsVO.setSysUserNum(sysUserNum);
+		appStatisticsVO.setAppUserNum(appUserNum);
+
+		List<AppStatistics> appStatistics = baseMapper.getAppStatistics(appStatisticsVO);
+		appStatisticsVO.setList(appStatistics);
+		return appStatisticsVO;
+	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/vo/AppStatistics.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/vo/AppStatistics.java
new file mode 100644
index 0000000..c542bc9
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/vo/AppStatistics.java
@@ -0,0 +1,17 @@
+package cn.gistack.sm.log.vo;
+
+import lombok.Data;
+
+@Data
+public class AppStatistics {
+	/**
+	 * 使用次数
+	 */
+	private Integer useCount;
+
+	/**
+	 * 使用时间
+	 */
+	private String useTime;
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/vo/AppStatisticsVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/vo/AppStatisticsVO.java
new file mode 100644
index 0000000..7bba8a9
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/vo/AppStatisticsVO.java
@@ -0,0 +1,34 @@
+package cn.gistack.sm.log.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AppStatisticsVO {
+
+	/**
+	 * 使用人数统计列表
+	 */
+	private List<AppStatistics> list;
+
+	/**
+	 * app使用人数
+	 */
+	private Integer appUserNum;
+
+	/**
+	 * 系统使用人数
+	 */
+	private Integer sysUserNum;
+
+	/**
+	 * 开始时间
+	 */
+	private String startTime;
+
+	/**
+	 * 结束时间
+	 */
+	private String endTime;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java
index 195d942..a28070f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java
@@ -99,4 +99,9 @@
 		return R.data(service.remove(Wrappers.<User>query().lambda().in(User::getTenantId, Func.toStrList(tenantIds))));
 	}
 
+	@Override
+	public R<List<User>> getAllUserList() {
+		return R.data(service.list());
+	}
+
 }

--
Gitblit v1.9.3