From 55c100001f03f2492899ea1cbbb8053f066e3144 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Wed, 24 Jul 2019 13:31:48 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=81=9C=E8=BD=A6][=E4=BF=AE=E6=94=B9]:?= =?UTF-8?q?=E5=81=9C=E8=BD=A6=E6=95=B0=E6=8D=AE=E5=85=A5=E5=BA=93=E4=BF=AE?= =?UTF-8?q?=E6=94=B9,15=E5=88=86=E9=92=9F=E5=86=85=E7=BC=B4=E8=B4=B9?= =?UTF-8?q?=E8=AE=B0=E5=BD=95update=EF=BC=8C=E4=B8=8D=E5=86=8Dinsert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../callback/WxCarCallBackController.java | 20 +++++++++++------- .../java/com/iformall/utils/DateUtils.java | 21 +++++++++++++++++++ 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarCallBackController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarCallBackController.java index 1539d285d..dce9a0e19 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarCallBackController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarCallBackController.java @@ -11,6 +11,7 @@ import com.iformall.enums.EnumCarVendor; import com.iformall.enums.EnumCouponSendSendType; import com.iformall.enums.EnumETCPCode; import com.iformall.service.*; +import com.iformall.utils.DateUtils; import com.iformall.utils.ETCPUtil; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -439,19 +440,24 @@ public class WxCarCallBackController extends BaseController { WxCarPayRecord query = new WxCarPayRecord(); query.setSynId(orderId); - query.setFee(fee); - if(feeTime != null) { - query.setFeeTime(feeTime); - } - // 缴费时间在15分钟以内,更新之前的数据, ETCP会把之前的缴费自动退款 PageInfo page = wxCarPayRecordService.findCarPayListByPage(query,1,2); if(page != null && page.getList().size() > 0){ + if(page.getList().size() >= 2){ wxCarPayRecordService.saveOrUpdate(record); } else { WxCarPayRecord r = page.getList().get(0); - record.setId(r.getId()); - wxCarPayRecordService.saveOrUpdate(record); + if(r.getFeeTime() == null) { + // 无缴费信息, 更新 + record.setId(r.getId()); + wxCarPayRecordService.saveOrUpdate(record); + } else { + // 缴费时间在15分钟以内,更新之前的数据, ETCP会把之前的缴费自动退款 + if(DateUtils.isInDate15Mins(feeTime, r.getFeeTime())) { + record.setId(r.getId()); + } + wxCarPayRecordService.saveOrUpdate(record); + } } } else { wxCarPayRecordService.saveOrUpdate(record); diff --git a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java index e6ca5c841..b30d422a9 100755 --- a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java @@ -957,6 +957,27 @@ public class DateUtils { } } + /** + * 判断时间是否在时间段内 + * @param date + * @param curDate + * @return + */ + public static boolean isInDate15Mins(Date date, Date curDate) { + Calendar cal = Calendar.getInstance(); + cal.setTime(curDate); + cal.add(Calendar.MINUTE, -15); + Date timeStart = cal.getTime(); + cal.add(Calendar.MINUTE, 15); + Date timeEnd = cal.getTime(); + + if (date.after(timeStart) && date.before(timeEnd)) { + return true; + } else { + return false; + } + } + /** * 获取当前月的第一天 * @return