123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- package com.cdf.schedule;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.cdf.entity.PageData;
- import com.cdf.entity.TotalData;
- import com.cdf.entity.TotalDataHk;
- import com.cdf.service.IPageDataService;
- import com.cdf.service.ITotalDataHkService;
- import com.cdf.service.ITotalDataService;
- import com.cdf.util.DateUtil;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Component;
- import javax.naming.ldap.PagedResultsControl;
- import java.math.BigDecimal;
- import java.util.Date;
- import java.util.List;
- @Component
- @Slf4j
- public class ScheduleTask {
- @Autowired
- IPageDataService pageDataService;
- @Autowired
- ITotalDataService totalDataService;
- @Autowired
- ITotalDataHkService totalDataHkService;
- public static String day = null;
- @Scheduled(cron = "0 0 0 * * ?")
- //@Scheduled(cron = "30 * * * * ?")
- public void statisticsH5Data() throws Exception {
- if(day == null){
- day = DateUtil.getDay(new Date(), -1);
- }
- log.info("开始统计{}的数据,{}",day,DateUtil.getDateTime(new Date()));
- TotalData totalData = new TotalData();
- TotalDataHk totalDatahk = new TotalDataHk();
- this.dataT(totalData,totalDatahk,22);
- totalDataService.saveOrUpdate(totalData);
- this.dataT(totalData,totalDatahk,33);
- totalDataHkService.saveOrUpdate(totalDatahk);
- //待添加传输
- log.info("{结束统计{}的数据,{}",day,DateUtil.getDateTime(new Date()));
- day = null;
- }
- private void dataT(TotalData totalData,TotalDataHk totalDataHk,Integer deptId) throws Exception {
- LambdaQueryWrapper<PageData> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(PageData::getDeptId,deptId);
- wrapper.eq(PageData::getDay,day);
- List<PageData> list = pageDataService.list(wrapper);
- Long stopTimeCount = 0L;
- BigDecimal jumpCount = BigDecimal.ZERO;
- BigDecimal clickGameCount = BigDecimal.ZERO;
- BigDecimal clickShopCount = BigDecimal.ZERO;
- Long totalVideoNum = 0L;
- Long totalStepNum = 0L;
- for (PageData pageData : list) {
- if(pageData.getStepNum() == 0){
- jumpCount = jumpCount.add(new BigDecimal(1));
- }
- if(pageData.getIsClickGame() == 1){
- clickGameCount = clickGameCount.add(new BigDecimal(1));
- }
- if(pageData.getIsClickShop() == 1){
- clickShopCount = clickShopCount.add(new BigDecimal(1));
- }
- if(pageData.getStopTime() == 0 && pageData.getInPageTime() !=null ){
- long time = 10000L; //进入无操作,记录为停留10秒
- String inPageTime = pageData.getInPageTime();
- if(pageData.getOutPageTime() == null ){
- if(pageData.getStepNum() >0){ //进入有操作,记录为停留30分钟
- long outTime = DateUtil.getDateTime(pageData.getInPageTime()) + 1000 * 60 * 30;
- time = outTime - DateUtil.getDateTime(inPageTime);
- }
- }else {
- time = DateUtil.getDateTime(pageData.getOutPageTime()) - DateUtil.getDateTime(inPageTime);
- }
- pageData.setStopTime(time);
- }
- stopTimeCount += pageData.getStopTime();
- totalVideoNum += pageData.getVideoNum();
- totalStepNum += pageData.getStepNum();
- }
- long avgStopTime = 0L;
- BigDecimal avgJump = BigDecimal.ZERO;
- BigDecimal avgClickGame = BigDecimal.ZERO;
- BigDecimal avgClickShop = BigDecimal.ZERO;
- long avgStepNum = 0L;
- if(list.size()>0){
- avgStopTime = (stopTimeCount / list.size())/1000;
- avgJump = jumpCount.divide(new BigDecimal(list.size()),4,BigDecimal.ROUND_HALF_UP);
- avgClickGame = clickGameCount.divide(new BigDecimal(list.size()),4,BigDecimal.ROUND_HALF_UP);
- avgClickShop = clickShopCount.divide(new BigDecimal(list.size()),4,BigDecimal.ROUND_HALF_UP);
- avgStepNum = totalStepNum / list.size();
- }
- if(deptId == 22){
- totalData.setId(day);
- totalData.setAvgStopTime(avgStopTime);
- totalData.setAvgJump(avgJump);
- totalData.setAvgClickGame(avgClickGame);
- totalData.setAvgClickShop(avgClickShop);
- totalData.setVideoNum(totalVideoNum);
- totalData.setAvgStepNum(avgStepNum);
- }
- if(deptId == 33){
- totalDataHk.setId(day);
- totalDataHk.setAvgStopTime(avgStopTime);
- totalDataHk.setAvgJump(avgJump);
- totalDataHk.setAvgClickGame(avgClickGame);
- totalDataHk.setAvgClickShop(avgClickShop);
- totalDataHk.setVideoNum(totalVideoNum);
- totalDataHk.setAvgStepNum(avgStepNum);
- }
- }
- }
|