From a58a5e205952bae678caea53daa9323a520c7a22 Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 12 Jul 2021 18:13:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E9=98=85=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxCouponSendServiceImpl.java | 37 +++++++++- .../impl/WxCreditHistoryServiceImpl.java | 68 ++++++++++--------- 2 files changed, 71 insertions(+), 34 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java index b341c1d30..839bdac20 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java @@ -12,6 +12,7 @@ import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.msg.AppUniformMsg; import com.iformall.domain.po.msg.MpAppMsg; +import com.iformall.domain.po.msg.WxMsg; import com.iformall.domain.po.msg.WxMsgRecord; import com.iformall.domain.vo.WxCouponSendVo; import com.iformall.enums.*; @@ -68,6 +69,10 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { WxMsgLimitService wxMsgLimitService; @Autowired WxCouponMerchantMapper wxCouponMerchantMapper; + @Autowired + WxTemplateMsgService wxTemplateMsgService; + @Autowired + WxMsgService wxMsgService; @Override public PageInfo listAsPage(WxCouponSend record, Integer pageIndex, Integer pageSize) { @@ -426,8 +431,9 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { setUserId(couponOrder.getCUserId()); }}); if(list != null && list.size() > 0){ - WxCUser cuser = list.get(0); - if(cuser != null){ + for (WxCUser cuser:list) { + //发订阅消息 + sendCouponRemind(send, couponOrder, cuser); // 发送微信模板消息(公众号模板消息/小程序统一消息/小程序模板消息) sendMpMsgForSendCoupon(send, couponOrder, cuser); } @@ -475,6 +481,33 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { } } + private void sendCouponRemind(WxCouponSend send, WxCouponOrder couponOrder,WxCUser cuser){ + try { + WxTemplateMsg temp = new WxTemplateMsg(); + temp.updateTenantInfo(send); + temp.setType(EnumTemplateType.SEND_COUPON_REMIND.getCode()); + temp = wxTemplateMsgService.getByObj(temp); + if(temp.getId() != null){ + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + WxMsg msg = new WxMsg(); + msg.updateTenantInfo(send); + msg.setPhones(cuser.getOpenId()); + msg.setModelId(temp.getId()); + Map map = new HashMap<>(); + map.put("thing1",send.getTitle()); + map.put("time3",dateFormat.format(couponOrder.getCreateDate())); + map.put("time4",dateFormat.format(couponOrder.getExpiredTime())); + map.put("thing5","你的优惠卷已到账!请立即使用"); + map.put("goToPage","pages/index/index?type=mc"); + msg.setMsg(JSONObject.toJSONString(map)); + wxMsgService.batchSendAppinfo(msg); + } + } catch (Exception e) { +// e.printStackTrace(); + logger.error("发卷消息发送异常"); + } + } + private boolean sendMpMsgForSendCoupon(WxCouponSend send, WxCouponOrder couponOrder, WxCUser user) { // 发送 公众号 模板消息 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java index f3e920e37..48c012249 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java @@ -316,47 +316,51 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { } //发消息 - try { - WxTemplateMsg temp = new WxTemplateMsg(); - temp.updateTenantInfo(record); - temp.setType(EnumTemplateType.CREDIT_UPD_REMIND.getCode()); - temp = wxTemplateMsgService.getByObj(temp); - if(temp.getId() != null){ - List openIds = wxCUserMapper.findOpenIdList(wxCUserBasicInfo.getId(),tenantId); - if(openIds != null && openIds.size() > 0){ - WxMsg msg = new WxMsg(); - msg.updateTenantInfo(record); + sendCreditUpdRemind(wxCUserBasicInfo,record,tenantId); + + + } else { + //wxCreditHistoryMapper.updateById(record); + } + } + return record; + } + + private void sendCreditUpdRemind(WxCUserBasicInfo wxCUserBasicInfo,WxCreditHistory record,String tenantId){ + try { + WxTemplateMsg temp = new WxTemplateMsg(); + temp.updateTenantInfo(record); + temp.setType(EnumTemplateType.CREDIT_UPD_REMIND.getCode()); + temp = wxTemplateMsgService.getByObj(temp); + if(temp.getId() != null){ + List openIds = wxCUserMapper.findOpenIdList(wxCUserBasicInfo.getId(),tenantId); + if(openIds != null && openIds.size() > 0){ + WxMsg msg = new WxMsg(); + msg.updateTenantInfo(record); // msg.setWay(EnumSendWay.APPINFOR.getCode()); // msg.setIsright(EnumMsgSend.MSG_SEND_IMMEDIATELY.getCode()); // msg.setStatus(EnumMsgStatus.MSG_STATUS_NOT_SEND.getCode()); - msg.setPhones(String.join(",", openIds)); - msg.setModelId(temp.getId()); - Map map = new HashMap<>(); - map.put("character_string1",record.getCreditNum().toString()); - map.put("character_string2",record.getCreditAmount().toString()); - map.put("time4",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(record.getCreateDate())); - map.put("thing3",EnumScoreType.getEnum(record.getCreditType()).getMessage()); - map.put("goToPage","pages/index/index?type=jf"); - msg.setMsg(JSONObject.toJSONString(map)); + msg.setPhones(String.join(",", openIds)); + msg.setModelId(temp.getId()); + Map map = new HashMap<>(); + map.put("character_string1",record.getCreditNum().toString()); + map.put("character_string2",record.getCreditAmount().toString()); + map.put("time4",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(record.getCreateDate())); + map.put("thing3",EnumScoreType.getEnum(record.getCreditType()).getMessage()); + map.put("goToPage","pages/index/index?type=jf"); + msg.setMsg(JSONObject.toJSONString(map)); // msg.setName(EnumTemplateType.CREDIT_UPD_REMIND.name()); // msg.setSignature(EnumTemplateType.CREDIT_UPD_REMIND.name()); // wxMsgService.add(msg); - wxMsgService.batchSendAppinfo(msg); - }else{ - logger.error("找不到微信用户"); - } - } - } catch (Exception e) { -// e.printStackTrace(); - logger.error("积分消息发送异常"); + wxMsgService.batchSendAppinfo(msg); + }else{ + logger.error("找不到微信用户"); } - - - } else { - //wxCreditHistoryMapper.updateById(record); } + } catch (Exception e) { +// e.printStackTrace(); + logger.error("积分消息发送异常"); } - return record; } @Override