From aff42b6813690701e1ae2d88da613fe16788479a Mon Sep 17 00:00:00 2001 From: gongbiao Date: Wed, 5 Jun 2019 13:46:00 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=AE=A3=E4=BC=A0=E6=B4=BB=E5=8A=A8=E6=8A=A5?= =?UTF-8?q?=E5=90=8D][=E4=BF=AE=E6=94=B9][=E6=B4=BB=E5=8A=A8=E6=8F=90?= =?UTF-8?q?=E9=86=92=E7=9F=AD=E4=BF=A1]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schedule/BillNotificationSchedule.java | 115 +++++++----------- .../iformall/schedule/CampaginSchedule.java | 108 ++++++++++++++++ .../com/iformall/mapper/WxCampaignMapper.java | 14 +-- .../resources/mapper/WxCampaignMapper.xml | 5 + 4 files changed, 166 insertions(+), 76 deletions(-) create mode 100644 mallinkSchedule/src/main/java/com/iformall/schedule/CampaginSchedule.java diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/BillNotificationSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/BillNotificationSchedule.java index 33311c52c..d40387d9b 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/BillNotificationSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/BillNotificationSchedule.java @@ -1,19 +1,21 @@ package com.iformall.schedule; -import com.alibaba.fastjson.JSONObject; +import com.iformall.domain.po.WxCampaign; +import com.iformall.domain.po.WxCampaignJoin; import com.iformall.domain.po.msg.WxMsgRecord; import com.iformall.enums.*; -import com.iformall.mapper.*; +import com.iformall.mapper.WxCampaignJoinMapper; +import com.iformall.mapper.WxCampaignMapper; import com.iformall.mq.MqBaseProducer; -import com.iformall.service.WxBillAllService; +import com.iformall.utils.DateUtils; import org.apache.commons.collections.map.HashedMap; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import java.math.BigDecimal; -import java.math.RoundingMode; + import java.util.List; import java.util.Map; @@ -26,81 +28,56 @@ public class BillNotificationSchedule { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired - private WxBillAllMapper wxBillAllMapper; + private WxCampaignMapper wxCampaignMapper; @Autowired - private MqBaseProducer mqBaseProducer; + private WxCampaignJoinMapper wxCampaignJoinMapper; @Autowired - WxBillAllService wxBillAllService; + private MqBaseProducer mqBaseProducer; /** - * 每天9点执行 + * 每天12点执行 */ - @Scheduled(cron = "0 0 14 * * ?") - public void sendMsgFromBill() { - logger.info("账单通知任务启动"); - sendWaitPayBill(); - wxBillAllService.sendWaitPayBillEmail(); - sendOweBill(); - wxBillAllService.sendOweBillForEmail(); - logger.info("账单通知任务结束"); - } - - private void sendOweBill() { - logger.info("查询欠缴账单数据"); - List> oweBillList = wxBillAllMapper.getOweBill(); - for (Map bill : oweBillList) { - logger.info("欠缴账单:" + JSONObject.toJSONString(bill)); - String tenantId = bill.get("tenantId").toString(); - BigDecimal owe = (BigDecimal) bill.get("owe"); - BigDecimal price = owe.divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN); - String phone = bill.get("linkPhone").toString(); - String appname = bill.get("appname").toString(); - String merchantName = bill.get("merchantName").toString(); - logger.info("欠缴账单检验短信配置信息"); - - WxMsgRecord wxMsgRecord = new WxMsgRecord(); - wxMsgRecord.setMsgType(EnumMsgRecordType.SMS.getCode()); - wxMsgRecord.setModelType(EnumMsgModel.BILL_OWE.getCode()); - wxMsgRecord.setReceiver(phone); - wxMsgRecord.setTenantId(tenantId); - Map map = new HashedMap(); - map.put("price",price.toString()); - map.put("app",appname); - map.put("merName",merchantName); - wxMsgRecord.setDynamicContentMap(map); - mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),EnumMsgMqKey.DEFAULT.getCode()); + @Scheduled(cron = "0 0 12 * * ?") + public void sendMsg() { + logger.info("限时活动参与提醒任务启动"); + WxCampaign wxCampaign = new WxCampaign(); + wxCampaign.setStatus(EnumCampaignStatus.STATUS_THROW_IN.getCode()); + List wxCampaigns = wxCampaignMapper.queryNotify(wxCampaign); + WxCampaignJoin wxCampaignJoin = null; + for (WxCampaign campaign : wxCampaigns) { + wxCampaignJoin = new WxCampaignJoin(); + wxCampaignJoin.setTenantId(campaign.getTenantId()); + wxCampaignJoin.setCampaignId(campaign.getId()); + wxCampaignJoin.setStatus(EnumCampaignJoinStatus.CONFIRMED.getCode()); + List list = wxCampaignJoinMapper.findList(wxCampaignJoin); + for (WxCampaignJoin campaignJoin : list) { + send(campaign, campaignJoin); + } } } - private void sendWaitPayBill() { - logger.info("查询待缴账单数据"); - List> waitBillList = wxBillAllMapper.getWaitPayBill(); - for (Map bill : waitBillList) { - logger.info("待缴账单账单:" + JSONObject.toJSONString(bill)); - String tenantId = bill.get("tenantId").toString(); - String receiveDate = bill.get("receiveDate").toString(); - BigDecimal needPay = (BigDecimal) bill.get("needPay"); - BigDecimal price = needPay.divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN); - String phone = bill.get("linkPhone").toString(); - String appname = bill.get("appname").toString(); - String merchantName = bill.get("merchantName").toString(); - logger.info("待缴账单检验短信配置信息"); + private void send(WxCampaign campaign, WxCampaignJoin campaignJoin) { + logger.info("限时活动参与提醒短信发送开始"); + String phone = campaignJoin.getPhone(); + String person = campaignJoin.getName(); + person = StringUtils.isNotEmpty(person) ? person : ""; + String time = DateUtils.date2String(campaign.getActivityTime()); + String party = campaign.getTitle(); + WxMsgRecord wxMsgRecord = new WxMsgRecord(); + wxMsgRecord.setMsgType(EnumMsgRecordType.SMS.getCode()); + wxMsgRecord.setModelType(EnumMsgModel.TIME_LIMIT_CAMPAIGN_NOTIFY.getCode()); + wxMsgRecord.setReceiver(phone); + wxMsgRecord.setTenantId(campaignJoin.getTenantId()); + Map map = new HashedMap(); + map.put("person", person); + map.put("party", party); + map.put("time", time); + wxMsgRecord.setDynamicContentMap(map); + mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + logger.info("限时活动参与提醒短信发送结束"); - WxMsgRecord wxMsgRecord = new WxMsgRecord(); - wxMsgRecord.setMsgType(EnumMsgRecordType.SMS.getCode()); - wxMsgRecord.setModelType(EnumMsgModel.BILL_WAIT_PAY.getCode()); - wxMsgRecord.setReceiver(phone); - wxMsgRecord.setTenantId(tenantId); - Map map = new HashedMap(); - map.put("price",price.toString()); - map.put("app",appname); - map.put("date",receiveDate); - map.put("merName",merchantName); - wxMsgRecord.setDynamicContentMap(map); - mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),EnumMsgMqKey.DEFAULT.getCode()); - } } diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/CampaginSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/CampaginSchedule.java new file mode 100644 index 000000000..eb0fb38ce --- /dev/null +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/CampaginSchedule.java @@ -0,0 +1,108 @@ +package com.iformall.schedule; + +import com.alibaba.fastjson.JSONObject; +import com.iformall.domain.po.msg.WxMsgRecord; +import com.iformall.enums.*; +import com.iformall.mapper.WxBillAllMapper; +import com.iformall.mq.MqBaseProducer; +import com.iformall.service.WxBillAllService; +import org.apache.commons.collections.map.HashedMap; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.List; +import java.util.Map; + +/** + * @author gongbiao + */ +@Component +public class CampaginSchedule { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxBillAllMapper wxBillAllMapper; + + @Autowired + private MqBaseProducer mqBaseProducer; + + @Autowired + WxBillAllService wxBillAllService; + + /** + * 每天9点执行 + */ + @Scheduled(cron = "0 0 14 * * ?") + public void sendMsgFromBill() { + logger.info("账单通知任务启动"); + sendWaitPayBill(); + wxBillAllService.sendWaitPayBillEmail(); + sendOweBill(); + wxBillAllService.sendOweBillForEmail(); + logger.info("账单通知任务结束"); + } + + private void sendOweBill() { + logger.info("查询欠缴账单数据"); + List> oweBillList = wxBillAllMapper.getOweBill(); + for (Map bill : oweBillList) { + logger.info("欠缴账单:" + JSONObject.toJSONString(bill)); + String tenantId = bill.get("tenantId").toString(); + BigDecimal owe = (BigDecimal) bill.get("owe"); + BigDecimal price = owe.divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN); + String phone = bill.get("linkPhone").toString(); + String appname = bill.get("appname").toString(); + String merchantName = bill.get("merchantName").toString(); + logger.info("欠缴账单检验短信配置信息"); + + WxMsgRecord wxMsgRecord = new WxMsgRecord(); + wxMsgRecord.setMsgType(EnumMsgRecordType.SMS.getCode()); + wxMsgRecord.setModelType(EnumMsgModel.BILL_OWE.getCode()); + wxMsgRecord.setReceiver(phone); + wxMsgRecord.setTenantId(tenantId); + Map map = new HashedMap(); + map.put("price", price.toString()); + map.put("app", appname); + map.put("merName", merchantName); + wxMsgRecord.setDynamicContentMap(map); + mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + } + } + + private void sendWaitPayBill() { + logger.info("查询待缴账单数据"); + List> waitBillList = wxBillAllMapper.getWaitPayBill(); + for (Map bill : waitBillList) { + logger.info("待缴账单账单:" + JSONObject.toJSONString(bill)); + String tenantId = bill.get("tenantId").toString(); + String receiveDate = bill.get("receiveDate").toString(); + BigDecimal needPay = (BigDecimal) bill.get("needPay"); + BigDecimal price = needPay.divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN); + String phone = bill.get("linkPhone").toString(); + String appname = bill.get("appname").toString(); + String merchantName = bill.get("merchantName").toString(); + logger.info("待缴账单检验短信配置信息"); + + WxMsgRecord wxMsgRecord = new WxMsgRecord(); + wxMsgRecord.setMsgType(EnumMsgRecordType.SMS.getCode()); + wxMsgRecord.setModelType(EnumMsgModel.BILL_WAIT_PAY.getCode()); + wxMsgRecord.setReceiver(phone); + wxMsgRecord.setTenantId(tenantId); + Map map = new HashedMap(); + map.put("price", price.toString()); + map.put("app", appname); + map.put("date", receiveDate); + map.put("merName", merchantName); + wxMsgRecord.setDynamicContentMap(map); + mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + } + } + + +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCampaignMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCampaignMapper.java index cb7d9559c..6c435dbc1 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCampaignMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCampaignMapper.java @@ -5,17 +5,17 @@ import com.iformall.domain.po.WxCampaign; import java.util.List; +/** + * @author gongbiao + */ public interface WxCampaignMapper extends CommonMapper { - List findList(WxCampaign wxCampaign); + List findList(WxCampaign wxCampaign); List findCList(WxCampaign wxCampaign); - int getMaxSortNum(String tenantId); - - + int getMaxSortNum(String tenantId); + + List queryNotify(WxCampaign wxCampaign); - - - } diff --git a/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml b/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml index e2ced761a..400c6f554 100644 --- a/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCampaignMapper.xml @@ -164,6 +164,11 @@ + +