AdminStatisticsServiceImpl.java 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. package com.goafanti.admin.service.impl;
  2. import com.goafanti.admin.bo.AdminStatisticsBo;
  3. import com.goafanti.admin.bo.ConsultantStatisticsBo;
  4. import com.goafanti.admin.bo.ConsultantUserCount;
  5. import com.goafanti.admin.service.AdminStatisticsService;
  6. import com.goafanti.common.constant.AFTConstants;
  7. import com.goafanti.common.dao.AdminMapper;
  8. import com.goafanti.common.model.AdminUserCount;
  9. import com.goafanti.common.utils.DateUtils;
  10. import com.goafanti.core.shiro.token.TokenManager;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import java.math.BigDecimal;
  14. import java.util.*;
  15. @Service
  16. public class AdminStatisticsServiceImpl implements AdminStatisticsService {
  17. @Autowired
  18. private AdminMapper adminMapper;
  19. @Override
  20. public Object info( String startTime, String endTime) {
  21. String aid=TokenManager.getAdminId();
  22. endTime=endTime+" 23:59:59";
  23. AdminStatisticsBo adminStatisticsBo = adminMapper.adminStatisticsInfo(aid);
  24. if (adminStatisticsBo==null)adminStatisticsBo=new AdminStatisticsBo();
  25. if (adminStatisticsBo.getReceivables()==null) adminStatisticsBo.setReceivables(new BigDecimal(0));
  26. AdminStatisticsBo asb = adminMapper.adminStatisticsInfoByTime(aid, startTime, endTime);
  27. if (asb==null) {
  28. adminStatisticsBo.setRangePrivateSum(0);
  29. adminStatisticsBo.setRangeSignSum(0);
  30. adminStatisticsBo.setRangeChannelSum(0);
  31. adminStatisticsBo.setRangeFollowSum(0);
  32. adminStatisticsBo.setRangeOrderSum(0);
  33. }else {
  34. adminStatisticsBo.setRangePrivateSum(asb.getRangePrivateSum());
  35. adminStatisticsBo.setRangeSignSum(asb.getRangeSignSum());
  36. adminStatisticsBo.setRangeChannelSum(asb.getRangeChannelSum());
  37. adminStatisticsBo.setRangeFollowSum(asb.getRangeFollowSum());
  38. adminStatisticsBo.setRangeOrderSum(asb.getRangeOrderSum());
  39. }
  40. Integer rangePublicReleaseSum=adminMapper.adminStatisticsPublicReleaseByAidAndTime(aid, startTime, endTime);
  41. if (rangePublicReleaseSum==null)rangePublicReleaseSum=0;
  42. adminStatisticsBo.setRangePublicReleaseSum(rangePublicReleaseSum);
  43. BigDecimal rangeReceivables=adminMapper.addAdminContactsRangeReceivables(aid,startTime,endTime);
  44. adminStatisticsBo.setRangeReceivables(rangeReceivables);
  45. return adminStatisticsBo;
  46. }
  47. @Override
  48. // @Cacheable(value = "adminStatisticeLists#300", key = "'key:'+#aid")
  49. public Object lists(String aid) {
  50. //获取当月的列表
  51. Map<String,Object> map=new HashMap<>();
  52. Days days = new Days();
  53. List<String> thisMonth = getThisMonth(days);
  54. List<AdminUserCount> userList = adminMapper.thisMonthUser(days.firstDay,days.endDay, aid);
  55. List<Integer> signList=new ArrayList<>();
  56. List<Integer> privateList=new ArrayList<>();
  57. List<Integer> channelList=new ArrayList<>();
  58. List<Integer> userFollowList=new ArrayList<>();
  59. List<Integer> orderList=new ArrayList<>();
  60. List<Integer> publicReleaseList=new ArrayList<>();
  61. int signCount=0,privateCount=0,channelCount=0,followCount=0,orderCount=0,publicReleaseCount=0;
  62. for (String dates : thisMonth) {
  63. boolean flag=true;
  64. for (AdminUserCount e : userList) {
  65. String formatDate = DateUtils.formatDate(e.getDateTime(), AFTConstants.YYYYMMDD);
  66. if (dates.equals(formatDate)){
  67. signCount=signCount+e.getSignCount();
  68. int newSign=signCount;
  69. signList.add(newSign);
  70. privateCount=privateCount+e.getPrivateCount();
  71. int newPrivate=privateCount;
  72. privateList.add(newPrivate);
  73. channelCount=channelCount+e.getChannelCount();
  74. int newChannel=channelCount;
  75. channelList.add(newChannel);
  76. followCount=followCount+e.getFollowCount();
  77. int newFollow=followCount;
  78. userFollowList.add(newFollow);
  79. orderCount=orderCount+e.getOrderCount();
  80. int newOrder=orderCount;
  81. orderList.add(newOrder);
  82. publicReleaseCount=publicReleaseCount+e.getPublicReleaseCount();
  83. int newPublicRelease=publicReleaseCount;
  84. publicReleaseList.add(newPublicRelease);
  85. flag=false;
  86. }
  87. }
  88. if (flag){
  89. signList.add(signCount);
  90. privateList.add(privateCount);
  91. channelList.add(channelCount);
  92. userFollowList.add(followCount);
  93. orderList.add(orderCount);
  94. publicReleaseList.add(publicReleaseCount);
  95. }
  96. }
  97. map.put("dates",thisMonth);
  98. map.put("signList",signList);
  99. map.put("privateList",privateList);
  100. map.put("channelList",channelList);
  101. //跟进数
  102. map.put("userFollowList",userFollowList);
  103. //订单数
  104. map.put("orderList",orderList);
  105. //公出企业数
  106. map.put("publicReleaseList",publicReleaseList);
  107. return map;
  108. }
  109. @Override
  110. public Object consultantInfo(String startTime, String endTime) {
  111. String aid=TokenManager.getAdminId();
  112. endTime=endTime+" 23:59:59";
  113. ConsultantStatisticsBo res = adminMapper.consultantStatisticsInfo(aid);
  114. if (res.getCountPublicRelease()==null)res.setCountPublicRelease(0);
  115. if (res.getOrderPayment()==null)res.setOrderPayment(0);
  116. ConsultantStatisticsBo asb = adminMapper.consultantStatisticsInfoByTime(aid, startTime, endTime);
  117. if (asb!=null){
  118. res.setRangeProjectCount(asb.getProjectCount());
  119. res.setRangeInProgress(asb.getInProgress());
  120. res.setRangeNotStarted(asb.getNotStarted());
  121. res.setRangeComplete(asb.getComplete());
  122. res.setRangeStop(asb.getStop());
  123. res.setRangeCountPublicRelease(asb.getCountPublicRelease());
  124. res.setRangeCountAssist(asb.getCountAssist());
  125. }
  126. return res;
  127. }
  128. @Override
  129. public Object consultantLists(String aid) {
  130. //获取当月的列表
  131. Map<String,Object> map=new HashMap<>();
  132. Days days = new Days();
  133. List<String> thisMonth = getThisMonth(days);
  134. List<ConsultantUserCount> list = adminMapper.consultantthisMonthUser(days.firstDay,days.endDay, aid);
  135. return null;
  136. }
  137. public List<String> getThisMonth(Days days) {
  138. //获取三十天前的日期
  139. Date date=new Date();
  140. Calendar ca=Calendar.getInstance();
  141. ca.setTime(date);
  142. ca.add(Calendar.DAY_OF_MONTH,-30);
  143. days.setFirstDay(DateUtils.formatDate(ca.getTime(),AFTConstants.YYYYMMDD));
  144. List<String> list=new ArrayList<>();
  145. for (int i=0;i<31;i++){
  146. if (i==0){
  147. Calendar newc=Calendar.getInstance();
  148. newc.setTime(ca.getTime());
  149. list.add(DateUtils.formatDate(newc.getTime(), AFTConstants.YYYYMMDD));
  150. }else {
  151. ca.add(Calendar.DAY_OF_MONTH,1);
  152. ca.set(Calendar.HOUR_OF_DAY,0);
  153. if (ca.getTimeInMillis()<date.getTime()){
  154. Calendar newc=Calendar.getInstance();
  155. newc.setTime(ca.getTime());
  156. days.setEndDay(DateUtils.formatDate(newc.getTime(), AFTConstants.YYYYMMDD));
  157. list.add(days.getEndDay());
  158. }
  159. }
  160. }
  161. return list;
  162. }
  163. class Days{
  164. private String firstDay;
  165. private String endDay;
  166. public String getFirstDay() {
  167. return firstDay;
  168. }
  169. public void setFirstDay(String firstDay) {
  170. this.firstDay = firstDay;
  171. }
  172. public String getEndDay() {
  173. return endDay;
  174. }
  175. public void setEndDay(String endDay) {
  176. this.endDay = endDay;
  177. }
  178. }
  179. }