From 150fcf9332f6eaee706a55620db1ccea39afb9c9 Mon Sep 17 00:00:00 2001 From: hupeng Date: Wed, 22 Aug 2018 13:21:39 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=9C=8D=E5=8A=A1][=E6=96=B0=E5=A2=9E]:?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=90=8E=E5=8F=B0=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1,=E6=AF=8F=E5=A4=A911=E7=82=B9=E6=B1=87=E6=80=BB?= =?UTF-8?q?=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../simple/mapper/WxCouponOrderMapper.java | 4 + .../simple/schedule/DaliyAmountSchedule.java | 106 ++++++++++++++++ .../simple/schedule/MsgSendingSchedule.java | 112 +++++++++++++++++ .../com/simple/schedule/SchedulingConfig.java | 114 ++---------------- .../resources/mapper/WxCouponOrderMapper.xml | 25 ++++ 5 files changed, 256 insertions(+), 105 deletions(-) create mode 100644 mallinkService/src/main/java/com/simple/schedule/DaliyAmountSchedule.java create mode 100644 mallinkService/src/main/java/com/simple/schedule/MsgSendingSchedule.java diff --git a/mallinkService/src/main/java/com/simple/mapper/WxCouponOrderMapper.java b/mallinkService/src/main/java/com/simple/mapper/WxCouponOrderMapper.java index 2d0387bca..2ab4a7b63 100644 --- a/mallinkService/src/main/java/com/simple/mapper/WxCouponOrderMapper.java +++ b/mallinkService/src/main/java/com/simple/mapper/WxCouponOrderMapper.java @@ -8,4 +8,8 @@ import com.simple.domain.po.WxCouponOrder; public interface WxCouponOrderMapper extends CommonMapper { List findList(WxCouponOrder wxCouponOrder); + + List findListOfOrderedByDate(Map dateMap); + List findListOfVerifiedByDate(Map dateMap); + } diff --git a/mallinkService/src/main/java/com/simple/schedule/DaliyAmountSchedule.java b/mallinkService/src/main/java/com/simple/schedule/DaliyAmountSchedule.java new file mode 100644 index 000000000..55f031d11 --- /dev/null +++ b/mallinkService/src/main/java/com/simple/schedule/DaliyAmountSchedule.java @@ -0,0 +1,106 @@ +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.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 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 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); + + HashMap dateMap = new HashMap(); + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); + String dateString = fmt.format(new Date()); + 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 落表 + + } catch (ParseException e) { + logger.error("Parse date string failed"); + } + } + } + } +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/simple/schedule/MsgSendingSchedule.java b/mallinkService/src/main/java/com/simple/schedule/MsgSendingSchedule.java new file mode 100644 index 000000000..6b2456fde --- /dev/null +++ b/mallinkService/src/main/java/com/simple/schedule/MsgSendingSchedule.java @@ -0,0 +1,112 @@ +package com.simple.schedule; + +import com.alibaba.fastjson.JSONObject; +import com.simple.domain.po.WxMsg; +import com.simple.domain.po.WxMsgConfig; +import com.simple.mapper.WxMsgConfigMapper; +import com.simple.mapper.WxMsgMapper; +import com.simple.utils.*; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.*; + +@Component +public class MsgSendingSchedule { + + private final Logger logger = Logger.getLogger(MsgSendingSchedule.class); + + @Autowired + private WxMsgMapper wxMsgMapper; + + @Autowired + private WxMsgConfigMapper wxMsgConfigMapper; + + + @Scheduled(cron = "0 1 * * * ?") // 每小时第一分钟执行 + public void sendmsgschedule() { + + logger.info("sendmsg定时任务启动"); + + String systemTime = DateUtils.getSystemTime("yyyy-MM-dd HH:00:00"); + WxMsg wxMsg = new WxMsg(); + wxMsg.setIsright(0); + wxMsg.setSendtime(systemTime); + List list = wxMsgMapper.findList(wxMsg); + + for(WxMsg msg:list){ + sendmsg(msg); + } + + logger.info("sendmsg定时任务结束"); + } + + public void sendmsg(WxMsg wxMsg){ + //从短信配置中查询密钥 bid 等信息 + WxMsgConfig wxMsgConfig = new WxMsgConfig(); + wxMsgConfig.setTenantId("1"); + List wxMsgConfigs = wxMsgConfigMapper.findList(wxMsgConfig); + if (wxMsgConfigs.size() == 0) return; + wxMsgConfig = wxMsgConfigs.get(0); + + String secret = wxMsgConfig.getSecret(); + String bid = wxMsgConfig.getBid(); + String publickey = wxMsgConfig.getPublickey(); + + String phone = wxMsg.getPhones(); + String signature = wxMsg.getSignature(); + String msg = wxMsg.getMsg(); + String notifyUrl = wxMsgConfig.getNotifyurl(); + TreeMap message = new TreeMap<>(); + message.put("bid", bid); + message.put("phone", phone); + message.put("signature", signature); + message.put("msg", msg); + message.put("notify_url", notifyUrl); + + StringBuilder sb = new StringBuilder(); + Set> entries = message.entrySet(); + for (Map.Entry entry : entries) { + sb.append(entry.getKey()).append("=").append(entry.getValue()); + } + sb.append("&secret=").append(secret); + String sign = HMACSHA256.sha256_HMAC(sb.toString(), secret); + message.put("sign", sign.toUpperCase()); + + String str32 = "198b02e8fd704e96198b02e8fd704e96"; + String iv = "198b02e8fd704e96"; + + Map params = new HashMap<>(); + params.put("iv", iv); + params.put("bid", bid); + + try { + String data = AesUtil.AESEncode(str32, JSONObject.toJSONString(message), iv); + String sc = RsaUtil.RSAEncode(str32.getBytes(), publickey); + params.put("data", data); + params.put("sc", sc); + } catch (Exception e) { + e.printStackTrace(); + } + + String requestUrl = "https://webapp.wiwide.com/apisms/send"; + String result = HttpUtil.doPost(requestUrl, params); + JSONObject jsonObjectResult = JSONObject.parseObject(result); + String ret = jsonObjectResult.get("ret").toString(); + + if (ret.equals("1")) { + wxMsg.setSendstatus(1); + } else { + wxMsg.setSendstatus(0); + } + + wxMsg.setStatus(1); + wxMsgMapper.updateByPrimaryKeySelective(wxMsg); + + } + +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/simple/schedule/SchedulingConfig.java b/mallinkService/src/main/java/com/simple/schedule/SchedulingConfig.java index d3591e1c6..1bbab78a5 100644 --- a/mallinkService/src/main/java/com/simple/schedule/SchedulingConfig.java +++ b/mallinkService/src/main/java/com/simple/schedule/SchedulingConfig.java @@ -1,114 +1,18 @@ package com.simple.schedule; -import com.alibaba.fastjson.JSONObject; -import com.simple.domain.po.WxMsg; -import com.simple.domain.po.WxMsgConfig; -import com.simple.mapper.WxMsgConfigMapper; -import com.simple.mapper.WxMsgMapper; -import com.simple.utils.*; -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.annotation.Scheduled; - -import java.util.*; @Configuration @EnableScheduling -public class SchedulingConfig { - - private final Logger logger = Logger.getLogger(SchedulingConfig.class); - - - @Autowired - private WxMsgMapper wxMsgMapper; - - @Autowired - private WxMsgConfigMapper wxMsgConfigMapper; - - - @Scheduled(cron = "0 1 * * * ?") // 每小时第一分钟执行 - public void sendmsgschedule() { - - logger.info("sendmsg定时任务启动"); - - String systemTime = DateUtils.getSystemTime("yyyy-MM-dd HH:00:00"); - WxMsg wxMsg = new WxMsg(); - wxMsg.setIsright(0); - wxMsg.setSendtime(systemTime); - List list = wxMsgMapper.findList(wxMsg); - - for(WxMsg msg:list){ - sendmsg(msg); - } - - logger.info("sendmsg定时任务结束"); - } - - public void sendmsg(WxMsg wxMsg){ - //从短信配置中查询密钥 bid 等信息 - WxMsgConfig wxMsgConfig = new WxMsgConfig(); - wxMsgConfig.setTenantId("1"); - List wxMsgConfigs = wxMsgConfigMapper.findList(wxMsgConfig); - if (wxMsgConfigs.size() == 0) return; - wxMsgConfig = wxMsgConfigs.get(0); - - String secret = wxMsgConfig.getSecret(); - String bid = wxMsgConfig.getBid(); - String publickey = wxMsgConfig.getPublickey(); - - String phone = wxMsg.getPhones(); - String signature = wxMsg.getSignature(); - String msg = wxMsg.getMsg(); - String notifyUrl = wxMsgConfig.getNotifyurl(); - TreeMap message = new TreeMap<>(); - message.put("bid", bid); - message.put("phone", phone); - message.put("signature", signature); - message.put("msg", msg); - message.put("notify_url", notifyUrl); - - StringBuilder sb = new StringBuilder(); - Set> entries = message.entrySet(); - for (Map.Entry entry : entries) { - sb.append(entry.getKey()).append("=").append(entry.getValue()); - } - sb.append("&secret=").append(secret); - String sign = HMACSHA256.sha256_HMAC(sb.toString(), secret); - message.put("sign", sign.toUpperCase()); - - String str32 = "198b02e8fd704e96198b02e8fd704e96"; - String iv = "198b02e8fd704e96"; - - Map params = new HashMap<>(); - params.put("iv", iv); - params.put("bid", bid); - - try { - String data = AesUtil.AESEncode(str32, JSONObject.toJSONString(message), iv); - String sc = RsaUtil.RSAEncode(str32.getBytes(), publickey); - params.put("data", data); - params.put("sc", sc); - } catch (Exception e) { - e.printStackTrace(); - } - - String requestUrl = "https://webapp.wiwide.com/apisms/send"; - String result = HttpUtil.doPost(requestUrl, params); - JSONObject jsonObjectResult = JSONObject.parseObject(result); - String ret = jsonObjectResult.get("ret").toString(); - - if (ret.equals("1")) { - wxMsg.setSendstatus(1); - } else { - wxMsg.setSendstatus(0); - } - - wxMsg.setStatus(1); - wxMsgMapper.updateByPrimaryKeySelective(wxMsg); - - } - +public class SchedulingConfig { //implements SchedulingConfigurer { + + // @Override + // public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + // ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); + // scheduler.setPoolSize(10); + // scheduler.initialize(); + // taskRegistrar.setTaskScheduler(scheduler); + // } } \ No newline at end of file diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index 3656f4487..56d885eeb 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -90,4 +90,29 @@ + + + +