diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java index 31f72f31c..f71ff1ca1 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java @@ -56,9 +56,14 @@ public class MsgSendingSchedule { //sendmsg(msg); msg.setStatus(EnumMsgStatus.MSG_STATUS_SENDED.getCode()); if(wxMsg.getWay() == EnumSendWay.TAG.getCode()){ - msg.setMsgType(EnumMsgRecordType.SMS_CALLBACK.getCode()); - msg.setReceiver(msg.getPhones()); - mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(),null); + if (wxMsg.getExpectSendNumber().intValue() > 1000) { + WxMsgService.batchSendMsg(wxMsg, null, null); + } else { + msg.setMsgType(EnumMsgRecordType.SMS_CALLBACK.getCode()); + msg.setReceiver(msg.getPhones()); + mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(),null); + } + }else if(msg.getWay() == EnumSendWay.APPINFOR.getCode()){ WxMsgService.batchSendAppinfo(msg); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMsgService.java b/mallinkService/src/main/java/com/iformall/service/WxMsgService.java index 890a333d2..6a2421d92 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMsgService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMsgService.java @@ -41,4 +41,6 @@ public interface WxMsgService { void addMsgCallback(WxMsg wxmsg, String batchNo); void batchSendAppinfo(WxMsg wxMsg); + + void batchSendMsg(WxMsg wxMsg, WxMsgConfig wxMsgConfig, WxCouponInject couponInject); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java index 4cc3c843d..fbe395492 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java @@ -329,7 +329,7 @@ public class WxMsgServiceImpl implements WxMsgService { batchSendMsg(wxmsg, wxMsgConfig, couponInject); } - + @Override public void batchSendMsg(WxMsg wxMsg, WxMsgConfig wxMsgConfig, WxCouponInject couponInject) { String[] split = wxMsg.getPhones().split(","); @@ -337,27 +337,30 @@ public class WxMsgServiceImpl implements WxMsgService { int extra = length % 1000; int extracount = extra > 0 ? (length / 1000 + 1) : (length / 1000); int index = extracount - 1; + for (int i = 0; i < extracount; i++) { + WxMsg wxMsg1 = new WxMsg(); + wxMsg1.setId(wxMsg.getId()); if (extra > 0 && i == index) { List phoneList = Arrays.asList(split).subList(i * 1000, length); String phones = StringUtils.join(phoneList, ","); - wxMsg.setPhones(phones); - wxMsg.setExpectSendNumber(extra); - wxMsg.setWxMsgConfig(wxMsgConfig); - wxMsg.setCouponInject(couponInject); - wxMsg.setMsgType(EnumMsgRecordType.SMS_CALLBACK.getCode()); - wxMsg.setReceiver(wxMsg.getPhones()); - mqBaseProducer.sendMessage(wxMsg, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),EnumMsgMqKey.DEFAULT.getCode()); + wxMsg1.setPhones(phones); + wxMsg1.setExpectSendNumber(extra); + wxMsg1.setWxMsgConfig(wxMsgConfig); + wxMsg1.setCouponInject(couponInject); + wxMsg1.setMsgType(EnumMsgRecordType.SMS_CALLBACK.getCode()); + wxMsg1.setReceiver(wxMsg1.getPhones()); + mqBaseProducer.sendMessage(wxMsg1, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),EnumMsgMqKey.DEFAULT.getCode()); } else { List phoneList = Arrays.asList(split).subList(i * 1000, (i + 1) * 1000); String phones = StringUtils.join(phoneList, ","); - wxMsg.setExpectSendNumber(1000); - wxMsg.setPhones(phones); - wxMsg.setWxMsgConfig(wxMsgConfig); - wxMsg.setCouponInject(couponInject); - wxMsg.setMsgType(EnumMsgRecordType.SMS_CALLBACK.getCode()); - wxMsg.setReceiver(wxMsg.getPhones()); - mqBaseProducer.sendMessage(wxMsg, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),EnumMsgMqKey.DEFAULT.getCode()); + wxMsg1.setExpectSendNumber(1000); + wxMsg1.setPhones(phones); + wxMsg1.setWxMsgConfig(wxMsgConfig); + wxMsg1.setCouponInject(couponInject); + wxMsg1.setMsgType(EnumMsgRecordType.SMS_CALLBACK.getCode()); + wxMsg1.setReceiver(wxMsg1.getPhones()); + mqBaseProducer.sendMessage(wxMsg1, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),EnumMsgMqKey.DEFAULT.getCode()); } } }