package com.ruoyi.demo.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.demo.entity.AttentionPool; import com.ruoyi.demo.entity.AttentionPoolStatistics; import com.ruoyi.demo.entity.BusinessOpportunitiesClue; import com.ruoyi.demo.entity.FollowUpRecord; import com.ruoyi.demo.entity.bo.AttentionPoolStatisticsBo; import com.ruoyi.demo.entity.bo.WorkTableBo; import com.ruoyi.demo.mapper.AttentionPoolDao; import com.ruoyi.demo.mapper.AttentionPoolStatisticsDao; import com.ruoyi.demo.mapper.BusinessOpportunitiesDao; import com.ruoyi.demo.mapper.FollowUpDao; import com.ruoyi.demo.service.DatabackService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @Service public class DatabackServiceImpl implements DatabackService { @Autowired AttentionPoolStatisticsDao attentionPoolStatisticsDao; @Autowired AttentionPoolDao attentionPoolDao; @Autowired BusinessOpportunitiesDao businessOpportunitiesDao; @Autowired FollowUpDao followUpDao; @Override public AttentionPoolStatisticsBo searchAbout(String userId, WorkTableBo vo) { int attentionCount = 0; QueryWrapper attentionPoolQueryWrapper = new QueryWrapper<>(); attentionPoolQueryWrapper.eq("user_id",userId); if (vo.getStartTime() != null) attentionPoolQueryWrapper.apply("DATE_FORMAT(`attention_time`,'%Y-%m-%d %H:%i:%s') >= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getStartTime()); if (vo.getEndTime() != null) attentionPoolQueryWrapper.apply("DATE_FORMAT(`attention_time`,'%Y-%m-%d %H:%i:%s') <= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getEndTime()); List attentionPools = attentionPoolDao.selectList(attentionPoolQueryWrapper); if (attentionPools != null) attentionCount = attentionPools.size(); int clueCount = 0; QueryWrapper businessOpportunitiesClueQueryWrapper = new QueryWrapper<>(); businessOpportunitiesClueQueryWrapper.eq("user_id",userId); if (vo.getStartTime() != null) businessOpportunitiesClueQueryWrapper.apply("DATE_FORMAT(`create_time`,'%Y-%m-%d %H:%i:%s') >= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getStartTime()); if (vo.getEndTime() != null) businessOpportunitiesClueQueryWrapper.apply("DATE_FORMAT(`create_time`,'%Y-%m-%d %H:%i:%s') <= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getEndTime()); List businessOpportunitiesClues = businessOpportunitiesDao.selectList(businessOpportunitiesClueQueryWrapper); if (businessOpportunitiesClues != null) clueCount = businessOpportunitiesClues.size(); int onlineCount = 0; QueryWrapper followUpRecordQueryWrapper = new QueryWrapper<>(); followUpRecordQueryWrapper.eq("user_id",userId); followUpRecordQueryWrapper.eq("follow_way","线上电话"); if (vo.getStartTime() != null) followUpRecordQueryWrapper.apply("DATE_FORMAT(`follow_time`,'%Y-%m-%d %H:%i:%s') >= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getStartTime()); if (vo.getEndTime() != null) followUpRecordQueryWrapper.apply("DATE_FORMAT(`follow_time`,'%Y-%m-%d %H:%i:%s') <= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getEndTime()); List followUpRecords = followUpDao.selectList(followUpRecordQueryWrapper); if (followUpRecords != null) onlineCount = followUpRecords.size(); int offlineCount = 0; QueryWrapper followUpRecordQueryWrapper1 = new QueryWrapper<>(); followUpRecordQueryWrapper1.eq("user_id",userId); followUpRecordQueryWrapper1.eq("follow_way","线下实地"); if (vo.getStartTime() != null) followUpRecordQueryWrapper1.apply("DATE_FORMAT(`follow_time`,'%Y-%m-%d %H:%i:%s') >= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getStartTime()); if (vo.getEndTime() != null) followUpRecordQueryWrapper1.apply("DATE_FORMAT(`follow_time`,'%Y-%m-%d %H:%i:%s') <= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getEndTime()); List followUpRecords1 = followUpDao.selectList(followUpRecordQueryWrapper1); if (followUpRecords1 != null) offlineCount = followUpRecords1.size(); AttentionPoolStatisticsBo bo = new AttentionPoolStatisticsBo(); bo.setAttentionCount(attentionCount); bo.setClueCount(clueCount); bo.setOnlineCount(onlineCount); bo.setOfflineCount(offlineCount); return bo; } @Override public List searchTrand(String userId,String condition) { if (condition == null) condition = "day"; List list = new ArrayList<>(); if (condition != null){ if (condition.equals("day")) list = attentionPoolStatisticsDao.selectAllByUserIdAndDay(userId); if (condition.equals("month")) list = attentionPoolStatisticsDao.selectAllByUserIdAndMonth(userId); if (condition.equals("year")) list = attentionPoolStatisticsDao.selectAllByUserIdAndYear(userId); } // List list = attentionPoolStatisticsDao.searchAllByUserId(userId); return list; } }