Browse Source

修改定时任务只比年月日不比时分秒导致优惠券没有及时将状态改成已过期bug

liu 2 years ago
parent
commit
40849bd4a4

+ 8 - 1
mhotel/src/com/happy/action/hotelCoupomAction.java

@@ -22,6 +22,8 @@ import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.interceptor.ServletRequestAware;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.Arrays;
 import java.util.List;
 
@@ -238,7 +240,12 @@ public class hotelCoupomAction extends BaseController implements ServletRequestA
      */
     public void setCoupomStatus(){
         int n =  hotelCoupomService.updateExpire();
-        int m =  hotelCoupomStatusService.updateExpir();
+
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        //判断当前时间是否在有效期内
+        LocalDateTime now = LocalDateTime.now();
+        String dateTime = now.format(dateTimeFormatter);
+        int m =  hotelCoupomStatusService.updateExpir(dateTime);
     }
 
 }

+ 1 - 1
mhotel/src/com/happy/dao/HotelCoupomStatusDao.java

@@ -17,7 +17,7 @@ public interface HotelCoupomStatusDao {
      * 描述:定时任务执行修改过期优惠卷
      * @return 受影响行数
      */
-    int updateExpir();
+    int updateExpir(String dateTime);
 
     int insert(HotelCouponStatus hotelCouponStatus);
 

+ 5 - 3
mhotel/src/com/happy/dao/impl/HotelCoupomStatusImplDao.java

@@ -50,11 +50,13 @@ public class HotelCoupomStatusImplDao implements HotelCoupomStatusDao {
     }
 
     @Override
-    public int updateExpir() {
-        String sql = "SELECT `id` FROM `hotel_coupon_status` where DATE_FORMAT(`lapse_date`, '%Y-%m-%d') < CURDATE() and `status` = 1";
+    public int updateExpir(String dateTime) {
+        String sql = "SELECT `id` FROM `hotel_coupon_status` where `lapse_date` < :now and `status` = 1";
         int num = 0;
         try{
-            List<String> ids = namedParameterJdbcTemplate.queryForList(sql, EmptySqlParameterSource.INSTANCE, String.class);
+            MapSqlParameterSource sps2 = new MapSqlParameterSource();
+            sps2.addValue("now",dateTime);
+            List<String> ids = namedParameterJdbcTemplate.queryForList(sql, sps2, String.class);
             if (ids.isEmpty()) return 0;
             //修改
             StringBuffer stringBuffer =  new StringBuffer(" update `hotel_coupon_status` set  ");

+ 1 - 1
mhotel/src/com/happy/service/HotelCoupomStatusService.java

@@ -13,7 +13,7 @@ public interface HotelCoupomStatusService {
     /**
      * 描述:定时任务 批量过期
      */
-    int updateExpir();
+    int updateExpir(String dateTime);
 
     int insert(HotelCouponStatus hotelCouponStatus);
 

+ 2 - 2
mhotel/src/com/happy/service/impl/HotelCoupomStatusImplService.java

@@ -25,8 +25,8 @@ public class HotelCoupomStatusImplService implements HotelCoupomStatusService {
     }
 
     @Override
-    public int updateExpir() {
-        return hotelCoupomStatusDao.updateExpir();
+    public int updateExpir(String dateTime) {
+        return hotelCoupomStatusDao.updateExpir(dateTime);
     }
 
     @Override