| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- package com.fdkankan.manage.service.impl;
- import cn.dev33.satoken.stp.StpUtil;
- import com.fdkankan.fyun.face.FYunFileServiceInterface;
- import com.fdkankan.manage.common.FilePath;
- import com.fdkankan.manage.entity.DistrictCode;
- import com.fdkankan.manage.entity.JyUser;
- import com.fdkankan.manage.mapper.IDataMapper;
- import com.fdkankan.manage.service.*;
- import com.fdkankan.manage.util.Dateutils;
- import com.fdkankan.manage.vo.request.SceneTotalParam;
- import com.fdkankan.manage.vo.response.*;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.util.*;
- import java.util.stream.Collectors;
- @Service
- public class DataService implements IDataService {
- @Autowired
- IDataMapper dataMapper;
- @Autowired
- IJyUserPlatformService userPlatformService;
- @Autowired
- IJyUserService jyUserService;
- @Autowired
- ISysRoleService sysRoleService;
- @Autowired
- IDistrictCodeService districtCodeService;
- @Autowired
- IScenePlusService scenePlusService;
- private JyUser commonSetParam(SceneTotalParam param){
- Long sysUserId = Long.valueOf(StpUtil.getLoginId().toString());
- Integer loginPlatformId = userPlatformService.getLoginPlatformId();
- JyUser jyUser = jyUserService.getBySysId(sysUserId);
- if(!sysRoleService.isSuperAdmin()){
- Boolean flag = sysRoleService.isAdmin();
- if(!flag){
- param.setUserId(jyUser.getUserId());
- }else {
- param.setPlatformId(loginPlatformId);
- }
- }
- return jyUser;
- }
- @Override
- public SceneTotalVo sceneTotal(SceneTotalParam param) {
- JyUser jyUser = commonSetParam(param);
- SceneTotalVo totalVo = new SceneTotalVo();
- Long totalSceneCount = dataMapper.totalSceneCount(param);
- param.setStartTime(Dateutils.getStartTime(Dateutils.getDaysAgoStr(30)));
- param.setEndTime(Dateutils.getEndTime(Dateutils.getDaysAgoStr(30)));
- Long preMonthAddCount = dataMapper.totalSceneCount(param);
- param.setStartTime(Dateutils.getStartTime(Dateutils.getDaysAgoStr(0)));
- param.setEndTime(Dateutils.getEndTime(Dateutils.getDaysAgoStr(0)));
- Long todayAddCount = dataMapper.totalSceneCount(param);
- Long totalUserCount = dataMapper.totalUserCount(param);
- Integer totalSceneUserCount = dataMapper.totalSceneUserCount(param).size();
- param.setUserId(jyUser.getUserId());
- Long userSceneCount = dataMapper.totalSceneCount(param);
- totalVo.setTotalSceneCount(totalSceneCount);
- totalVo.setTimeSceneCount(preMonthAddCount);
- totalVo.setTodaySceneCount(todayAddCount);
- totalVo.setTotalUserCount(totalUserCount);
- totalVo.setTotalSceneUserCount(Long.valueOf(totalSceneUserCount));
- totalVo.setUserSceneCount(userSceneCount);
- return totalVo;
- }
- @Override
- public List<SceneTrendVoList> sceneTrend(SceneTotalParam param) {
- commonSetParam(param);
- List<String> datesStr = new ArrayList<>();
- if(param.getTimeList() == null || param.getTimeList().isEmpty()){
- datesStr = Dateutils.findDatesStr(Dateutils.getAddTime(-30, Dateutils.DAY), new Date(), Dateutils.DAY);
- }else {
- datesStr = Dateutils.findDatesStr(Dateutils.getDate(param.getStartTime()),Dateutils.getDate(param.getEndTime()),Dateutils.DAY);
- }
- HashMap<String,Long> sceneMap = new HashMap<>();
- HashMap<String,Long> userMap = new HashMap<>();
- datesStr.forEach(e ->sceneMap.put(e,0L));
- datesStr.forEach(e ->userMap.put(e,0L));
- List<GroupByCountVo> groupByCounts = dataMapper.getSceneGroupByDay(param);
- groupByCounts.forEach(e ->sceneMap.put(e.getGroupKey(),e.getTotalCount()));
- List<GroupByCountVo> userCount = dataMapper.getUserGroupByDay(param);
- userCount.forEach(e ->userMap.put(e.getGroupKey(),userMap.get(e.getGroupKey() +1)));
- List<GroupByCountVo> sceneList = new ArrayList<>();
- for (String key : sceneMap.keySet()) {
- sceneList.add(new GroupByCountVo(key,sceneMap.get(key)));
- }
- List<GroupByCountVo> userList = new ArrayList<>();
- for (String key : userMap.keySet()) {
- userList.add(new GroupByCountVo(key,userMap.get(key)));
- }
- List<SceneTrendVoList> reList = new ArrayList<>();
- SceneTrendVoList sceneTrendVoList = new SceneTrendVoList();
- sceneTrendVoList.setType("scene");
- sceneTrendVoList.setList(sceneList);
- reList.add(sceneTrendVoList);
- SceneTrendVoList sceneTrendVoList2 = new SceneTrendVoList();
- sceneTrendVoList2.setType("user");
- sceneTrendVoList2.setList(userList);
- reList.add(sceneTrendVoList2);
- return reList;
- }
- @Override
- public Object districtScatter(SceneTotalParam param) {
- commonSetParam(param);
- List<GroupByCountVo> dataList = dataMapper.getSceneGroupByDistrict(param);
- List<String> districtCodeList = dataList.stream().map(GroupByCountVo::getGroupKey).collect(Collectors.toList());
- HashMap<String, DistrictCode> map = districtCodeService.getByCodeList(districtCodeList);
- for (GroupByCountVo groupByCountVo : dataList) {
- if(groupByCountVo.getGroupKey() == null){
- groupByCountVo.setGroupKey("unknown");
- groupByCountVo.setGroupName("unknown");
- }
- DistrictCode districtCode = map.get(groupByCountVo.getGroupKey());
- if(districtCode != null){
- groupByCountVo.setGroupName(districtCode.getName());
- }
- }
- return dataList;
- }
- @Autowired
- IExcelService excelService;
- @Override
- public void exportSceneList(SceneTotalParam param, HttpServletRequest req, HttpServletResponse resp) {
- commonSetParam(param);
- List<ExportSceneList> exportSceneLists = dataMapper.getExPortSceneList(param);
- try {
- excelService.commonExport(req,resp,"场景数据",exportSceneLists, ExportSceneList.class);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
|