|
@@ -1,28 +1,36 @@
|
|
|
package com.winhc.repal.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.winhc.common.enums.CodeMsg;
|
|
|
import com.winhc.common.exception.CommonException;
|
|
|
import com.winhc.repal.entity.RepalBook;
|
|
|
+import com.winhc.repal.entity.RepalResponsiblePerson;
|
|
|
import com.winhc.repal.enums.DeletedStatusEnum;
|
|
|
+import com.winhc.repal.enums.PermissionEnum;
|
|
|
+import com.winhc.repal.model.bo.BookDynamicCountBO;
|
|
|
+import com.winhc.repal.model.bo.UserBillUnreadInfoBO;
|
|
|
import com.winhc.repal.model.dto.DeleteRepalBookDTO;
|
|
|
import com.winhc.repal.model.dto.HomeTypeDTO;
|
|
|
import com.winhc.repal.model.vo.HomeGradeVO;
|
|
|
import com.winhc.repal.model.vo.RepalBookInfoVO;
|
|
|
import com.winhc.repal.repository.RepalBookMapper;
|
|
|
-import com.winhc.repal.service.RepalBillService;
|
|
|
-import com.winhc.repal.service.RepalBookService;
|
|
|
-import com.winhc.repal.service.RepalGroupMemberService;
|
|
|
-import com.winhc.repal.service.RepalRolePermissionService;
|
|
|
+import com.winhc.repal.service.*;
|
|
|
+import com.winhc.repal.util.RemindTypeUtil;
|
|
|
import com.winhc.repal.util.UserContextUtil;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.LocalTime;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @description RepalBook 接口实现类
|
|
@@ -44,6 +52,16 @@ public class RepalBookServiceImpl extends ServiceImpl<RepalBookMapper, RepalBook
|
|
|
@Autowired
|
|
|
private RepalGroupMemberService repalGroupMemberService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RepalRemindHistoryService repalRemindHistoryService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private RepalRemindReadInfoService repalRemindReadInfoService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private RepalResponsiblePersonService repalResponsiblePersonService;
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean deleteRepalBook(DeleteRepalBookDTO dto) {
|
|
@@ -77,12 +95,34 @@ public class RepalBookServiceImpl extends ServiceImpl<RepalBookMapper, RepalBook
|
|
|
|
|
|
@Override
|
|
|
public List<List<Integer>> getRepalBookDynamic(HomeTypeDTO dto) {
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- return new ArrayList<>();
|
|
|
+ List<List<Integer>> resultList = new ArrayList<>();
|
|
|
+ boolean allFlag = repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(), PermissionEnum.QUERY_ALL_RECEIVABLE.getCode());
|
|
|
+ // 所有
|
|
|
+ LocalDateTime start = null;
|
|
|
+ LocalDateTime end = null;
|
|
|
+ if (Integer.valueOf(1).equals(dto.getQueryType())) {
|
|
|
+ LocalDate now = LocalDate.now();
|
|
|
+ start = LocalDateTime.of(now.minusDays(7), LocalTime.MIN);
|
|
|
+ end = LocalDateTime.of(now, LocalTime.MAX);
|
|
|
+ }
|
|
|
+ if (Integer.valueOf(2).equals(dto.getQueryType())) {
|
|
|
+ LocalDate now = LocalDate.now();
|
|
|
+ start = LocalDateTime.of(now.minusDays(30), LocalTime.MIN);
|
|
|
+ end = LocalDateTime.of(now, LocalTime.MAX);
|
|
|
+ }
|
|
|
+ List<BookDynamicCountBO> countList = repalRemindHistoryService.getBookDynamicCount(dto.getRepalBookId(), allFlag ? UserContextUtil.getUser().getUserId() : null, start, end);
|
|
|
+ List<Integer> totalCountList = RemindTypeUtil.getCountList(CollUtil.isEmpty(countList) ? null : countList.stream().collect(Collectors.toMap(BookDynamicCountBO::getRemindType, BookDynamicCountBO::getTotalCount)));
|
|
|
+ resultList.add(totalCountList);
|
|
|
+ // 未读, 有可能是账本下所有未读
|
|
|
+ List<Long> billIdList = repalBillService.getBillIdListByBookId(dto.getRepalBookId(), allFlag ? null : UserContextUtil.getUser().getUserId());;
|
|
|
+ List<UserBillUnreadInfoBO> unreadInfoList = repalRemindReadInfoService.getUserBillUnreadInfo(UserContextUtil.getUser().getUserId(), billIdList);
|
|
|
+ resultList.add(new ArrayList<Integer>(){{
|
|
|
+ add(unreadInfoList.stream().mapToInt(UserBillUnreadInfoBO::getUnreadRiskCount).sum());
|
|
|
+ add(unreadInfoList.stream().mapToInt(UserBillUnreadInfoBO::getUnreadFinanceCount).sum());
|
|
|
+ add(unreadInfoList.stream().mapToInt(UserBillUnreadInfoBO::getUnreadRankCount).sum());
|
|
|
+ add(unreadInfoList.stream().mapToInt(UserBillUnreadInfoBO::getUnreadOverdueCount).sum());
|
|
|
+ }});
|
|
|
+ return resultList;
|
|
|
}
|
|
|
|
|
|
@Override
|