From 765f2b28f86eb40b69aa415a43354871f3cd4277 Mon Sep 17 00:00:00 2001 From: hupeng Date: Wed, 22 Aug 2018 17:10:24 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=9C=8D=E5=8A=A1][=E6=96=B0=E5=A2=9E]:?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1,?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=BF=87=E6=9C=9F=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/simple/mapper/WxOrderMapper.java | 2 + .../simple/schedule/DaliyAmountSchedule.java | 63 ++++++++++--------- .../simple/schedule/OrderExpireSchedule.java | 59 +++++++++++++++++ .../main/resources/mapper/WxOrderMapper.xml | 12 ++++ 4 files changed, 106 insertions(+), 30 deletions(-) create mode 100644 mallinkService/src/main/java/com/simple/schedule/OrderExpireSchedule.java diff --git a/mallinkService/src/main/java/com/simple/mapper/WxOrderMapper.java b/mallinkService/src/main/java/com/simple/mapper/WxOrderMapper.java index b6f7ed209..d90112eca 100644 --- a/mallinkService/src/main/java/com/simple/mapper/WxOrderMapper.java +++ b/mallinkService/src/main/java/com/simple/mapper/WxOrderMapper.java @@ -2,6 +2,7 @@ package com.simple.mapper; import java.util.*; import com.simple.common.CommonMapper; +import com.simple.domain.po.WxCouponOrder; import com.simple.domain.vo.OrderVo; import org.apache.ibatis.annotations.Param; import com.simple.domain.po.WxOrder; @@ -14,4 +15,5 @@ public interface WxOrderMapper extends CommonMapper { Map queryObject(OrderVo orderVo); + List findListOfUnpaidOrderByDate(Map dateMap); } diff --git a/mallinkService/src/main/java/com/simple/schedule/DaliyAmountSchedule.java b/mallinkService/src/main/java/com/simple/schedule/DaliyAmountSchedule.java index 55f031d11..6e84d3a21 100644 --- a/mallinkService/src/main/java/com/simple/schedule/DaliyAmountSchedule.java +++ b/mallinkService/src/main/java/com/simple/schedule/DaliyAmountSchedule.java @@ -64,42 +64,45 @@ public class DaliyAmountSchedule { for (int j=0; j < merchantList.size(); j++) { merchant = merchantList.get(j); - HashMap dateMap = new HashMap(); + Map dateMap = new HashMap(); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); String dateString = fmt.format(new Date()); + Date startDate = null; try { - Date startDate = fmt.parse(dateString); - dateMap.put("startDate", startDate); - dateMap.put("endDate", new Date()); - dateMap.put("merchantID",merchant.getId()); - - List list = wxCouponOrderMapper.findListOfOrderedByDate(dateMap); - logger.info("find " + list.size() + " coupon order from " + startDate + " to " + new Date()); - int total_price = 0; - for(WxCouponOrder couponOrder : list) { - total_price = total_price + couponOrder.getCouponPrice(); - } - logger.info("\nFound " + list.size() + " coupon orders \n" + - "for " + merchant.getId() + "\n" + - "from " + startDate + " to " + new Date() +"\n" + - "TOTAL ORDER=" + total_price); - - - list= wxCouponOrderMapper.findListOfVerifiedByDate(dateMap); - logger.info("find " + list.size() + " coupon order from " + startDate + " to " + new Date()); - total_price = 0; - for(WxCouponOrder couponOrder : list) { - total_price = total_price + couponOrder.getCouponPrice(); - } - logger.info("\nFound " + list.size() + " coupon orders \n" + - "for " + merchant.getId() + "\n" + - "from " + startDate + " to " + new Date() +"\n" + - "TOTAL VERIFIED=" + total_price); - //daliy amount 落表 - + startDate = fmt.parse(dateString); } catch (ParseException e) { logger.error("Parse date string failed"); + continue; + } + dateMap.put("startDate", startDate); + dateMap.put("endDate", new Date()); + dateMap.put("merchantID",merchant.getId()); + + List list = wxCouponOrderMapper.findListOfOrderedByDate(dateMap); + logger.info("find " + list.size() + " coupon order from " + startDate + " to " + new Date()); + int total_price = 0; + for(WxCouponOrder couponOrder : list) { + total_price = total_price + couponOrder.getCouponPrice(); } + logger.info("\nFound " + list.size() + " coupon orders \n" + + "for " + merchant.getId() + "\n" + + "from " + startDate + " to " + new Date() +"\n" + + "TOTAL ORDER=" + total_price); + + + list= wxCouponOrderMapper.findListOfVerifiedByDate(dateMap); + logger.info("find " + list.size() + " coupon order from " + startDate + " to " + new Date()); + total_price = 0; + for(WxCouponOrder couponOrder : list) { + total_price = total_price + couponOrder.getCouponPrice(); + } + logger.info("\nFound " + list.size() + " coupon orders \n" + + "for " + merchant.getId() + "\n" + + "from " + startDate + " to " + new Date() +"\n" + + "TOTAL VERIFIED=" + total_price); + + //daliy amount 落表 + } } } diff --git a/mallinkService/src/main/java/com/simple/schedule/OrderExpireSchedule.java b/mallinkService/src/main/java/com/simple/schedule/OrderExpireSchedule.java new file mode 100644 index 000000000..4b6b8a194 --- /dev/null +++ b/mallinkService/src/main/java/com/simple/schedule/OrderExpireSchedule.java @@ -0,0 +1,59 @@ +package com.simple.schedule; + +import com.simple.domain.po.WxCouponOrder; +import com.simple.domain.po.WxMall; +import com.simple.domain.po.WxMerchant; +import com.simple.domain.po.WxOrder; +import com.simple.enums.EnumOrderStatus; +import com.simple.mapper.WxCouponOrderMapper; +import com.simple.mapper.WxMallMapper; +import com.simple.mapper.WxMerchantMapper; +import com.simple.mapper.WxOrderMapper; +import com.simple.service.WxDateAmountRecordService; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Component +public class OrderExpireSchedule { + + private final Logger logger = Logger.getLogger(OrderExpireSchedule.class); + + private final int TIME_OUT_VALUE = 15 * 60 * 1000; //15分钟 + + @Autowired + WxOrderMapper wxOrderMapper; + + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Scheduled(cron = "0 */5 * * * *?") // 每5分钟检查一次 + //@Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次 + public void orderExpireSchedule() { + + Map dateMap = new HashMap(); + Date curDate = new Date(); + + //dateMap.put("startDate",new Date(curDate.getTime() - 2*TIME_OUT_VALUE)); + dateMap.put("endDate", new Date(curDate.getTime() - TIME_OUT_VALUE )); + List wxOrderList = wxOrderMapper.findListOfUnpaidOrderByDate(dateMap); + + for(WxOrder wxOrder: wxOrderList){ + wxOrder.setUpdateDate(new Date()); + wxOrder.setOrderStatus(EnumOrderStatus.ORDER_STATUS_OVERTIME_CANCEL.getCode()); + wxOrderMapper.updateByPrimaryKeySelective(wxOrder); + + logger.info("\nFound " + wxOrder.getId() + "\n" + + " create at " + wxOrder.getCreateDate() +"\n" + + " expired at " + new Date()); + } + } +} \ No newline at end of file diff --git a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml index 785b57305..cec8b0479 100644 --- a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml @@ -183,6 +183,18 @@ + +