diff --git a/mallinkAdmin/src/main/resources/db/migration/V2023072000002_msg_model.sql b/mallinkAdmin/src/main/resources/db/migration/V2023072000002_msg_model.sql new file mode 100644 index 000000000..4115fbe9b --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V2023072000002_msg_model.sql @@ -0,0 +1,6 @@ +INSERT INTO `mallink`.`wx_msg_validationcode_model`(`id`, `type`, `name`, `signature`, `content`, `createtime`, `status`, `minutes`, `email_bg_img`, `open`, `msg_type`, `role_type`, `model_code`) VALUES (34, 34, '预约通知', '富茂', '您有新的预约订单请及时处理。', '2023-07-20 18:00:26', 1, 0, NULL, 0, 1, 2, 'SMS_461970987'); + +INSERT INTO `mallink`.`wx_msg_validationcode_model`(`id`, `type`, `name`, `signature`, `content`, `createtime`, `status`, `minutes`, `email_bg_img`, `open`, `msg_type`, `role_type`, `model_code`) VALUES (35, 35, '分账失败提醒', '富茂', '您有订单分账处理失败,请及时查看。', '2023-07-20 18:00:26', 1, 0, NULL, 0, 1, 1, 'SMS_462021018'); + + +INSERT INTO `mallink`.`wx_msg_validationcode_model`(`id`, `type`, `name`, `signature`, `content`, `createtime`, `status`, `minutes`, `email_bg_img`, `open`, `msg_type`, `role_type`, `model_code`) VALUES (36, 36, '分账失败通知', '富茂', '\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n 富茂通知邮件\r\n \r\n \r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
通知({mallName})
\r\n
您有分账处理失败的订单,请电脑登录后台查看分账详情
\r\n
\r\n
\r\n
\r\n\r\n\r\n', '2023-07-20 18:00:26', 1, NULL, NULL, 0, 2, 1, NULL); diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java index a835a84dc..698b08d49 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java @@ -1,21 +1,20 @@ package com.iformall.schedule; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; -import com.iformall.domain.dto.WxSharingOrderDto; -import com.iformall.domain.po.WxMall; -import com.iformall.domain.po.WxPayOrder; -import com.iformall.domain.po.WxProfitSharingOrder; +import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; -import com.iformall.enums.EnumPayStatus; -import com.iformall.enums.EnumPayWay; -import com.iformall.enums.EnumProfitSharingOrderStatus; -import com.iformall.enums.EnumProfitSharingOrderType; +import com.iformall.domain.po.msg.MailMsg; +import com.iformall.domain.po.msg.WxMsgRecord; +import com.iformall.enums.*; import com.iformall.mapper.WxMallMapper; +import com.iformall.mapper.WxMallNoticeContactMapper; import com.iformall.mapper.WxPayOrderMapper; import com.iformall.mapper.WxProfitSharingOrderMapper; +import com.iformall.mq.MqBaseProducer; import com.iformall.service.WxProfitSharingOrderService; +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; @@ -23,7 +22,9 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import java.util.List; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; @Component public class SharingOrderRedoSchedule { @@ -39,10 +40,18 @@ public class SharingOrderRedoSchedule { @Autowired WxPayOrderMapper wxPayOrderMapper; - @Autowired WxMallMapper wxMallMapper; + @Autowired + WxMallNoticeContactMapper wxMallNoticeContactMapper; + + @Autowired + MqBaseProducer mqBaseProducer; + + @Autowired + private String fmExceptionEmails; + private List getMalls() { WxMall wxMall =new WxMall(); return wxMallMapper.findList(wxMall); @@ -55,6 +64,8 @@ public class SharingOrderRedoSchedule { public void sharingOrderRedoSchedule() { List malls = getMalls(); for (WxMall mall: malls) { + AtomicInteger errorCount = new AtomicInteger(); + WxProfitSharingOrder wxProfitSharingOrder = new WxProfitSharingOrder(); wxProfitSharingOrder.setTenantId(mall.getTenantId()); // wxProfitSharingOrder.setType(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getCode()); @@ -62,32 +73,48 @@ public class SharingOrderRedoSchedule { List list = wxProfitSharingOrderMapper.findList(wxProfitSharingOrder); if (null != list) { list.stream().forEach(sharingOrder->{ - try { + int i = DateUtils.daysBetween(sharingOrder.getCreateTime(), new Date()); + boolean isSuccess = true; + try { // WxPayOrder wxPayOrder = new WxPayOrder(); // wxPayOrder.updateTenantInfo(sharingOrder); // wxPayOrder.setId(sharingOrder.getOrderId()); // wxPayOrder = wxPayOrderMapper.selectOne(new QueryWrapper(wxPayOrder)); WxPayOrder wxPayOrder = wxPayOrderMapper.selectById(sharingOrder.getOrderId(),sharingOrder.getTenantId()); if (null == wxPayOrder) { + isSuccess = false; logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getMessage() + " ID:" +sharingOrder.getId() + " RES: wxPayOrder is null." ); + return; } ResultData result = wxProfitSharingOrderService.redoSharingOrder(sharingOrder,wxPayOrder); if (result.code != ResultData.SUCCESS) { + isSuccess = false; logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getMessage() + " ID:" +sharingOrder.getId() + " RES:" + result.message); } } catch (Exception e){ + isSuccess = false; logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getMessage() + " ID:" +sharingOrder.getId() + " MSG:" + e.getMessage()); } + //分账3天失败给通知 + if(!isSuccess && i >= 3){ + errorCount.getAndIncrement(); + } }); } - + + if(errorCount.get() > 0){ + try{ + //分账失败通知 + sendSharingErrorMsg(mall); + }catch(Exception e){} + } // wxProfitSharingOrder.setType(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getCode()); // wxProfitSharingOrder.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_APPLY_FAILED.getCode()); @@ -134,6 +161,47 @@ public class SharingOrderRedoSchedule { } + private void sendSharingErrorMsg(WxMall mall){ + logger.info("分账失败通知start"); + WxMallNoticeContact noticeContact = wxMallNoticeContactMapper.getByTenantInfo(mall); + if(noticeContact == null){ + return; + } + Map msgReplaceMap = new HashMap(); + msgReplaceMap.put("mallName", mall.getName()); + + if(StringUtils.isNotBlank(noticeContact.getPhone()) && EnumYesOrNo.YES.getCode().equals(noticeContact.getPhoneEnabled())){ + WxMsgRecord wxMsgRecord = new WxMsgRecord(); + wxMsgRecord.updateTenantInfo(mall); + wxMsgRecord.setMsgType(EnumMsgRecordType.SMS.getCode()); + wxMsgRecord.setModelType(EnumMsgModel.COUPON_ORDER_SHARING_ERROR.getCode()); + wxMsgRecord.setReceiver(noticeContact.getPhone()); + + wxMsgRecord.setDynamicContentMap(msgReplaceMap); + mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + logger.info("分账失败短信通知end"); + } + String[] fmEmails = fmExceptionEmails.split(","); + List mails = new ArrayList<>(Arrays.asList(fmEmails)); + if(StringUtils.isNotBlank(noticeContact.getEmail()) && EnumYesOrNo.YES.getCode().equals(noticeContact.getEmailEnabled())){ + mails.add(noticeContact.getEmail()); + } + String[] strings = mails.toArray(new String[mails.size()]); + + MailMsg mailMsg = new MailMsg(); + mailMsg.setSubject("分账失败通知"); + mailMsg.setHtml(true); + mailMsg.setMsgType(EnumMsgRecordType.EMAIL.getCode()); + mailMsg.setModelType(EnumMailMsgModel.MAIL_SHARING_ERROR.getCode()); + mailMsg.setTo(strings); + mailMsg.updateTenantInfo(mall); + mailMsg.setDynamicContentMap(msgReplaceMap); + mqBaseProducer.sendMessage(mailMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + logger.info("分账失败邮件通知end"); + + } + + // @Async //// @Scheduled(cron = "0 0 2 * * ?") // 每天凌晨02:00分账重试 // @Scheduled(cron = "0 10 */1 * * ?") // 测试 diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMsgValidationcodeModel.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMsgValidationcodeModel.java index 34d594f77..0e2826dea 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMsgValidationcodeModel.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMsgValidationcodeModel.java @@ -37,7 +37,7 @@ public class WxMsgValidationcodeModel extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value="发送开关 0开1关",name="open") private Integer open; - @io.swagger.annotations.ApiModelProperty(value="消息类型 0全部 1短信 2邮箱 11阿里云短信(暂未启用)",name="msgType") + @io.swagger.annotations.ApiModelProperty(value="消息类型 1短信 2邮箱",name="msgType") private Integer msgType; @io.swagger.annotations.ApiModelProperty(value="0通用1管理员2商户端3消费者",name="roleType") diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMailMsgModel.java b/mallinkService/src/main/java/com/iformall/enums/EnumMailMsgModel.java index b9afa9388..dfa37fe0c 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumMailMsgModel.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumMailMsgModel.java @@ -17,6 +17,9 @@ public enum EnumMailMsgModel { MAIL_C_APPLY_NODIFY(25, "审批通知"), MAIL_C_ASSIGNEE_NODIFY(26, "代办通知"), MAIL_C_REJECT_NODIFY(27, "驳回通知"), + + + MAIL_SHARING_ERROR(36, "分账失败通知"), ; public static EnumMailMsgModel getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMsgModel.java b/mallinkService/src/main/java/com/iformall/enums/EnumMsgModel.java index a8c1cac59..2c5a4d76d 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumMsgModel.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumMsgModel.java @@ -41,6 +41,9 @@ public enum EnumMsgModel { COUPON_ORDER_SUCCESS(32,"购买成功提醒"), COUPON_ORDER_REFUND(33,"提交退款提醒"), + + COUPON_ORDER_RESERVATION_SUCCESS(34,"预约成功提醒"), + COUPON_ORDER_SHARING_ERROR(35,"分账失败提醒"), ; public static EnumMsgModel getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantBUserMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantBUserMapper.java index ab21bcc89..b911c6a8b 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantBUserMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantBUserMapper.java @@ -25,4 +25,7 @@ public interface WxMerchantBUserMapper extends CommonMapper ids, @Param("otherId")String otherId); void deleteByMerchantId(@Param("tenantId")String tenantId, @Param("merchantId")Long merchantId); + + List findAdminPhone(@Param("merchantIds")List merchantIds); + } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantRelationMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantRelationMapper.java index 44f5004db..3fb3783de 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantRelationMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantRelationMapper.java @@ -24,5 +24,7 @@ public interface WxMerchantRelationMapper extends CommonMapper getRelationByRegionId(@Param("regionId") Long regionId); + List getRegionMerchantId(@Param("merchantId") Long merchantId); + List getInfByRegionId(@Param("id") Long id); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java index dc7de1b63..3872c8d5e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -584,10 +584,12 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { if (null != cardInfoList && cardInfoList.size() > 0 ){ for (int i = 0 ;i < cardInfoList.size();i++){ WxCardInfo ci = cardInfoList.get(i); - if (null != ci.getCouponId() && (!couponIdList.contains(ci.getCouponId()))) { - couponIdList.add(ci.getCouponId()) ; - cardCouponIdMap.put(ci.getId(),ci.getCouponId()); - } + if (null != ci.getCouponId()){ + cardCouponIdMap.put(ci.getId(),ci.getCouponId()); + if(!couponIdList.contains(ci.getCouponId())){ + couponIdList.add(ci.getCouponId()) ; + } + } cardInfoMap.put(ci.getId(), ci); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 308b9a59b..7240e71cf 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -248,6 +248,9 @@ public class WxOrderServiceImpl implements WxOrderService { @Autowired private WxCouponOrderReservationMapper wxCouponOrderReservationMapper; + + @Autowired + private WxMerchantRelationMapper wxMerchantRelationMapper; @Override @@ -1519,6 +1522,7 @@ public class WxOrderServiceImpl implements WxOrderService { record.setCreateDate(curr); record.setUpdateDate(curr); wxCouponOrderReservationMapper.insert(record); + } } }catch(Exception e){ @@ -2234,21 +2238,21 @@ public class WxOrderServiceImpl implements WxOrderService { * @param user */ public void actionAfterCouponOrderSuccess(WxOrder order, WxCoupon coupon, WxCUserBasicInfo user) { + WxCouponOrder couponOrderQ = new WxCouponOrder(); + couponOrderQ.setOrderId(order.getId()); + couponOrderQ.updateTenantInfo(order); + List couponorderlist = wxCouponOrderMapper.findList(couponOrderQ); + WxCouponOrder couponOrder = null; + if (null != couponorderlist && couponorderlist.size() > 0 ) { + couponOrder = couponorderlist.get(0); + } if(EnumCouponType.COUPON_GIFT.getCode().equals(coupon.getType())){ - WxCouponOrder couponOrderQ = new WxCouponOrder(); - couponOrderQ.setOrderId(order.getId()); - couponOrderQ.setCouponId(coupon.getId()); - couponOrderQ.updateTenantInfo(order); - List couponorderlist = wxCouponOrderMapper.findList(couponOrderQ); - if (null != couponorderlist && couponorderlist.size() > 0 ) { - WxCouponOrder couponOrder = couponorderlist.get(0); - try { - wxCouponOrderService.verify(couponOrder,null,EnumCouponVerifyType.VERIFY_AUTO,null); - } catch (Exception e) { - logger.error("系统券包核销异常:" + e.getMessage(),e); - } + try { + wxCouponOrderService.verify(couponOrder,null,EnumCouponVerifyType.VERIFY_AUTO,null); + } catch (Exception e) { + logger.error("系统券包核销异常:" + e.getMessage(),e); } } @@ -2267,18 +2271,18 @@ public class WxOrderServiceImpl implements WxOrderService { } catch (Exception e) { logger.error("订单发券:" + e.getMessage(),e); } - //通知用户 + //通知 try { - sendMsgAfterCouponOrderSuccess(order,coupon,user); + sendMsgAfterCouponOrderSuccess(order,couponOrder,coupon,user); } catch (Exception e) { - logger.error("订单成功通知用户error:" + e.getMessage(),e); + logger.error("订单成功通知error:" + e.getMessage(),e); } //同步订单 sendInsideOrderPushMsg(order,order.getComposeOrderId(),null); } - private void sendMsgAfterCouponOrderSuccess(WxOrder order,WxCoupon coupon, WxCUserBasicInfo user) { - // 发送短信 + private void sendMsgAfterCouponOrderSuccess(WxOrder order,WxCouponOrder couponOrder,WxCoupon coupon, WxCUserBasicInfo user) { + // 通知用户 if(EnumPayWay.PAY_WAY_TT.getCode().equals(order.getPayVendor())){ logger.info("订单成功短信通知start"); WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(order, EnumPayWay.PAY_WAY_TT.getPlat()); @@ -2299,6 +2303,39 @@ public class WxOrderServiceImpl implements WxOrderService { mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); logger.info("订单成功短信通知end"); } + + if(EnumCouponType.COUPON_DOUYIN_GO_HOME.getCode().equals(coupon.getType())){ + logger.info("订单预约短信通知start"); + WxCouponOrderReservation couponOrderReservation = wxCouponOrderReservationMapper.getSortByCouponOrder(couponOrder.getId(), couponOrder.getTenantId()); + if(couponOrderReservation == null || couponOrderReservation.getReservationMerchantId() == null){ + return; + } + + List merchantIds = new ArrayList(); + merchantIds.add(couponOrderReservation.getReservationMerchantId()); + List regionMerchantIds = wxMerchantRelationMapper.getRegionMerchantId(couponOrderReservation.getReservationMerchantId()); + if(!regionMerchantIds.isEmpty()){ + merchantIds.addAll(regionMerchantIds); + } + List phones = wxMerchantBUserMapper.findAdminPhone(merchantIds); + if(phones.isEmpty()){ + return; + } + String toPhone = phones.stream().collect(Collectors.joining(",")); + Map msgReplaceMap = new HashMap(); + msgReplaceMap.put("id", couponOrderReservation.getId().toString()); + + WxMsgRecord wxMsgRecord = new WxMsgRecord(); + wxMsgRecord.updateTenantInfo(order); + wxMsgRecord.setMsgType(EnumMsgRecordType.SMS.getCode()); + wxMsgRecord.setModelType(EnumMsgModel.COUPON_ORDER_RESERVATION_SUCCESS.getCode()); + wxMsgRecord.setReceiver(toPhone); + + wxMsgRecord.setDynamicContentMap(msgReplaceMap); + mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + logger.info("订单预约短信通知end"); + } + } @Override diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java index 7b5e0c3fc..0ace888d0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java @@ -250,16 +250,18 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ WxProfitSharingOrder updSharingOrder = new WxProfitSharingOrder(); updSharingOrder.updateTenantInfo(sharingOrder); updSharingOrder.setId(sharingOrder.getId()); + updSharingOrder.setUpdateTime(currentDate); if(e.getErrorCode() == ErrorCode.PROFIT_SHARING_NO_SUB_LEDGER_AMOUNT.getCode()){ updSharingOrder.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_PROCESSING.getCode()); updSharingOrder.setErrorMsg(e.getMessage()); + wxProfitSharingOrderMapper.updateById(updSharingOrder); + return new ResultData(); }else{ updSharingOrder.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_APPLY_FAILED.getCode()); updSharingOrder.setErrorMsg(e.getMessage()); + wxProfitSharingOrderMapper.updateById(updSharingOrder); + return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),e.getMessage()); } - updSharingOrder.setUpdateTime(currentDate); - wxProfitSharingOrderMapper.updateById(updSharingOrder); - return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),e.getMessage()); }catch(Exception e){ WxProfitSharingOrder updSharingOrder = new WxProfitSharingOrder(); updSharingOrder.updateTenantInfo(sharingOrder); diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendEmailServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendEmailServiceImpl.java index a19d1e21b..a4d7a1521 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendEmailServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendEmailServiceImpl.java @@ -48,26 +48,26 @@ public class SendEmailServiceImpl implements MsgSendService { TenantEntity tenantEntity = mailMsg.getTenantInfo(); //根据模板替换动态内容 - if(mailMsg.getModelId() != null){ - WxMsgValidationcodeModel msgModel = new WxMsgValidationcodeModel(); - msgModel.setType(mailMsg.getModelType()); - msgModel.setModelCode(String.valueOf(mailMsg.getModelId())); - msgModel.setOpen(EnumMsgOpen.OPEN.getCode()); - List modelList = wxMsgValidationcodeModelMapper.findList(msgModel); - if(CollectionUtils.isEmpty(modelList)){ - throw new Exception("模板id:"+mailMsg.getModelId()+"不存在"); - } - WxMsgValidationcodeModel wxMsgModel = modelList.get(0); + WxMsgValidationcodeModel msgModel = new WxMsgValidationcodeModel(); + msgModel.setType(mailMsg.getModelType()); + msgModel.setMsgType(2); +// msgModel.setModelCode(String.valueOf(mailMsg.getModelId())); + msgModel.setOpen(EnumMsgOpen.OPEN.getCode()); + List modelList = wxMsgValidationcodeModelMapper.findList(msgModel); + if(CollectionUtils.isEmpty(modelList)){ + throw new Exception("模板:不存在"); + } + WxMsgValidationcodeModel wxMsgModel = modelList.get(0); + + String msg = wxMsgModel.getContent(); + for (Map.Entry entry : mailMsg.getDynamicContentMap().entrySet()) { + msg = msg.replace("{"+entry.getKey()+"}", entry.getValue()); + } - String msg = wxMsgModel.getContent(); - for (Map.Entry entry : mailMsg.getDynamicContentMap().entrySet()) { - msg = msg.replace("{"+entry.getKey()+"}", entry.getValue()); - } - if(StringUtils.isNotBlank(wxMsgModel.getEmailBgImg())){ - msg = msg.replace("{bg}", wxMsgModel.getEmailBgImg()); - } - mailMsg.setMsg(msg); + if(StringUtils.isNotBlank(wxMsgModel.getEmailBgImg())){ + msg = msg.replace("{bg}", wxMsgModel.getEmailBgImg()); } + mailMsg.setMsg(msg); if(mailMsg.isHtml()){ //html邮件 MimeMessage message = sender.createMimeMessage(); diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmsServiceImpl.java index a936a1741..fca924460 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmsServiceImpl.java @@ -61,6 +61,7 @@ public class SendSmsServiceImpl implements MsgSendService { WxMsgValidationcodeModel wxMsgValidationcodeModel = new WxMsgValidationcodeModel(); wxMsgValidationcodeModel.setType(record.getModelType()); + wxMsgValidationcodeModel.setMsgType(1); wxMsgValidationcodeModel.setOpen(EnumMsgOpen.OPEN.getCode()); List modelList = wxMsgValidationcodeModelMapper.findList(wxMsgValidationcodeModel); if(CollectionUtils.isEmpty(modelList)){ diff --git a/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml index 6898c13cf..a382c28dd 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml @@ -194,4 +194,15 @@ delete from wx_merchant_b_user where `tenant_id` = #{tenantId} and `merchant_id` = #{merchantId} + + + diff --git a/mallinkService/src/main/resources/mapper/WxMerchantRelationMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantRelationMapper.xml index ad5e59dfc..fd51e467e 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantRelationMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantRelationMapper.xml @@ -76,9 +76,15 @@ merchant_id from wx_merchant_relation where is_del = 0 - - and region_merchant_id = #{regionId} - + and region_merchant_id = #{regionId} + + +