diff --git a/src/main/java/com/rj/controller/LbAssessmentApplyController.java b/src/main/java/com/rj/controller/LbAssessmentApplyController.java index 53702a1..c9e9fc0 100644 --- a/src/main/java/com/rj/controller/LbAssessmentApplyController.java +++ b/src/main/java/com/rj/controller/LbAssessmentApplyController.java @@ -74,4 +74,5 @@ public class LbAssessmentApplyController { } return ResponseEntity.internalServerError().body(result); } + } diff --git a/src/main/java/com/rj/controller/LbPurchaseApplyController.java b/src/main/java/com/rj/controller/LbPurchaseApplyController.java index 6bfc41f..215b920 100644 --- a/src/main/java/com/rj/controller/LbPurchaseApplyController.java +++ b/src/main/java/com/rj/controller/LbPurchaseApplyController.java @@ -77,4 +77,19 @@ public class LbPurchaseApplyController { } return ResponseEntity.internalServerError().body(result); } + + @GetMapping("/needPrivilegeRecommenders") + @Operation(summary = "按日期范围查询需要添加特权的推荐人") + public ResponseEntity> needPrivilegeRecommenders( + @Parameter(description = "开始日期(yyyy-MM-dd)", required = true) + @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate, + @Parameter(description = "结束日期(yyyy-MM-dd)", required = true) + @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate) { + Map result = lbPurchaseApplyService.listNeedPrivilegeRecommenders(startDate, endDate); + Boolean success = (Boolean) result.get("success"); + if (success != null && success) { + return ResponseEntity.ok(result); + } + return ResponseEntity.badRequest().body(result); + } } diff --git a/src/main/java/com/rj/service/ILbAssessmentApplyService.java b/src/main/java/com/rj/service/ILbAssessmentApplyService.java index e2659e6..37e9146 100644 --- a/src/main/java/com/rj/service/ILbAssessmentApplyService.java +++ b/src/main/java/com/rj/service/ILbAssessmentApplyService.java @@ -20,4 +20,5 @@ public interface ILbAssessmentApplyService extends IService { String applicantPhone, String colleagueName, String teamLeaderName); + } diff --git a/src/main/java/com/rj/service/ILbPurchaseApplyService.java b/src/main/java/com/rj/service/ILbPurchaseApplyService.java index 5f58c29..3b26c7f 100644 --- a/src/main/java/com/rj/service/ILbPurchaseApplyService.java +++ b/src/main/java/com/rj/service/ILbPurchaseApplyService.java @@ -22,4 +22,6 @@ public interface ILbPurchaseApplyService extends IService { String colleagueName, String teamLeader, LocalDate applyDate); + + Map listNeedPrivilegeRecommenders(LocalDate startDate, LocalDate endDate); } diff --git a/src/main/java/com/rj/service/impl/LbPurchaseApplyServiceImpl.java b/src/main/java/com/rj/service/impl/LbPurchaseApplyServiceImpl.java index 01dab48..72afe6b 100644 --- a/src/main/java/com/rj/service/impl/LbPurchaseApplyServiceImpl.java +++ b/src/main/java/com/rj/service/impl/LbPurchaseApplyServiceImpl.java @@ -3,21 +3,31 @@ package com.rj.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.rj.entity.LbDailyUserTradeReport; import com.rj.entity.LbPurchaseApply; +import com.rj.mapper.LbDailyUserTradeReportMapper; import com.rj.mapper.LbPurchaseApplyMapper; import com.rj.service.ILbPurchaseApplyService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.HashSet; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.Set; @Service public class LbPurchaseApplyServiceImpl extends ServiceImpl implements ILbPurchaseApplyService { + @Autowired + private LbDailyUserTradeReportMapper lbDailyUserTradeReportMapper; + @Override public Map add(LbPurchaseApply entity) { Map result = new HashMap<>(); @@ -157,4 +167,82 @@ public class LbPurchaseApplyServiceImpl return result; } } + + @Override + public Map listNeedPrivilegeRecommenders(LocalDate startDate, LocalDate endDate) { + Map result = new HashMap<>(); + try { + if (startDate == null || endDate == null) { + result.put("success", false); + result.put("message", "开始日期和结束日期不能为空"); + return result; + } + if (endDate.isBefore(startDate)) { + result.put("success", false); + result.put("message", "结束日期不能早于开始日期"); + return result; + } + + LambdaQueryWrapper purchaseQuery = new LambdaQueryWrapper<>(); + purchaseQuery.ge(LbPurchaseApply::getApplyDate, startDate) + .le(LbPurchaseApply::getApplyDate, endDate) + .orderByDesc(LbPurchaseApply::getApplyDate) + .orderByDesc(LbPurchaseApply::getApplyDate) ; + List purchaseInfo = this.list(purchaseQuery); + + if (purchaseInfo == null || purchaseInfo.isEmpty()) { + result.put("success", true); + result.put("message", "查询成功"); + result.put("data", List.of()); + result.put("total", 0); + return result; + } + + Set applyUsers = new HashSet<>(); + for (LbPurchaseApply item : purchaseInfo) { + if (item.getApplyUser() != null && !item.getApplyUser().trim().isEmpty()) { + applyUsers.add(item.getApplyUser().trim()); + } + } + if (applyUsers.isEmpty()) { + result.put("success", true); + result.put("message", "查询成功"); + result.put("data", List.of()); + result.put("total", 0); + return result; + } + + LambdaQueryWrapper reportQuery = new LambdaQueryWrapper<>(); + reportQuery.in(LbDailyUserTradeReport::getNickname, applyUsers) + .select(LbDailyUserTradeReport::getNickname); + List matchedReports = lbDailyUserTradeReportMapper.selectList(reportQuery); + + Set matchedNicknames = new HashSet<>(); + for (LbDailyUserTradeReport report : matchedReports) { + if (report.getNickname() != null && !report.getNickname().trim().isEmpty()) { + matchedNicknames.add(report.getNickname().trim()); + } + } + + List needPrivilegeList = new ArrayList<>(); + for (LbPurchaseApply item : purchaseInfo) { + String applyUser = item.getApplyUser() == null ? null : item.getApplyUser().trim(); + if (applyUser != null && !applyUser.isEmpty() && matchedNicknames.contains(applyUser)) { + needPrivilegeList.add(item); + } + } + + result.put("success", true); + result.put("message", "查询成功"); + result.put("data", needPrivilegeList); + result.put("total", needPrivilegeList.size()); + result.put("startDate", startDate); + result.put("endDate", endDate); + return result; + } catch (Exception e) { + result.put("success", false); + result.put("message", "查询异常:" + e.getMessage()); + return result; + } + } }