DataService.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package com.fdkankan.manage.service.impl;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import com.fdkankan.fyun.face.FYunFileServiceInterface;
  4. import com.fdkankan.manage.common.FilePath;
  5. import com.fdkankan.manage.entity.DistrictCode;
  6. import com.fdkankan.manage.entity.JyUser;
  7. import com.fdkankan.manage.mapper.IDataMapper;
  8. import com.fdkankan.manage.service.*;
  9. import com.fdkankan.manage.util.Dateutils;
  10. import com.fdkankan.manage.vo.request.SceneTotalParam;
  11. import com.fdkankan.manage.vo.response.*;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Service;
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16. import java.util.*;
  17. import java.util.stream.Collectors;
  18. @Service
  19. public class DataService implements IDataService {
  20. @Autowired
  21. IDataMapper dataMapper;
  22. @Autowired
  23. IJyUserPlatformService userPlatformService;
  24. @Autowired
  25. IJyUserService jyUserService;
  26. @Autowired
  27. ISysRoleService sysRoleService;
  28. @Autowired
  29. IDistrictCodeService districtCodeService;
  30. @Autowired
  31. IScenePlusService scenePlusService;
  32. private JyUser commonSetParam(SceneTotalParam param){
  33. Long sysUserId = Long.valueOf(StpUtil.getLoginId().toString());
  34. Integer loginPlatformId = userPlatformService.getLoginPlatformId();
  35. JyUser jyUser = jyUserService.getBySysId(sysUserId);
  36. if(!sysRoleService.isSuperAdmin()){
  37. Boolean flag = sysRoleService.isAdmin();
  38. if(!flag){
  39. param.setUserId(jyUser.getUserId());
  40. }else {
  41. param.setPlatformId(loginPlatformId);
  42. }
  43. }
  44. return jyUser;
  45. }
  46. @Override
  47. public SceneTotalVo sceneTotal(SceneTotalParam param) {
  48. JyUser jyUser = commonSetParam(param);
  49. SceneTotalVo totalVo = new SceneTotalVo();
  50. Long totalSceneCount = dataMapper.totalSceneCount(param);
  51. param.setStartTime(Dateutils.getStartTime(Dateutils.getDaysAgoStr(30)));
  52. param.setEndTime(Dateutils.getEndTime(Dateutils.getDaysAgoStr(30)));
  53. Long preMonthAddCount = dataMapper.totalSceneCount(param);
  54. param.setStartTime(Dateutils.getStartTime(Dateutils.getDaysAgoStr(0)));
  55. param.setEndTime(Dateutils.getEndTime(Dateutils.getDaysAgoStr(0)));
  56. Long todayAddCount = dataMapper.totalSceneCount(param);
  57. Long totalUserCount = dataMapper.totalUserCount(param);
  58. Integer totalSceneUserCount = dataMapper.totalSceneUserCount(param).size();
  59. param.setUserId(jyUser.getUserId());
  60. Long userSceneCount = dataMapper.totalSceneCount(param);
  61. totalVo.setTotalSceneCount(totalSceneCount);
  62. totalVo.setTimeSceneCount(preMonthAddCount);
  63. totalVo.setTodaySceneCount(todayAddCount);
  64. totalVo.setTotalUserCount(totalUserCount);
  65. totalVo.setTotalSceneUserCount(Long.valueOf(totalSceneUserCount));
  66. totalVo.setUserSceneCount(userSceneCount);
  67. return totalVo;
  68. }
  69. @Override
  70. public List<SceneTrendVoList> sceneTrend(SceneTotalParam param) {
  71. commonSetParam(param);
  72. List<String> datesStr = new ArrayList<>();
  73. if(param.getTimeList() == null || param.getTimeList().isEmpty()){
  74. datesStr = Dateutils.findDatesStr(Dateutils.getAddTime(-30, Dateutils.DAY), new Date(), Dateutils.DAY);
  75. }else {
  76. datesStr = Dateutils.findDatesStr(Dateutils.getDate(param.getStartTime()),Dateutils.getDate(param.getEndTime()),Dateutils.DAY);
  77. }
  78. HashMap<String,Long> sceneMap = new HashMap<>();
  79. HashMap<String,Long> userMap = new HashMap<>();
  80. datesStr.forEach(e ->sceneMap.put(e,0L));
  81. datesStr.forEach(e ->userMap.put(e,0L));
  82. List<GroupByCountVo> groupByCounts = dataMapper.getSceneGroupByDay(param);
  83. groupByCounts.forEach(e ->sceneMap.put(e.getGroupKey(),e.getTotalCount()));
  84. List<GroupByCountVo> userCount = dataMapper.getUserGroupByDay(param);
  85. userCount.forEach(e ->userMap.put(e.getGroupKey(),userMap.get(e.getGroupKey() +1)));
  86. List<GroupByCountVo> sceneList = new ArrayList<>();
  87. for (String key : sceneMap.keySet()) {
  88. sceneList.add(new GroupByCountVo(key,sceneMap.get(key)));
  89. }
  90. List<GroupByCountVo> userList = new ArrayList<>();
  91. for (String key : userMap.keySet()) {
  92. userList.add(new GroupByCountVo(key,userMap.get(key)));
  93. }
  94. List<SceneTrendVoList> reList = new ArrayList<>();
  95. SceneTrendVoList sceneTrendVoList = new SceneTrendVoList();
  96. sceneTrendVoList.setType("scene");
  97. sceneTrendVoList.setList(sceneList);
  98. reList.add(sceneTrendVoList);
  99. SceneTrendVoList sceneTrendVoList2 = new SceneTrendVoList();
  100. sceneTrendVoList2.setType("user");
  101. sceneTrendVoList2.setList(userList);
  102. reList.add(sceneTrendVoList2);
  103. return reList;
  104. }
  105. @Override
  106. public Object districtScatter(SceneTotalParam param) {
  107. commonSetParam(param);
  108. List<GroupByCountVo> dataList = dataMapper.getSceneGroupByDistrict(param);
  109. List<String> districtCodeList = dataList.stream().map(GroupByCountVo::getGroupKey).collect(Collectors.toList());
  110. HashMap<String, DistrictCode> map = districtCodeService.getByCodeList(districtCodeList);
  111. for (GroupByCountVo groupByCountVo : dataList) {
  112. if(groupByCountVo.getGroupKey() == null){
  113. groupByCountVo.setGroupKey("unknown");
  114. groupByCountVo.setGroupName("unknown");
  115. }
  116. DistrictCode districtCode = map.get(groupByCountVo.getGroupKey());
  117. if(districtCode != null){
  118. groupByCountVo.setGroupName(districtCode.getName());
  119. }
  120. }
  121. return dataList;
  122. }
  123. @Autowired
  124. IExcelService excelService;
  125. @Override
  126. public void exportSceneList(SceneTotalParam param, HttpServletRequest req, HttpServletResponse resp) {
  127. commonSetParam(param);
  128. List<ExportSceneList> exportSceneLists = dataMapper.getExPortSceneList(param);
  129. try {
  130. excelService.commonExport(req,resp,"场景数据",exportSceneLists, ExportSceneList.class);
  131. } catch (Exception e) {
  132. throw new RuntimeException(e);
  133. }
  134. }
  135. }