| @@ -10,8 +10,8 @@ public enum EnumMsgLimitType { | |||||
| SMS_SALE(2, "短信-营销"), | SMS_SALE(2, "短信-营销"), | ||||
| WEAPP_PREPAYID(11, "小程序prepayId"), | WEAPP_PREPAYID(11, "小程序prepayId"), | ||||
| WEAPP_FORMID(12, "小程序formId"), | WEAPP_FORMID(12, "小程序formId"), | ||||
| WEAPP_OPENID(13, "小程序openId"), | |||||
| WXCHAT_OPENID(14, "公众号openId") | |||||
| WEAPP_OPENID_SEND(101, "小程序发券统一消息"), | |||||
| WXCHAT_OPENID_SEND(201, "公众号发券消息"), | |||||
| ; | ; | ||||
| public static EnumMsgLimitType getEnum(Integer code) { | public static EnumMsgLimitType getEnum(Integer code) { | ||||
| @@ -682,19 +682,6 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| } | } | ||||
| private void doVerifyMpMsg(WxCouponOrder couponOrder, WxCoupon coupon, WxMerchant merchant, WxCUser user, SimpleDateFormat dateFormat, String gotopage) { | private void doVerifyMpMsg(WxCouponOrder couponOrder, WxCoupon coupon, WxMerchant merchant, WxCUser user, SimpleDateFormat dateFormat, String gotopage) { | ||||
| /** | |||||
| * 检查 公众号消息是否超限 | |||||
| */ | |||||
| WxMsgLimit msgLimit = new WxMsgLimit(); | |||||
| msgLimit.setTenantId(user.getTenantId()); | |||||
| msgLimit.setType(EnumMsgLimitType.WXCHAT_OPENID.getCode()); | |||||
| msgLimit.setLimitId(user.getMpOpenId()); | |||||
| if(wxMsgLimitService.checkIsLimit(msgLimit)) { | |||||
| // 已达到限制条件,不发消息了 | |||||
| logger.info("已达到限制条件,不发公众号模板消息了: " + user.getId()); | |||||
| return; | |||||
| } | |||||
| /** | /** | ||||
| * 卡券核销通知 | * 卡券核销通知 | ||||
| * {{first.DATA}} | * {{first.DATA}} | ||||
| @@ -728,19 +715,6 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| } | } | ||||
| private void doVerifyAppUniformMsg(WxCouponOrder couponOrder, WxCoupon coupon, WxMerchant merchant, WxCUser user, SimpleDateFormat dateFormat, String gotopage) { | private void doVerifyAppUniformMsg(WxCouponOrder couponOrder, WxCoupon coupon, WxMerchant merchant, WxCUser user, SimpleDateFormat dateFormat, String gotopage) { | ||||
| /** | |||||
| * 检查 小程序统一消息是否超限 | |||||
| */ | |||||
| WxMsgLimit msgLimit = new WxMsgLimit(); | |||||
| msgLimit.setTenantId(user.getTenantId()); | |||||
| msgLimit.setType(EnumMsgLimitType.WEAPP_OPENID.getCode()); | |||||
| msgLimit.setLimitId(user.getOpenId()); | |||||
| if(wxMsgLimitService.checkIsLimit(msgLimit)) { | |||||
| // 已达到限制条件,不发消息了 | |||||
| logger.info("已达到限制条件,不发小程序统一消息了: " + user.getId()); | |||||
| return; | |||||
| } | |||||
| WxAuthorizerInfo authQ = new WxAuthorizerInfo(); | WxAuthorizerInfo authQ = new WxAuthorizerInfo(); | ||||
| authQ.setAuthorizerAppid(user.getAppId()); | authQ.setAuthorizerAppid(user.getAppId()); | ||||
| authQ.setTenantId(user.getTenantId()); | authQ.setTenantId(user.getTenantId()); | ||||
| @@ -1,11 +1,9 @@ | |||||
| package com.iformall.service.impl; | package com.iformall.service.impl; | ||||
| import cn.binarywang.wx.miniapp.bean.WxMaTemplateData; | |||||
| import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||
| import com.github.pagehelper.PageHelper; | import com.github.pagehelper.PageHelper; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.google.common.collect.Lists; | import com.google.common.collect.Lists; | ||||
| import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.po.msg.AppUniformMsg; | import com.iformall.domain.po.msg.AppUniformMsg; | ||||
| @@ -18,7 +16,6 @@ import com.iformall.mapper.*; | |||||
| import com.iformall.mq.MqBaseProducer; | import com.iformall.mq.MqBaseProducer; | ||||
| import com.iformall.service.*; | import com.iformall.service.*; | ||||
| import com.iformall.utils.DateUtils; | import com.iformall.utils.DateUtils; | ||||
| import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; | |||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| @@ -274,7 +271,7 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { | |||||
| // 检查是否超限 | // 检查是否超限 | ||||
| WxMsgLimit msgLimit = new WxMsgLimit(); | WxMsgLimit msgLimit = new WxMsgLimit(); | ||||
| msgLimit.setTenantId(user.getTenantId()); | msgLimit.setTenantId(user.getTenantId()); | ||||
| msgLimit.setType(EnumMsgLimitType.WXCHAT_OPENID.getCode()); | |||||
| msgLimit.setType(EnumMsgLimitType.WXCHAT_OPENID_SEND.getCode()); | |||||
| msgLimit.setLimitId(user.getMpOpenId()); | msgLimit.setLimitId(user.getMpOpenId()); | ||||
| if(wxMsgLimitService.checkIsLimit(msgLimit)) { | if(wxMsgLimitService.checkIsLimit(msgLimit)) { | ||||
| logger.error("用户公众号模板消息超限" + user.getId()); | logger.error("用户公众号模板消息超限" + user.getId()); | ||||
| @@ -323,7 +320,7 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { | |||||
| // 检查是否超限 | // 检查是否超限 | ||||
| WxMsgLimit msgLimit = new WxMsgLimit(); | WxMsgLimit msgLimit = new WxMsgLimit(); | ||||
| msgLimit.setTenantId(user.getTenantId()); | msgLimit.setTenantId(user.getTenantId()); | ||||
| msgLimit.setType(EnumMsgLimitType.WEAPP_OPENID.getCode()); | |||||
| msgLimit.setType(EnumMsgLimitType.WEAPP_OPENID_SEND.getCode()); | |||||
| msgLimit.setLimitId(user.getOpenId()); | msgLimit.setLimitId(user.getOpenId()); | ||||
| if(wxMsgLimitService.checkIsLimit(msgLimit)) { | if(wxMsgLimitService.checkIsLimit(msgLimit)) { | ||||
| logger.error("用户小程序统一模板消息超限:" + user.getId()); | logger.error("用户小程序统一模板消息超限:" + user.getId()); | ||||
| @@ -32,7 +32,8 @@ public class WxMsgLimitServiceImpl implements WxMsgLimitService { | |||||
| // 删除老的, 手机, openId会出现旧数据,删掉 | // 删除老的, 手机, openId会出现旧数据,删掉 | ||||
| if(record.getType().equals(EnumMsgLimitType.SMS_VALID.getCode()) || | if(record.getType().equals(EnumMsgLimitType.SMS_VALID.getCode()) || | ||||
| record.getType().equals(EnumMsgLimitType.SMS_SALE.getCode()) || | record.getType().equals(EnumMsgLimitType.SMS_SALE.getCode()) || | ||||
| record.getType().equals(EnumMsgLimitType.WXCHAT_OPENID.getCode()) | |||||
| record.getType().equals(EnumMsgLimitType.WEAPP_OPENID_SEND.getCode()) || | |||||
| record.getType().equals(EnumMsgLimitType.WXCHAT_OPENID_SEND.getCode()) | |||||
| ){ | ){ | ||||
| wxMsgLimitMapper.delLimitNum(record); | wxMsgLimitMapper.delLimitNum(record); | ||||
| } | } | ||||
| @@ -64,12 +65,12 @@ public class WxMsgLimitServiceImpl implements WxMsgLimitService { | |||||
| record.setLimitNum(1); | record.setLimitNum(1); | ||||
| Date limitDate = DateUtils.getTimeAfterDays(7, curDate); | Date limitDate = DateUtils.getTimeAfterDays(7, curDate); | ||||
| record.setLimitDate(limitDate); | record.setLimitDate(limitDate); | ||||
| } else if(record.getType().equals(EnumMsgLimitType.WEAPP_OPENID.getCode())) { | |||||
| } else if(record.getType().equals(EnumMsgLimitType.WEAPP_OPENID_SEND.getCode())) { | |||||
| // 小程序openId, 2天内1条 | // 小程序openId, 2天内1条 | ||||
| record.setLimitNum(1); | record.setLimitNum(1); | ||||
| Date limitDate = DateUtils.getTimeAfterDays(2, curDate); | Date limitDate = DateUtils.getTimeAfterDays(2, curDate); | ||||
| record.setLimitDate(limitDate); | record.setLimitDate(limitDate); | ||||
| } else if(record.getType().equals(EnumMsgLimitType.WXCHAT_OPENID.getCode())) { | |||||
| } else if(record.getType().equals(EnumMsgLimitType.WXCHAT_OPENID_SEND.getCode())) { | |||||
| // 公众号openId, 2天内1条 | // 公众号openId, 2天内1条 | ||||
| record.setLimitNum(1); | record.setLimitNum(1); | ||||
| Date limitDate = DateUtils.getTimeAfterDays(2, curDate); | Date limitDate = DateUtils.getTimeAfterDays(2, curDate); | ||||
| @@ -1177,4 +1177,11 @@ public class DateUtils { | |||||
| return calendar.getTime(); | return calendar.getTime(); | ||||
| } | } | ||||
| public static void main(String[] args) { | |||||
| Date curDate = new Date(); | |||||
| Date limitDate = DateUtils.getTimeAfterDays(7, curDate); | |||||
| System.out.println(curDate); | |||||
| System.out.println(limitDate); | |||||
| } | |||||
| } | } | ||||