|
- package com.simple.schedule;
-
- import com.simple.common.IdWorker;
- import com.simple.domain.po.WxCouponOrder;
- import com.simple.domain.po.WxDateAmountRecord;
- import com.simple.domain.po.WxMall;
- import com.simple.domain.po.WxMerchant;
- import com.simple.mapper.*;
- import com.simple.service.WxDateAmountRecordService;
- import com.simple.utils.*;
- import org.apache.log4j.Logger;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Component;
-
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.*;
-
- @Component
- public class DaliyAmountSchedule {
-
- private final Logger logger = Logger.getLogger(DaliyAmountSchedule.class);
-
-
- @Autowired
- private WxMallMapper wxMallMapper;
-
- @Autowired
- private WxMerchantMapper wxMerchantMapper;
-
-
- @Autowired
- private WxCouponOrderMapper wxCouponOrderMapper;
-
-
- @Autowired
- private WxDateAmountRecordService wxDateAmountRecordService;
-
-
-
-
- @Scheduled(cron = "0 0 23 * * ?") // 每天晚上11点盘点
- //@Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次
- public void daliyAmountSchedule() {
-
-
- List<WxMall> mallList = wxMallMapper.findList(new WxMall());
-
- if (mallList.size()==0) {
- logger.info("No Mall info found");
- return;
- }
-
- for (int i=0; i < mallList.size(); i++) {
-
- WxMerchant merchant = new WxMerchant();
- merchant.setTenantId(mallList.get(i).getTenantId());
- List<WxMerchant> merchantList = wxMerchantMapper.findList(merchant);
-
- if (merchantList.size()==0) {
- logger.info("No merchant info found in mall" + mallList.get(i).getName());
- continue;
- }
-
- for (int j=0; j < merchantList.size(); j++) {
- merchant = merchantList.get(j);
-
- Map dateMap = new HashMap();
- SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
- String dateString = fmt.format(new Date());
- Date startDate = null;
- try {
- 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<WxCouponOrder> list = wxCouponOrderMapper.findListOfUnverifiedByDate(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);
-
-
- Date now = new Date();
- Calendar cal = Calendar.getInstance();
- cal.setTime(now); // 将时分秒,毫秒域清零
- cal.set(Calendar.HOUR_OF_DAY, 0);
- cal.set(Calendar.MINUTE, 0);
- cal.set(Calendar.SECOND, 0);
- cal.set(Calendar.MILLISECOND, 0);
- now = cal.getTime();
-
- WxDateAmountRecord dateAmountRecord = new WxDateAmountRecord();
- dateAmountRecord.setId(IdWorker.get().nextId());
- dateAmountRecord.setCreateDate(new Date());
- dateAmountRecord.setUpdateDate(new Date());
- dateAmountRecord.setPayPrice(total_price);
- dateAmountRecord.setMerchantId(merchant.getId());
- dateAmountRecord.setTenantId(merchant.getTenantId());
- dateAmountRecord.setType(0);
- dateAmountRecord.setDate(now);
- dateAmountRecord.setDayOfWeek(cal.get(Calendar.DAY_OF_WEEK));
- dateAmountRecord.setMonth(cal.get(Calendar.MONTH));
- dateAmountRecord.setWeekOfYear(cal.get(Calendar.WEEK_OF_YEAR));
-
- wxDateAmountRecordService.saveDaliyAmount(dateAmountRecord);
-
- 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);
-
- dateAmountRecord.setId(IdWorker.get().nextId());
- dateAmountRecord.setPayPrice(total_price);
- dateAmountRecord.setType(1);
- wxDateAmountRecordService.saveDaliyAmount(dateAmountRecord);
-
- }
- }
- }
- }
|