6 changed files with 102 additions and 23 deletions
Split 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