| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- 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.common.ResultCode;
- import com.fdkankan.manage.entity.DistrictCode;
- import com.fdkankan.manage.entity.JyPlatform;
- import com.fdkankan.manage.entity.JyUser;
- import com.fdkankan.manage.entity.ScenePlus;
- import com.fdkankan.manage.exception.BusinessException;
- 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;
- @Autowired
- IAuthPageService authPageService;
- private JyUser commonSetParam(SceneTotalParam param){
- JyUser jyUser = jyUserService.getLoginUser();
- if(param.getPlatformId() != null){
- List<JyPlatform> jyPlatforms = authPageService.platformList();
- List<Integer> collect = jyPlatforms.stream().map(JyPlatform::getId).collect(Collectors.toList());
- if(!collect.contains(param.getPlatformId())){
- throw new BusinessException(ResultCode.NOT_PERMISSION);
- }
- }else {
- if(!sysRoleService.isSuperAdmin()){
- Boolean flag = sysRoleService.isAdmin();
- if(!flag){
- param.setUserId(jyUser.getUserId());
- }else {
- param.setPlatformId(jyUser.getPlatformId());
- }
- }
- }
- 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.getDate(new Date())));
- 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);
- String updateTime = dataMapper.getLastSceneBuildTime(param);
- totalVo.setTotalSceneCount(totalSceneCount);
- totalVo.setTimeSceneCount(preMonthAddCount);
- totalVo.setTodaySceneCount(todayAddCount);
- totalVo.setTotalUserCount(totalUserCount);
- totalVo.setTotalSceneUserCount(Long.valueOf(totalSceneUserCount));
- totalVo.setUserSceneCount(userSceneCount);
- totalVo.setUpdateTime(updateTime);
- return totalVo;
- }
- @Override
- public List<SceneTrendVo> 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<>();
- List<GroupByCountVo> groupByCounts = dataMapper.getSceneGroupByDay(param);
- groupByCounts.forEach(e ->sceneMap.put(e.getGroupKey(),e.getTotalCount()));
- List<GroupByCountVo> userCount = dataMapper.getUserGroupByDay(param);
- for (GroupByCountVo groupByCountVo : userCount) {
- if(userMap.get(groupByCountVo.getGroupKey()) != null){
- userMap.put(groupByCountVo.getGroupKey(), userMap.get(groupByCountVo.getGroupKey()) +1);
- }else {
- userMap.put(groupByCountVo.getGroupKey(),1L);
- }
- }
- List<SceneTrendVo> reList = new ArrayList<>();
- for (String key : datesStr) {
- reList.add(new SceneTrendVo(key,userMap.get(key),sceneMap.get(key)));
- }
- 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);
- }
- }
- }
|