6 changed files with 102 additions and 23 deletions
Unified View
Diff Options
-
24dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/OrderUserQueryController.java
-
69dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/dingtalk/DingTalkWarningEventHandler.java
-
1dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/operationlog/OperationLogEventHandler.java
-
1dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/utils/DingTalkWarningUtil.java
-
7dating-agency-mall-server/src/main/java/com/qniao/dam/query/externalorder/ExternalOrderRelQueryService.java
-
23dating-agency-mall-server/src/main/java/com/qniao/dam/query/externalorder/impl/ExternalOrderRelQueryServiceImpl.java
@ -0,0 +1,69 @@ |
|||||
|
package com.qniao.dam.application.handler.dingtalk; |
||||
|
|
||||
|
import com.google.common.eventbus.Subscribe; |
||||
|
import com.qniao.dam.domain.aggregate.activity.entity.Activity; |
||||
|
import com.qniao.dam.domain.aggregate.externalorder.entity.ExternalOrderRel; |
||||
|
import com.qniao.dam.domain.aggregate.order.entity.Order; |
||||
|
import com.qniao.dam.domain.aggregate.order.entity.OrderItem; |
||||
|
import com.qniao.dam.domain.aggregate.order.repository.OrderRepository; |
||||
|
import com.qniao.dam.domian.aggregate.order.event.OrderCompletedEvent; |
||||
|
import com.qniao.dam.infrastructure.persistent.dao.activity.ActivityDao; |
||||
|
import com.qniao.dam.infrastructure.utils.DingTalkWarningUtil; |
||||
|
import com.qniao.dam.query.externalorder.ExternalOrderRelQueryService; |
||||
|
import com.qniao.domain.BaseApplicationService; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.beans.factory.annotation.Value; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
import java.util.HashMap; |
||||
|
import java.util.Objects; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
|
@Component |
||||
|
@Slf4j |
||||
|
public class DingTalkWarningEventHandler extends BaseApplicationService { |
||||
|
|
||||
|
@Value("${payment-order-paid-dingTalk-token}") |
||||
|
private String paymentOrderPaidToken; |
||||
|
@Resource |
||||
|
private DingTalkWarningUtil dingTalkWarningUtil; |
||||
|
@Resource |
||||
|
private OrderRepository orderRepository; |
||||
|
@Resource |
||||
|
private ExternalOrderRelQueryService externalOrderRelQueryService; |
||||
|
@Resource |
||||
|
private ActivityDao activityDao; |
||||
|
|
||||
|
/** |
||||
|
* 订单已完成事件 |
||||
|
*/ |
||||
|
@Subscribe |
||||
|
public void handle(OrderCompletedEvent event) { |
||||
|
try { |
||||
|
Order order = orderRepository.load(event.getId()); |
||||
|
StringBuilder builder = new StringBuilder(); |
||||
|
builder.append("<br> 订单已支付 <br>"); |
||||
|
builder.append("订单号:" + order.getOrderCode() + "<br>"); |
||||
|
builder.append("客户类型:" + order.getOrderBelonging().getDesc() + "<br>"); |
||||
|
builder.append("客户名称:" + order.getOrderBelongName() + "<br>"); |
||||
|
builder.append("订单金额:" + order.getSettlementAmount() + "<br>"); |
||||
|
builder.append("产品名称:" + order.getOrderItemList().stream().map(OrderItem::getProductTitle).collect(Collectors.joining("、")) + "<br>"); |
||||
|
ExternalOrderRel externalOrderRel = externalOrderRelQueryService.queryByOrderId(order.getId()); |
||||
|
if (Objects.nonNull(externalOrderRel)) { |
||||
|
Activity activity = activityDao.selectById(externalOrderRel.getExternalId()); |
||||
|
if (Objects.nonNull(activity)) { |
||||
|
builder.append("关联活动:" + activity.getActivityName()); |
||||
|
} |
||||
|
} |
||||
|
HashMap<String, String> body = new HashMap<>(); |
||||
|
body.put("Msgtype", "markdown"); |
||||
|
body.put("toastType", "提醒"); |
||||
|
body.put("content", builder.toString()); |
||||
|
body.put("contextSize", "2000"); |
||||
|
dingTalkWarningUtil.send(paymentOrderPaidToken, body); |
||||
|
} catch (Exception e) { |
||||
|
log.error("订单已完成事件处理异常:", e); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,7 @@ |
|||||
|
package com.qniao.dam.query.externalorder; |
||||
|
|
||||
|
import com.qniao.dam.domain.aggregate.externalorder.entity.ExternalOrderRel; |
||||
|
|
||||
|
public interface ExternalOrderRelQueryService { |
||||
|
ExternalOrderRel queryByOrderId(Long orderId); |
||||
|
} |
||||
@ -0,0 +1,23 @@ |
|||||
|
package com.qniao.dam.query.externalorder.impl; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.qniao.dam.domain.aggregate.externalorder.entity.ExternalOrderRel; |
||||
|
import com.qniao.dam.infrastructure.persistent.dao.domain.ExternalOrderRelDao; |
||||
|
import com.qniao.dam.query.externalorder.ExternalOrderRelQueryService; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
|
||||
|
@Service |
||||
|
public class ExternalOrderRelQueryServiceImpl implements ExternalOrderRelQueryService { |
||||
|
|
||||
|
@Resource |
||||
|
private ExternalOrderRelDao externalOrderRelDao; |
||||
|
|
||||
|
@Override |
||||
|
public ExternalOrderRel queryByOrderId(Long orderId) { |
||||
|
return externalOrderRelDao.selectOne(new LambdaQueryWrapper<ExternalOrderRel>() |
||||
|
.eq(ExternalOrderRel::getOrderId, orderId) |
||||
|
.last("limit 1")); |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save