DatabackServiceImpl.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package com.ruoyi.demo.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.ruoyi.demo.entity.AttentionPool;
  4. import com.ruoyi.demo.entity.AttentionPoolStatistics;
  5. import com.ruoyi.demo.entity.BusinessOpportunitiesClue;
  6. import com.ruoyi.demo.entity.FollowUpRecord;
  7. import com.ruoyi.demo.entity.bo.AttentionPoolStatisticsBo;
  8. import com.ruoyi.demo.entity.bo.WorkTableBo;
  9. import com.ruoyi.demo.mapper.AttentionPoolDao;
  10. import com.ruoyi.demo.mapper.AttentionPoolStatisticsDao;
  11. import com.ruoyi.demo.mapper.BusinessOpportunitiesDao;
  12. import com.ruoyi.demo.mapper.FollowUpDao;
  13. import com.ruoyi.demo.service.DatabackService;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import java.time.LocalDateTime;
  17. import java.util.ArrayList;
  18. import java.util.List;
  19. @Service
  20. public class DatabackServiceImpl implements DatabackService {
  21. @Autowired
  22. AttentionPoolStatisticsDao attentionPoolStatisticsDao;
  23. @Autowired
  24. AttentionPoolDao attentionPoolDao;
  25. @Autowired
  26. BusinessOpportunitiesDao businessOpportunitiesDao;
  27. @Autowired
  28. FollowUpDao followUpDao;
  29. @Override
  30. public AttentionPoolStatisticsBo searchAbout(String userId, WorkTableBo vo) {
  31. int attentionCount = 0;
  32. QueryWrapper<AttentionPool> attentionPoolQueryWrapper = new QueryWrapper<>();
  33. attentionPoolQueryWrapper.eq("user_id",userId);
  34. if (vo.getStartTime() != null)
  35. attentionPoolQueryWrapper.apply("DATE_FORMAT(`attention_time`,'%Y-%m-%d %H:%i:%s') >= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getStartTime());
  36. if (vo.getEndTime() != null)
  37. attentionPoolQueryWrapper.apply("DATE_FORMAT(`attention_time`,'%Y-%m-%d %H:%i:%s') <= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getEndTime());
  38. List<AttentionPool> attentionPools = attentionPoolDao.selectList(attentionPoolQueryWrapper);
  39. if (attentionPools != null)
  40. attentionCount = attentionPools.size();
  41. int clueCount = 0;
  42. QueryWrapper<BusinessOpportunitiesClue> businessOpportunitiesClueQueryWrapper = new QueryWrapper<>();
  43. businessOpportunitiesClueQueryWrapper.eq("user_id",userId);
  44. if (vo.getStartTime() != null)
  45. businessOpportunitiesClueQueryWrapper.apply("DATE_FORMAT(`create_time`,'%Y-%m-%d %H:%i:%s') >= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getStartTime());
  46. if (vo.getEndTime() != null)
  47. businessOpportunitiesClueQueryWrapper.apply("DATE_FORMAT(`create_time`,'%Y-%m-%d %H:%i:%s') <= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getEndTime());
  48. List<BusinessOpportunitiesClue> businessOpportunitiesClues = businessOpportunitiesDao.selectList(businessOpportunitiesClueQueryWrapper);
  49. if (businessOpportunitiesClues != null)
  50. clueCount = businessOpportunitiesClues.size();
  51. int onlineCount = 0;
  52. QueryWrapper<FollowUpRecord> followUpRecordQueryWrapper = new QueryWrapper<>();
  53. followUpRecordQueryWrapper.eq("user_id",userId);
  54. followUpRecordQueryWrapper.eq("follow_way","线上电话");
  55. if (vo.getStartTime() != null)
  56. followUpRecordQueryWrapper.apply("DATE_FORMAT(`follow_time`,'%Y-%m-%d %H:%i:%s') >= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getStartTime());
  57. if (vo.getEndTime() != null)
  58. followUpRecordQueryWrapper.apply("DATE_FORMAT(`follow_time`,'%Y-%m-%d %H:%i:%s') <= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getEndTime());
  59. List<FollowUpRecord> followUpRecords = followUpDao.selectList(followUpRecordQueryWrapper);
  60. if (followUpRecords != null)
  61. onlineCount = followUpRecords.size();
  62. int offlineCount = 0;
  63. QueryWrapper<FollowUpRecord> followUpRecordQueryWrapper1 = new QueryWrapper<>();
  64. followUpRecordQueryWrapper1.eq("user_id",userId);
  65. followUpRecordQueryWrapper1.eq("follow_way","线下实地");
  66. if (vo.getStartTime() != null)
  67. followUpRecordQueryWrapper1.apply("DATE_FORMAT(`follow_time`,'%Y-%m-%d %H:%i:%s') >= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getStartTime());
  68. if (vo.getEndTime() != null)
  69. followUpRecordQueryWrapper1.apply("DATE_FORMAT(`follow_time`,'%Y-%m-%d %H:%i:%s') <= DATE_FORMAT({0},'%Y-%m-%d %H:%i:%s')",vo.getEndTime());
  70. List<FollowUpRecord> followUpRecords1 = followUpDao.selectList(followUpRecordQueryWrapper1);
  71. if (followUpRecords1 != null)
  72. offlineCount = followUpRecords1.size();
  73. AttentionPoolStatisticsBo bo = new AttentionPoolStatisticsBo();
  74. bo.setAttentionCount(attentionCount);
  75. bo.setClueCount(clueCount);
  76. bo.setOnlineCount(onlineCount);
  77. bo.setOfflineCount(offlineCount);
  78. return bo;
  79. }
  80. @Override
  81. public List<AttentionPoolStatisticsBo> searchTrand(String userId,String condition) {
  82. if (condition == null)
  83. condition = "day";
  84. List<AttentionPoolStatisticsBo> list = new ArrayList<>();
  85. if (condition != null){
  86. if (condition.equals("day"))
  87. list = attentionPoolStatisticsDao.selectAllByUserIdAndDay(userId);
  88. if (condition.equals("month"))
  89. list = attentionPoolStatisticsDao.selectAllByUserIdAndMonth(userId);
  90. if (condition.equals("year"))
  91. list = attentionPoolStatisticsDao.selectAllByUserIdAndYear(userId);
  92. }
  93. // List<AttentionPoolStatistics> list = attentionPoolStatisticsDao.searchAllByUserId(userId);
  94. return list;
  95. }
  96. }