‘linchangsheng’ 3 months ago
parent
commit
8c57da8b77

+ 25 - 1
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/policy/WorkerLogic.java

@@ -318,11 +318,35 @@ public class WorkerLogic {
 
         List<String> policyIds = policyOrderList.stream().map(PolicyOrder::getPolicyId).collect(Collectors.toList());
 
+        WorkerPolicy workerPolicy = workerPolicyService.lambdaQuery().eq(WorkerPolicy::getWebsitUserId, websitUser.getId())
+                .eq(WorkerPolicy::getType, "AC")
+                .orderByDesc(WorkerPolicy::getEndTime)
+                .last("limit 1").one();
+
+        Date endTime = null;
+
+        if (!CollectionUtil.isEmpty(policyOrderList)){
+            endTime = policyOrderList.get(0).getEndTime();
+        }
+
+        if (workerPolicy != null ){
+            endTime = workerPolicy.getEndTime();
+        }
+
+        if (workerPolicy != null && !CollectionUtil.isEmpty(policyOrderList)){
+            if (policyOrderList.get(0).getEndTime().after(workerPolicy.getEndTime()))
+                endTime = policyOrderList.get(0).getEndTime();
+            else
+                endTime = workerPolicy.getEndTime();
+        }
+
+
+
 
         Policy policy = policyService.lambdaQuery()
                 .in(Policy::getId, policyWebsits.stream().map(PolicyWebsit::getPolicyId).collect(Collectors.toList()))
                 .notIn(CollectionUtil.isNotEmpty(policyIds), Policy::getId, policyIds)
-                .ge(CollectionUtil.isNotEmpty(policyOrderList), Policy::getEndTime, CollectionUtil.isNotEmpty(policyOrderList)?policyOrderList.get(0).getEndTime():null)
+                .ge(endTime != null, Policy::getEndTime,endTime)
                 .eq(Policy::getIsBuy, IsYesNoEnum.YES.getKey())
                 .le(Policy::getPolicyStartTime, new Date())
                 .ge(Policy::getEndTime, new Date())