admin
2020-05-06 24a8d17e007545f7426c48352109aa1a9c6587ee
fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDetailServiceImpl.java
@@ -39,16 +39,19 @@
   }
   @Override
   public List<UserMoneyDetailHistoryVO> listUserMoneyDetailForClient(Long uid, Long userMoneyDetailId, Date maxTime) {
   public List<UserMoneyDetailHistoryVO> listUserMoneyDetailForClient(Long uid, Long userMoneyDetailId, Integer type,
         Date maxTime) {
      List<UserMoneyDetailHistoryVO> finalList = new ArrayList<>();
      List<UserMoneyDetail> list = null;
      if (userMoneyDetailId == null) {// 首次请求
         if (maxTime == null)// 没有筛选时间
         {
            list = userMoneyDetailMapper.selectByMaxCreateTime(uid,
                  new Date(System.currentTimeMillis() + 1000 * 60 * 60L), 20);
            Date date = new Date(System.currentTimeMillis() + 1000 * 60 * 60L);
            list = userMoneyDetailMapper.selectByMaxCreateTime(uid, date, 20, type);
            System.out.println("maxTime == null");
         } else {// 筛选了时间
            list = userMoneyDetailMapper.selectByMaxCreateTime(uid, maxTime, 20);
            System.out.println("maxTime != null");
            list = userMoneyDetailMapper.selectByMaxCreateTime(uid, maxTime, 20, type);
         }
         if (list != null && list.size() > 0) {
@@ -72,7 +75,8 @@
      } else {// 二次请求
         int size = 21;
         List<UserMoneyDetail> tempList = userMoneyDetailMapper.selectByUidWithIndexId(uid, userMoneyDetailId, size);
         List<UserMoneyDetail> tempList = userMoneyDetailMapper.selectByUidWithIndexId(uid, userMoneyDetailId, size,
               type);
         Set<Date> dateSet = new HashSet<>();// 用于储存是否在同一时间上面(精确到秒)
         if (tempList.size() > 0) {
            for (UserMoneyDetail umd : tempList) {
@@ -83,7 +87,7 @@
            while (dateSet.size() == 1 && tempList2.size() != tempList.size() && size < 40) {// 只有一个时间点的数据
               tempList = tempList2;
               size += 10;
               tempList2 = userMoneyDetailMapper.selectByUidWithIndexId(uid, userMoneyDetailId, size);
               tempList2 = userMoneyDetailMapper.selectByUidWithIndexId(uid, userMoneyDetailId, size, type);
               dateSet.clear();
               for (UserMoneyDetail umd : tempList2) {
                  dateSet.add(umd.getCreateTime());
@@ -185,24 +189,26 @@
            inType = true;
            break;
         }
      if (inType)
      if (inType) {
         detail.setTitle(detail.getTitle() + "【" + Constant.getSourceName(detail.getOrderType()) + "】");
      }
      return detail;
   }
   @Override
   public long countUserMoneyDetailForClient(Long uid, Long userMoneyDetailId, Date maxTime) {
   public long countUserMoneyDetailForClient(Long uid, Long userMoneyDetailId, Integer type, Date maxTime) {
      // TODO 增加type筛选
      long monthCount = 0L;
      long detailCount = 0L;
      // 未通过时间筛选,查询所有
      if (maxTime == null) {
         detailCount = userMoneyDetailMapper.selectCountByUid(uid);
         detailCount = userMoneyDetailMapper.selectCountByUid(uid, type);
         // 用于表示当前所有
         monthCount = userMoneyDetailMapper.selectMonthCountByUid(uid,
               new Date(System.currentTimeMillis() + 1000 * 60 * 60L));
               new Date(System.currentTimeMillis() + 1000 * 60 * 60L), type);
      } else {// 通过时间筛选了的,需要查询所有
         detailCount = userMoneyDetailMapper.selectCountByUidAndMaxCreateTime(uid, maxTime);
         monthCount = userMoneyDetailMapper.selectMonthCountByUid(uid, maxTime);
         detailCount = userMoneyDetailMapper.selectCountByUidAndMaxCreateTime(uid, maxTime, type);
         monthCount = userMoneyDetailMapper.selectMonthCountByUid(uid, maxTime, type);
      }
      return monthCount + detailCount;
@@ -226,7 +232,19 @@
         for (UserMoneyDetailTypeEnum type : typeList) {
            list.add(type.name());
         }
      BigDecimal money = userMoneyDetailMapper.getTotalMoneyByTypeAndUidWithDate(uid, list, minDate, maxDate);
      BigDecimal money = userMoneyDetailMapper.getTotalMoneyByTypeAndUidWithDate(uid, list, minDate, maxDate, null);
      return money == null ? new BigDecimal(0) : money;
   }
   @Override
   public BigDecimal statisticUserTypeMoneyWithDate(Long uid, List<UserMoneyDetailTypeEnum> typeList, Date minDate,
         Date maxDate, Integer show) {
      List<String> list = new ArrayList<>();
      if (typeList != null)
         for (UserMoneyDetailTypeEnum type : typeList) {
            list.add(type.name());
         }
      BigDecimal money = userMoneyDetailMapper.getTotalMoneyByTypeAndUidWithDate(uid, list, minDate, maxDate, show);
      return money == null ? new BigDecimal(0) : money;
   }
@@ -236,4 +254,18 @@
      return userMoneyDetailMapper.selectByTypeAndUidAndIdentifyCode(type, uid, sourceIdentifyId);
   }
   @Override
   public List<UserMoneyDetail> listQuery(int page, int pageSize, String key, Integer keyType) {
      return userMoneyDetailMapper.listQuery((page - 1) * pageSize, pageSize, key, keyType);
   }
   @Override
   public long countQuery(String key, Integer keyType) {
      Long count = userMoneyDetailMapper.countQuery(key, keyType);
      if (count == null) {
         count = 0L;
      }
      return count;
   }
}