feat(wechat): 抽象通知发送器并完善自定义下单相关接口测试
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
package com.starry.admin.modules.weichat.service;
|
||||
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserReviewInfoEntity;
|
||||
import com.starry.admin.modules.order.module.entity.PlayOrderComplaintInfoEntity;
|
||||
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
|
||||
import javax.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.annotation.Profile;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
@Profile("!apitest")
|
||||
public class DefaultNotificationSender implements NotificationSender {
|
||||
|
||||
@Resource
|
||||
private WxCustomMpService wxCustomMpService;
|
||||
|
||||
@Override
|
||||
public void sendOrderMessageAsync(PlayOrderInfoEntity orderInfo) {
|
||||
wxCustomMpService.sendOrderMessageAsync(orderInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendOrderFinishMessageAsync(PlayOrderInfoEntity order) {
|
||||
wxCustomMpService.sendOrderFinishMessageAsync(order);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendOrderCancelMessageAsync(PlayOrderInfoEntity orderInfo, String refundReason) {
|
||||
wxCustomMpService.sendOrderCancelMessageAsync(orderInfo, refundReason);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendComplaintMessage(PlayOrderComplaintInfoEntity info, PlayOrderInfoEntity orderInfo) {
|
||||
wxCustomMpService.sendComplaintMessage(info, orderInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendCheckMessage(PlayClerkUserReviewInfoEntity entity, PlayClerkUserInfoEntity userInfo,
|
||||
String reviewState) {
|
||||
wxCustomMpService.sendCheckMessage(entity, userInfo, reviewState);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.starry.admin.modules.weichat.service;
|
||||
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserReviewInfoEntity;
|
||||
import com.starry.admin.modules.order.module.entity.PlayOrderComplaintInfoEntity;
|
||||
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.context.annotation.Profile;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Slf4j
|
||||
@Primary
|
||||
@Component
|
||||
@Profile("apitest")
|
||||
public class MockNotificationSender implements NotificationSender {
|
||||
|
||||
@Override
|
||||
public void sendOrderMessageAsync(PlayOrderInfoEntity orderInfo) {
|
||||
log.debug("[wechat-mock] skip sendOrderMessageAsync orderId={}", orderInfo.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendOrderFinishMessageAsync(PlayOrderInfoEntity order) {
|
||||
log.debug("[wechat-mock] skip sendOrderFinishMessageAsync orderId={}", order.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendOrderCancelMessageAsync(PlayOrderInfoEntity orderInfo, String refundReason) {
|
||||
log.debug("[wechat-mock] skip sendOrderCancelMessageAsync orderId={}", orderInfo.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendComplaintMessage(PlayOrderComplaintInfoEntity info, PlayOrderInfoEntity orderInfo) {
|
||||
log.debug("[wechat-mock] skip sendComplaintMessage orderId={}", orderInfo.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendCheckMessage(PlayClerkUserReviewInfoEntity entity, PlayClerkUserInfoEntity userInfo,
|
||||
String reviewState) {
|
||||
log.debug("[wechat-mock] skip sendCheckMessage clerkId={}", userInfo == null ? null : userInfo.getId());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.starry.admin.modules.weichat.service;
|
||||
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserReviewInfoEntity;
|
||||
import com.starry.admin.modules.order.module.entity.PlayOrderComplaintInfoEntity;
|
||||
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
|
||||
|
||||
/**
|
||||
* 抽象出发送微信通知的接口,便于在测试环境下替换为 Mock 实现。
|
||||
*/
|
||||
public interface NotificationSender {
|
||||
|
||||
void sendOrderMessageAsync(PlayOrderInfoEntity orderInfo);
|
||||
|
||||
void sendOrderFinishMessageAsync(PlayOrderInfoEntity order);
|
||||
|
||||
void sendOrderCancelMessageAsync(PlayOrderInfoEntity orderInfo, String refundReason);
|
||||
|
||||
void sendComplaintMessage(PlayOrderComplaintInfoEntity info, PlayOrderInfoEntity orderInfo);
|
||||
|
||||
void sendCheckMessage(PlayClerkUserReviewInfoEntity entity, PlayClerkUserInfoEntity userInfo, String reviewState);
|
||||
}
|
||||
@@ -37,6 +37,7 @@ import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
|
||||
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
|
||||
import me.chanjar.weixin.mp.config.impl.WxMpMapConfigImpl;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -61,6 +62,7 @@ public class WxCustomMpService {
|
||||
@Resource
|
||||
private ThreadPoolTaskExecutor executor;
|
||||
|
||||
|
||||
/**
|
||||
* 支付成功回调地址
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user