From f3bcea3e6e9c8e93123487ec2ee0b33176bd8697 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 07 十一月 2019 15:09:53 +0800 Subject: [PATCH] 订单统计/订单到账消息通知修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java | 63 +++++++++++++++++++------------ 1 files changed, 39 insertions(+), 24 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java index 0517fc3..f62536f 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java @@ -19,6 +19,7 @@ import org.yeshi.utils.NumberUtil; import com.aliyun.openservices.ons.api.Message; +import com.aliyun.openservices.ons.api.Producer; import com.aliyun.openservices.ons.api.SendResult; import com.aliyun.openservices.ons.api.transaction.LocalTransactionExecuter; import com.aliyun.openservices.ons.api.transaction.TransactionProducer; @@ -151,6 +152,9 @@ @Resource(name = "orderTransactionProducer") private TransactionProducer orderTransactionProducer; + + @Resource(name = "producer") + private Producer producer; @Resource private OrderMoneySettleService orderMoneySettleService; @@ -1196,33 +1200,44 @@ * @param sourceType * @param hongBaoType */ + @Transactional private void addHongBaoWithMQ(List<CommonOrderAddResultDTO> commonOrderList, String orderId, Long uid, int sourceType, int hongBaoType) { - // TODO 鍖哄垎娣诲姞涓庝慨鏀� + final List<CommonOrder> coList = convertCommonOrder(commonOrderList); - OrderMQMsg mqMsg = new OrderMQMsg(orderId, sourceType, uid); - Message msg = new Message(MQTopicName.TOPIC_ORDER.name(), OrderTopicTagEnum.orderStatistic.name(), - new Gson().toJson(mqMsg).getBytes()); - SendResult result = orderTransactionProducer.send(msg, new LocalTransactionExecuter() { - @Override - public TransactionStatus execute(Message arg0, Object arg1) { - int resultCode = 0; - try { - resultCode = hongBaoV2Service.addHongBao(coList, hongBaoType); - } catch (HongBaoException e) { - try { - LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + orderId); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - return TransactionStatus.CommitTransaction; - // if (resultCode != 0) - // return TransactionStatus.CommitTransaction; - // else - // return TransactionStatus.RollbackTransaction; + int resultCode = 0; + try { + resultCode = hongBaoV2Service.addHongBao(coList, hongBaoType); + } catch (HongBaoException e) { + try { + LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + orderId); + } catch (Exception e1) { + e1.printStackTrace(); } - }, null); - System.out.println(result); + } + if (resultCode == 1) {// 鍙彂閫佹柊澧炴秷鎭� + OrderMQMsg mqMsg = new OrderMQMsg(orderId, sourceType, uid, OrderMQMsg.HANDLE_TYPE_ADD, + isCommonOrderValid(coList)); + Message msg = new Message(MQTopicName.TOPIC_ORDER.name(), OrderTopicTagEnum.orderStatistic.name(), + new Gson().toJson(mqMsg).getBytes()); + producer.send(msg); + } } + + /** + * 璁㈠崟鏄惁鏈夋晥 + * + * @param coList + * @return + */ + private boolean isCommonOrderValid(List<CommonOrder> coList) { + for (CommonOrder commonOrder : coList) { + if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_FK + || commonOrder.getState() == CommonOrder.STATE_WQ) { + return true; + } + } + return false; + } + } -- Gitblit v1.8.0