| | |
| | | import cn.iocoder.yudao.module.crm.util.CrmPermissionUtils; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | |
| | |
| | | .eq(CrmContractDO::getOwnerUserId, ownerUserId)); |
| | | } |
| | | |
| | | default CrmContractDO selectByBusinessId(Long businessId) { |
| | | return selectOne(CrmContractDO::getBusinessId, businessId); |
| | | } |
| | | |
| | | default CrmContractDO selectByOrderId(Long orderId) { |
| | | return selectOne(CrmContractDO::getOrderId, orderId); |
| | | } |
| | | |
| | | default List<CrmContractDO> selectListByCustomerId(Long customerId) { |
| | | return selectList(CrmContractDO::getCustomerId, customerId); |
| | | } |
| | | |
| | | // ========== 统计方法 ========== |
| | | |
| | | default Long selectTodayCount() { |
| | | LocalDateTime beginOfToday = LocalDateTimeUtil.beginOfDay(LocalDateTime.now()); |
| | | LocalDateTime endOfToday = LocalDateTimeUtil.endOfDay(LocalDateTime.now()); |
| | | return selectCount(new LambdaQueryWrapperX<CrmContractDO>() |
| | | .between(CrmContractDO::getCreateTime, beginOfToday, endOfToday)); |
| | | } |
| | | |
| | | default BigDecimal selectTotalPriceSum() { |
| | | LambdaQueryWrapperX<CrmContractDO> query = new LambdaQueryWrapperX<>(); |
| | | query.select(CrmContractDO::getTotalPrice); |
| | | List<CrmContractDO> list = selectList(query); |
| | | return list.stream() |
| | | .map(CrmContractDO::getTotalPrice) |
| | | .filter(p -> p != null) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | |
| | | default Long selectApproveCount() { |
| | | return selectCount(CrmContractDO::getAuditStatus, CrmAuditStatusEnum.APPROVE.getStatus()); |
| | | } |
| | | |
| | | default BigDecimal selectApprovePriceSum() { |
| | | LambdaQueryWrapperX<CrmContractDO> query = new LambdaQueryWrapperX<>(); |
| | | query.eq(CrmContractDO::getAuditStatus, CrmAuditStatusEnum.APPROVE.getStatus()) |
| | | .select(CrmContractDO::getTotalPrice); |
| | | List<CrmContractDO> list = selectList(query); |
| | | return list.stream() |
| | | .map(CrmContractDO::getTotalPrice) |
| | | .filter(p -> p != null) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | |
| | | default Long selectProcessCount() { |
| | | return selectCount(CrmContractDO::getAuditStatus, CrmAuditStatusEnum.PROCESS.getStatus()); |
| | | } |
| | | |
| | | default List<Long> selectOwnerUserIds() { |
| | | LambdaQueryWrapperX<CrmContractDO> query = new LambdaQueryWrapperX<>(); |
| | | query.select(CrmContractDO::getOwnerUserId).isNotNull(CrmContractDO::getOwnerUserId); |
| | | List<CrmContractDO> list = selectList(query); |
| | | return list.stream().map(CrmContractDO::getOwnerUserId).distinct().toList(); |
| | | } |
| | | |
| | | default Long selectCountByOwnerUserId(Long ownerUserId) { |
| | | return selectCount(CrmContractDO::getOwnerUserId, ownerUserId); |
| | | } |
| | | |
| | | default BigDecimal selectPriceSumByOwnerUserId(Long ownerUserId) { |
| | | LambdaQueryWrapperX<CrmContractDO> query = new LambdaQueryWrapperX<>(); |
| | | query.eq(CrmContractDO::getOwnerUserId, ownerUserId).select(CrmContractDO::getTotalPrice); |
| | | List<CrmContractDO> list = selectList(query); |
| | | return list.stream() |
| | | .map(CrmContractDO::getTotalPrice) |
| | | .filter(p -> p != null) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | |
| | | } |