Browse Source

用户状态统计列表开发

gao.qiang 12 hours ago
parent
commit
2154beee92

+ 3 - 1
business-service/src/main/java/com/ozs/service/entity/vo/UserStateStatisticsResp.java

@@ -19,7 +19,7 @@ import java.util.Date;
 @AllArgsConstructor
 @NoArgsConstructor
 @Builder
-public class UserStateStatisticsResp  implements Serializable {
+public class UserStateStatisticsResp extends PageVo implements Serializable {
     private static final long serialVersionUID = 1L;
     @Excel(name = "姓名")
     private String nikeName;
@@ -30,5 +30,7 @@ public class UserStateStatisticsResp  implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date createTime ;
+    private String userId;
+    private Integer isDisable;
     private Integer faultNum;
 }

+ 4 - 1
business-service/src/main/java/com/ozs/service/mapper/UserStateStatisticsMapper.java

@@ -2,6 +2,7 @@ package com.ozs.service.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ozs.service.entity.UserStateStatistics;
+import com.ozs.service.entity.vo.DeviceStateResp;
 import com.ozs.service.entity.vo.UserStateStatisticsResp;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -20,5 +21,7 @@ import java.util.List;
 @Mapper
 public interface UserStateStatisticsMapper extends BaseMapper<UserStateStatistics> {
 
-    List<UserStateStatisticsResp> getUserStateStatistics(@Param("startTime")String startTime, @Param("endTime")String endTime,@Param("userState") Integer userState);
+    List<UserStateStatisticsResp> getUserStateStatistics(@Param("startTime")String startTime, @Param("endTime")String endTime,@Param("userId") String userId);
+
+    List<UserStateStatisticsResp> userStateStatisticsPage(UserStateStatisticsResp userStateStatisticsResp);
 }

+ 6 - 2
business-service/src/main/java/com/ozs/service/service/UserStateStatisticsService.java

@@ -1,7 +1,9 @@
 package com.ozs.service.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ozs.service.entity.UserStateStatistics;
+import com.ozs.service.entity.vo.DeviceStateResp;
 import com.ozs.service.entity.vo.UserStateStatisticsResp;
 
 import java.util.List;
@@ -15,7 +17,9 @@ import java.util.List;
  * @since 2023-02-17
  */
 public interface UserStateStatisticsService extends IService<UserStateStatistics> {
-    List<UserStateStatisticsResp> getUserStateStatistics(String startTime, String endTime,Integer userState );
+    List<UserStateStatisticsResp> getUserStateStatistics(String startTime, String endTime,String userId );
 
-    List<UserStateStatisticsResp> exportUserStateStatistics(String startTime, String endTime,Integer userState);
+    List<UserStateStatisticsResp> exportUserStateStatistics(String startTime, String endTime,String userId);
+
+    IPage<UserStateStatisticsResp> userStateStatisticsPage(UserStateStatisticsResp userStateStatisticsResp);
 }

+ 20 - 4
business-service/src/main/java/com/ozs/service/service/impl/UserStateStatisticsServiceImpl.java

@@ -1,8 +1,11 @@
 package com.ozs.service.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
 import com.ozs.service.entity.UserStateStatistics;
 import com.ozs.service.entity.vo.BaseDeviceResumeVo;
+import com.ozs.service.entity.vo.DeviceStateResp;
 import com.ozs.service.entity.vo.UserStateStatisticsResp;
 import com.ozs.service.mapper.UserStateStatisticsMapper;
 import com.ozs.service.service.UserStateStatisticsService;
@@ -20,12 +23,25 @@ public class UserStateStatisticsServiceImpl extends ServiceImpl<UserStateStatist
     @Autowired
     private  UserStateStatisticsMapper userStateStatisticsMapper;
     @Override
-    public List<UserStateStatisticsResp> getUserStateStatistics(String startTime, String endTime,Integer userState) {
-        return userStateStatisticsMapper.getUserStateStatistics(startTime, endTime, userState);
+    public List<UserStateStatisticsResp> getUserStateStatistics(String startTime, String endTime,String userId) {
+        return userStateStatisticsMapper.getUserStateStatistics(startTime, endTime, userId);
     }
 
     @Override
-    public List<UserStateStatisticsResp> exportUserStateStatistics(String startTime, String endTime,Integer userState) {
-        return userStateStatisticsMapper.getUserStateStatistics(startTime, endTime, userState);
+    public List<UserStateStatisticsResp> exportUserStateStatistics(String startTime, String endTime,String userId) {
+        return userStateStatisticsMapper.getUserStateStatistics(startTime, endTime, userId);
+    }
+
+    @Override
+    public IPage<UserStateStatisticsResp> userStateStatisticsPage(UserStateStatisticsResp userStateStatisticsResp) {
+        int pageNum = Integer.parseInt(userStateStatisticsResp.getPageNum().toString());
+        int pageSize = Integer.parseInt(userStateStatisticsResp.getPageSize().toString());
+        com.github.pagehelper.Page<UserStateStatisticsResp> page = PageHelper.startPage(pageNum, pageSize)
+                .doSelectPage(() -> userStateStatisticsMapper.userStateStatisticsPage(userStateStatisticsResp));
+        com.baomidou.mybatisplus.extension.plugins.pagination.Page<UserStateStatisticsResp> pageR =
+                new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageNum, pageSize);
+        pageR.setRecords(page.getResult());
+        pageR.setTotal(page.getTotal());
+        return pageR;
     }
 }

+ 25 - 2
business-service/src/main/resources/mapper/service/UserStateStatisticsMapper.xml

@@ -17,8 +17,8 @@
         FROM
         user_state_statistics u
         <where>
-            <if test="userState != null and userState != 0">
-                AND u.is_disable =#{userState}
+            <if test="userId != null and userId != ''">
+                AND u.user_id =#{userId}
             </if>
             <if test="startTime != null and startTime != ''">
                 AND u.create_time &gt;=#{startTime}
@@ -35,4 +35,27 @@
         </where>
         ORDER BY u.create_time desc
     </select>
+    <select id="userStateStatisticsPage" resultType="com.ozs.service.entity.vo.UserStateStatisticsResp">
+        SELECT * FROM (
+        SELECT
+        u.nike_name AS nikeName,
+        u.user_name AS userName,
+        u.create_time AS createTime,
+        CASE u.is_disable
+        WHEN 1 THEN '在线'
+        WHEN 2 THEN '离线'
+        END AS isDisableName,
+        u.user_id AS userId,
+        ROW_NUMBER() OVER (PARTITION BY u.nike_name ORDER BY u.create_time DESC) as rn
+        FROM
+        user_state_statistics u
+        <where>
+            <if test="isDisable != null and isDisable != 0">
+                AND u.is_disable = #{isDisable}
+            </if>
+        </where>
+        ) t
+        WHERE t.rn = 1
+        ORDER BY t.createTime DESC
+    </select>
 </mapper>

+ 22 - 9
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/UserStateStatisticsController.java

@@ -1,18 +1,18 @@
 package com.ozs.web.controller.accountmanagment;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ozs.common.annotation.Log;
 import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.enums.BusinessType;
 import com.ozs.common.utils.poi.ExcelUtil;
+import com.ozs.service.entity.vo.DeviceStateResp;
 import com.ozs.service.entity.vo.UserStateStatisticsResp;
 import com.ozs.service.service.UserStateStatisticsService;
+import com.ozs.system.service.DataScoreUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
@@ -28,15 +28,16 @@ public class UserStateStatisticsController extends BaseController {
 
     @Autowired
     private UserStateStatisticsService userStateStatisticsService;
-
+    @Autowired
+    private DataScoreUtil dataScoreUtil;
 
     @GetMapping("/getUserStateStatistics")
     @Log(title = "用户状态履历列表", businessType = BusinessType.SELECT)
-    public AjaxResult getUserStateStatistics(@RequestParam(value = "userState", required = false) Integer userState,
+    public AjaxResult getUserStateStatistics(@RequestParam(value = "userId", required = false) String userId,
                                              @RequestParam(value = "startTime", required = false) String startTime,
                                              @RequestParam(value = "endTime", required = false) String endTime) {
 
-        List<UserStateStatisticsResp> userStateStatisticsRespList = userStateStatisticsService.getUserStateStatistics(startTime, endTime, userState);
+        List<UserStateStatisticsResp> userStateStatisticsRespList = userStateStatisticsService.getUserStateStatistics(startTime, endTime, userId);
         return AjaxResult.success(userStateStatisticsRespList);
     }
 
@@ -44,11 +45,23 @@ public class UserStateStatisticsController extends BaseController {
     @GetMapping("/exportUserStateStatistics")
     @Log(title = "导出用户状态履历", businessType = BusinessType.EXPORT)
     public void exportUserStateStatistics(HttpServletResponse response,
-                                          @RequestParam(value = "userState", required = false) Integer userState,
+                                          @RequestParam(value = "userId", required = false) String userId,
                                           @RequestParam(value = "startTime", required = false) String startTime,
                                           @RequestParam(value = "endTime", required = false) String endTime) {
-        List<UserStateStatisticsResp> userStateStatisticsRespList = userStateStatisticsService.exportUserStateStatistics(startTime, endTime, userState);
+        List<UserStateStatisticsResp> userStateStatisticsRespList = userStateStatisticsService.exportUserStateStatistics(startTime, endTime, userId);
         ExcelUtil<UserStateStatisticsResp> util = new ExcelUtil<>(UserStateStatisticsResp.class);
         util.exportExcel(response, userStateStatisticsRespList, "用户状态履历数据");
     }
+
+
+    @PostMapping("/userStateStatistics/page")
+    @Log(title = "用户状态分页列表", businessType = BusinessType.SELECT)
+    public AjaxResult userStateStatisticsPage(@RequestBody UserStateStatisticsResp userStateStatisticsResp) {
+        userStateStatisticsResp = (UserStateStatisticsResp) dataScoreUtil.setDataScore(getUserId(), userStateStatisticsResp);
+        IPage<UserStateStatisticsResp> page = userStateStatisticsService.userStateStatisticsPage(userStateStatisticsResp);
+        page.setTotal(page.getTotal());
+        page.setCurrent(page.getCurrent());
+        page.setPages(page.getPages());
+        return AjaxResult.success(page);
+    }
 }