Quellcode durchsuchen

约球修复bug

Memory_LG vor 5 Monaten
Ursprung
Commit
59d3d88596

+ 12 - 7
qmjszx-admin/src/main/java/beilv/web/controller/bootacourse/bootACourseController.java

@@ -16,6 +16,7 @@ import beilv.common.utils.uuid.IdUtils;
 import beilv.site.domain.BeilvSite;
 import beilv.site.service.IBeilvSiteService;
 import beilv.usermembershipcard.domain.MemberStream;
+import beilv.usermembershipcard.domain.UserMembershipCard;
 import beilv.usermembershipcard.service.IUserMembershipCardService;
 import beilv.venue.domain.BeilvVenue;
 import beilv.venue.service.IBeilvVenueService;
@@ -54,6 +55,9 @@ public class bootACourseController extends BaseController {
     @Autowired
     private IBootACourseService courseService;
 
+    @Autowired
+    private IUserMembershipCardService userMembershipCardService;
+
     /**
      * 查询基础信息
      */
@@ -100,11 +104,11 @@ public class bootACourseController extends BaseController {
      */
     @PostMapping("/hasClubCard")
     public AjaxResult hasClubCard(@RequestBody BootACourseBO course){
-        CardPurchaseRecord cardPurchaseRecord = new CardPurchaseRecord();
-        cardPurchaseRecord.setUserId(course.getUserId());
-        cardPurchaseRecord.setCardType(course.getTicketType());
-        cardPurchaseRecord.setType("1");
-        return AjaxResult.success(recordService.selectCardPurchaseRecordList(cardPurchaseRecord));
+        UserMembershipCard userMembershipCard = new UserMembershipCard();
+        userMembershipCard.setUserId(course.getUserId());
+        userMembershipCard.setCardType(course.getTicketType());
+        userMembershipCard.setState("3");
+        return AjaxResult.success(userMembershipCardService.selectUserMembershipCardList(userMembershipCard));
     }
 
     /**
@@ -198,13 +202,14 @@ public class bootACourseController extends BaseController {
         //通过orderId查询订单信息
         BootACourse course = courseService.getCourseInfo(courseBo);
 
-        //判断最晚退单时间是否大于当前时间, 大于返回true
-        if(course.getRefund().after(new Date())){
+        //判断最晚退单时间大于当前时间, 并且订单状态为已支付
+        if(course.getRefund().after(new Date()) && "payment_status_have_paid".equals(course.getPaymentStatus())){
             //根据订单信息中的会员卡退次数
             //调用会员卡接口减少次数
             MemberStream memberStream = new MemberStream();
             memberStream.setUserCardId(course.getClubCardId());
             memberStream.setType("1");
+            memberStream.setOrderId(course.getOrderId());
             cardService.addStream(memberStream);
 
 

+ 4 - 1
qmjszx-business/src/main/java/beilv/bootacourse/domain/BootACourseBO.java

@@ -40,5 +40,8 @@ public class BootACourseBO {
      * 退款说明
      */
     private String refundInstructions;
-
+    /**
+     * 支付状态
+     */
+    private String paymentStatus;
 }

+ 4 - 1
qmjszx-business/src/main/java/beilv/competition/mapper/CompetitionMapper.java

@@ -2,6 +2,7 @@ package beilv.competition.mapper;
 
 import beilv.competition.domain.Competition;
 import beilv.stadium.domain.Stadium;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -66,5 +67,7 @@ public interface CompetitionMapper {
 
     boolean selectStadumIsOpenById(String id);
 
-    void updateBookARace(Integer id);
+    void updateBookARace(@Param("id") Integer id);
+
+    Competition getCompetitionInfo(@Param("orderId") String orderId);
 }

+ 1 - 0
qmjszx-business/src/main/java/beilv/competition/service/impl/CompetitionServiceImpl.java

@@ -42,6 +42,7 @@ public class CompetitionServiceImpl implements ICompetitionService {
             if (new Date().getTime() >= date.getTime()) {
                 item.setCompetitionState("competiton_state_3");
                 competitionMapper.updateCompetition(item);
+                competitionMapper.updateBookARace(item.getId());
             } else {
                 Timer timer = new Timer();
                 timer.schedule(new CloseReg(competitionMapper, item.getId()), date);

+ 3 - 0
qmjszx-business/src/main/java/beilv/stadium/mapper/StadiumMapper.java

@@ -1,5 +1,6 @@
 package beilv.stadium.mapper;
 
+import beilv.competition.domain.Competition;
 import beilv.stadium.domain.Stadium;
 import beilv.stadium.domain.StadiumBO;
 import org.apache.ibatis.annotations.Param;
@@ -20,5 +21,7 @@ public interface StadiumMapper {
 
     List<Stadium> getTakePartList(Stadium stadium);
 
+    Competition getCompetitionInfo(String orderId);
+
 //    int closeStadiumById(Stadium stadium);
 }

+ 12 - 3
qmjszx-business/src/main/java/beilv/stadium/service/impl/StadiumServiceImpl.java

@@ -1,6 +1,7 @@
 package beilv.stadium.service.impl;
 
 import beilv.common.utils.uuid.IdUtils;
+import beilv.competition.domain.Competition;
 import beilv.competition.mapper.CompetitionMapper;
 import beilv.stadium.domain.Stadium;
 import beilv.stadium.domain.StadiumBO;
@@ -19,6 +20,9 @@ public class StadiumServiceImpl implements IStadiumService {
     @Autowired
     private StadiumMapper stadiumMapper;
 
+    @Autowired
+    private CompetitionMapper competitionMapper;
+
     private final static String DAI_ZHI_FU = "payment_status_to_be_paid";
     private final static String YI_ZHI_FU = "payment_status_have_paid";
     private final static String YI_QU_XIAO = "payment_status_cancelled";
@@ -53,13 +57,18 @@ public class StadiumServiceImpl implements IStadiumService {
 
     @Override
     public int havePaidStadium(Stadium stadium) {
-        //增加赛事退单时间验证,如果赛事报名已结束, 则直接设置支付状态为已核销
-
-
         //设置订单状态为已支付
         stadium.setPaymentStatus(YI_ZHI_FU);
         //设置支付时间
         stadium.setPaymentTime(simpleDateFormat.format(new Date()));
+
+        //增加赛事退单时间验证,如果赛事报名已结束, 则直接设置支付状态为已核销
+        Competition competition = competitionMapper.getCompetitionInfo(stadium.getOrderId());
+        Date applyStartTime = competition.getApplyStartTime();
+        System.out.println("applyStartTime = " + applyStartTime);
+        Double applyBeforeTime = competition.getApplyBeforeTime();
+        System.out.println("applyBeforeTime = " + applyBeforeTime);
+
         //更新订单信息
         return stadiumMapper.cancellStadium(stadium);
     }

+ 4 - 7
qmjszx-business/src/main/resources/mapper/bootacourse/BootACourseMapper.xml

@@ -87,9 +87,6 @@
             <if test="userId != null and userId != ''">
                 and user_id = #{userId}
             </if>
-            <if test="orderType != null and orderType != ''">
-                and order_type = #{orderType}
-            </if>
             <if test="paymentStatus != null and paymentStatus != ''">
                 and paymen_status = #{paymentStatus}
             </if>
@@ -100,11 +97,11 @@
     <select id="getCourseInfo" parameterType="bootACourseBO" resultMap="BootACourseResult">
         select * from beilv_book_a_course
         <where>
-            <if test="competitionId != null and competitionId != ''">
-                and ticket_id = #{ticketId}
+            <if test="userId != null and userId != ''">
+                and user_id = #{userId}
             </if>
-            <if test="orderType != null and orderType != ''">
-                and order_type = #{orderType}
+            <if test="orderId != null and orderId != ''">
+                and order_id = #{orderId}
             </if>
         </where>
         order by registration_time desc

+ 5 - 0
qmjszx-business/src/main/resources/mapper/competition/CompetitionMapper.xml

@@ -178,4 +178,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where competition_id = #{id} and payment_status = 'payment_status_have_paid'
     </update>
 
+    <select id="getCompetitionInfo" parameterType="string" resultMap="CompetitionResult">
+        select bc.* from beilv_book_a_race bar left join beilv_competition bc on bar.competition_id = bc.id
+        where bar.order_id = #{orderId}
+    </select>
+
 </mapper>

+ 1 - 0
qmjszx-business/src/main/resources/mapper/stadium/StadiumMapper.xml

@@ -113,4 +113,5 @@
         </where>
         order by registration_time desc
     </select>
+
 </mapper>

+ 7 - 10
qmjszx-quartz/src/main/java/beilv/quartz/task/SiteTask.java

@@ -100,19 +100,16 @@ public class SiteTask {
         // 获取当前日期和时间
         Date currentDate = new Date();
 
-        admissionTickets.forEach(ticket -> {
-            String session = ticket.getSession();//8:00-10:00
-            Date ticketDate = ticket.getTicketDate();//2024-01-07
-
-            try {
-                // 解析ticketDate
-                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        // 解析ticketDate
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
 
-                // 解析session的开始时间
-                SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
+        // 解析session的开始时间
+        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
 
+        admissionTickets.forEach(ticket -> {
+            try {
                 // 将ticketDate和startTime合并为一个Date对象
-                Date ticketDateTime = combineDateAndTime(dateFormat.parse(dateFormat.format(ticketDate)), timeFormat.parse(session.split("-")[0]));
+                Date ticketDateTime = combineDateAndTime(dateFormat.parse(dateFormat.format(ticket.getTicketDate())), timeFormat.parse(ticket.getSession().split("-")[0]));
 
 //                long tenMinutesInMillis = 10 * 60 * 1000;
                 if (ticketDateTime != null) {