Prechádzať zdrojové kódy

完善定时任务 , 定时核验订单的同时 , 更新门票信息

Memory_LG 5 mesiacov pred
rodič
commit
a7d636728c

+ 6 - 1
qmjszx-admin/src/main/java/beilv/web/controller/bootacourse/bootACourseController.java

@@ -226,7 +226,12 @@ public class bootACourseController extends BaseController {
             course.setPaymentStatus("payment_status_refunded");
             return toAjax(courseService.updateCourse(course));
         }else{
-            return AjaxResult.error("当前订单超过最晚退单时间, 不允许退单");
+            if(course.getRefund().after(new Date())){
+                return AjaxResult.error("当前订单超过最晚退单时间, 不允许退单");
+            }else if("payment_status_verification".equals(course.getPaymentStatus())){
+                return AjaxResult.error("订单已核销");
+            }
+            return AjaxResult.error("未知原因退款失败!");
         }
 
     }

+ 1 - 1
qmjszx-business/src/main/java/beilv/admissionticket/mapper/AdmissionTicketMapper.java

@@ -58,7 +58,7 @@ public interface AdmissionTicketMapper {
      */
     public int deleteBeilvAdmissionTicketByIds(String[] ids);
 
-    void updateTicketStatus(List<String> ids);
+    void updateTicketStatus(@Param("ids") List<String> ids, @Param("ticketStatus") String ticketStatus);
 
     boolean isOk(BootACourseBO course);
 

+ 1 - 1
qmjszx-business/src/main/java/beilv/admissionticket/service/IAdmissionTicketService.java

@@ -56,7 +56,7 @@ public interface IAdmissionTicketService {
      */
     public int deleteBeilvAdmissionTicketById(String id);
 
-    void updateTicketStatus(List<String> ids);
+    void updateTicketStatus(List<String> ids, String ticketStatus);
 
     Map<String, Object> getThresholdValue(String ticketId);
 }

+ 2 - 2
qmjszx-business/src/main/java/beilv/admissionticket/service/impl/AdmissionTicketServiceImpl.java

@@ -97,8 +97,8 @@ public class AdmissionTicketServiceImpl implements IAdmissionTicketService {
     }
 
     @Override
-    public void updateTicketStatus(List<String> ids) {
-        beilvAdmissionTicketMapper.updateTicketStatus(ids);
+    public void updateTicketStatus(List<String> ids, String ticketStatus) {
+        beilvAdmissionTicketMapper.updateTicketStatus(ids, ticketStatus);
     }
 
     @Override

+ 3 - 3
qmjszx-business/src/main/resources/mapper/admissionticket/AdmissionTicketMapper.xml

@@ -141,10 +141,10 @@
         </foreach>
     </delete>
 
-    <update id="updateTicketStatus" parameterType="list">
-        update beilv_admission_ticket set admission_ticket_status = '3'
+    <update id="updateTicketStatus">
+        update beilv_admission_ticket set admission_ticket_status = #{ticketStatus}
         where id in
-        <foreach item="id" collection="list" open="(" close=")" separator=",">
+        <foreach item="id" collection="ids" open="(" close=")" separator=",">
             #{id}
         </foreach>
     </update>

+ 22 - 8
qmjszx-quartz/src/main/java/beilv/quartz/task/SiteTask.java

@@ -16,10 +16,7 @@ import org.springframework.stereotype.Component;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Component("siteTask")
@@ -125,7 +122,7 @@ public class SiteTask {
             }
         });
         if (!ids.isEmpty()) {
-            ticketService.updateTicketStatus(ids);
+            ticketService.updateTicketStatus(ids, "3");
         }
     }
 
@@ -138,15 +135,32 @@ public class SiteTask {
         // 获取当前时间
         Date now = new Date();
         // 筛选出需要更新的订单
-        List<String> orderIdsToUpdate = paidOrders.stream()
-                .filter(order -> now.after(order.getRefund()))  // 当前时间大于refund时间
-                .map(BootACourse::getOrderId)  // 获取订单ID
+//        List<String> orderIdsToUpdate = paidOrders.stream()
+//                .filter(order -> now.after(order.getRefund()))  // 当前时间大于refund时间
+//                .map(BootACourse::getOrderId)  // 获取订单ID
+//                .collect(Collectors.toList());
+
+
+        Map<Boolean, List<BootACourse>> partitionedOrders = paidOrders.stream()
+                .collect(Collectors.partitioningBy(order -> now.after(order.getRefund())));
+
+        List<String> orderIdsToUpdate = partitionedOrders.get(true).stream()
+                .map(BootACourse::getOrderId)
+                .collect(Collectors.toList());
+
+        List<String> ticketIdsToUpdate = partitionedOrders.get(true).stream()
+                .map(BootACourse::getTicketId)
                 .collect(Collectors.toList());
 
         // 批量更新订单状态为已核销
         if (!orderIdsToUpdate.isEmpty()) {
             courseMapper.updateOrderStatusToVerification(orderIdsToUpdate);
         }
+        // 批量更新门票状态为已核销
+        if (!orderIdsToUpdate.isEmpty()) {
+            //核销订单的同时, 更新门票信息状态
+            ticketService.updateTicketStatus(ticketIdsToUpdate, "4");
+        }
     }