From e97065519838a1ebbee870eefae6eae9f5d91647 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 26 十一月 2019 14:10:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java | 108 +++++++++++++++++++++++++++++++++++++----------------
1 files changed, 75 insertions(+), 33 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 887ecca..5762720 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,8 @@
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;
import com.aliyun.openservices.ons.api.transaction.TransactionStatus;
@@ -29,9 +31,10 @@
import com.yeshi.fanli.dao.mybatis.order.HongBaoOrderMapper;
import com.yeshi.fanli.dao.mybatis.order.OrderMapper;
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper;
+import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
+import com.yeshi.fanli.dto.mq.order.body.OrderMQMsg;
+import com.yeshi.fanli.dto.mq.order.body.OrderMoneyRecievedMQMsg;
import com.yeshi.fanli.dto.order.CommonOrderAddResultDTO;
-import com.yeshi.fanli.dto.order.OrderMQMsgDTO;
-import com.yeshi.fanli.dto.order.OrderMoneyRecievedMQMsgDTO;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.bus.user.Order;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
@@ -55,6 +58,7 @@
import com.yeshi.fanli.exception.order.HongBaoException;
import com.yeshi.fanli.exception.order.OrderItemException;
import com.yeshi.fanli.exception.order.TaoBaoWeiQuanException;
+import com.yeshi.fanli.exception.user.UserAccountException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.elme.ElmeHongBaoOrderMapService;
import com.yeshi.fanli.service.inter.elme.ElmeOrderService;
@@ -84,6 +88,7 @@
import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
+import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
import com.yeshi.fanli.util.rocketmq.MQTagConstant;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
@@ -149,6 +154,9 @@
@Resource(name = "orderTransactionProducer")
private TransactionProducer orderTransactionProducer;
+
+ @Resource(name = "producer")
+ private Producer producer;
@Resource
private OrderMoneySettleService orderMoneySettleService;
@@ -390,11 +398,30 @@
return;
}
+ // 鏌ヨ璇ヨ鍗曚箣鍓嶆槸鍚︽湁鍒拌处
+ List<HongBaoOrder> list = hongBaoOrderMapper.listByOrderIdAndSourceType(
+ hongBaoOrder.getCommonOrder().getOrderNo(), hongBaoOrder.getCommonOrder().getSourceType());
+ List<Long> hongBaoIdList = new ArrayList<>();
+ if (list != null) {
+ for (HongBaoOrder ho : list) {
+ hongBaoIdList.add(ho.getHongBaoV2().getId());
+ }
+ }
+
+ List<HongBaoV2> allHongBaoList = hongBaoV2Mapper.listByIds(hongBaoIdList);
+ boolean first = true;
+ for (HongBaoV2 v2 : allHongBaoList)
+ if (v2.getState() == HongBaoV2.STATE_YILINGQU) {
+ first = false;
+ break;
+ }
+
// 鑷喘鍒拌处浜嬪姟娑堟伅
- OrderMoneyRecievedMQMsgDTO mqMsg = new OrderMoneyRecievedMQMsgDTO(OrderMoneyRecievedMQMsgDTO.TYPE_ZIGOU,
+ OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_ZIGOU,
mainUser.getId(), hongBaoOrder.getCommonOrder().getSourceType(),
- hongBaoOrder.getCommonOrder().getOrderNo(), null, new Date());
- Message msg = new Message(MQTopicName.TOPIC_FANLI.name(), "actual", new Gson().toJson(mqMsg).getBytes());
+ hongBaoOrder.getCommonOrder().getOrderNo(), null, new Date(), 0);
+ mqMsg.setOrderFirst(first);
+ Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg);
String key = mainUser.getId() + "-" + UUID.randomUUID().toString();
msg.setKey(key);
try {
@@ -478,8 +505,10 @@
List<Long> inviteAndShareUids = hongBaoV2Mapper.listUidCanBanlanceShareAndInvite(1000);
Set<Long> uidSets = new HashSet<>();
if (inviteAndShareUids != null)
- for (Long uid : inviteAndShareUids)
- uidSets.add(uid);
+ for (Long uid : inviteAndShareUids) {
+ if (userInfoMapper.selectAvailableByPrimaryKey(uid) != null)
+ uidSets.add(uid);
+ }
// 鏍规嵁鐢ㄦ埛ID
Iterator<Long> its = uidSets.iterator();
while (its.hasNext()) {
@@ -502,13 +531,13 @@
} catch (OrderMoneySettleException e) {
e.printStackTrace();
}
-
+ //
try {
orderMoneySettleService.inviteSettleJD(uid);
} catch (OrderMoneySettleException e) {
e.printStackTrace();
}
-
+ //
try {
orderMoneySettleService.inviteSettlePDD(uid);
} catch (OrderMoneySettleException e) {
@@ -527,7 +556,7 @@
} catch (OrderMoneySettleException e) {
e.printStackTrace();
}
-
+ //
try {
orderMoneySettleService.shareSettlePDD(uid);
} catch (OrderMoneySettleException e) {
@@ -707,7 +736,6 @@
public void processJDOrder(JDOrder order) {
if (order == null || order.getOrderItemList() == null || order.getOrderItemList().size() == 0)
return;
-
// 鎷嗗崟鐨勪笉鍋氬鐞�
if (order.getValidCode() == 2)
return;
@@ -1172,31 +1200,45 @@
* @param sourceType
* @param hongBaoType
*/
+ @Transactional
private void addHongBaoWithMQ(List<CommonOrderAddResultDTO> commonOrderList, String orderId, Long uid,
int sourceType, int hongBaoType) {
+
final List<CommonOrder> coList = convertCommonOrder(commonOrderList);
- OrderMQMsgDTO mqMsg = new OrderMQMsgDTO(orderId, sourceType, uid);
- Message msg = new Message(MQTopicName.TOPIC_ORDER.name(),
- String.format(MQTagConstant.TAG_ORDER_STATISTIC_PREFIX + "%s-%s", sourceType, hongBaoType),
- new Gson().toJson(mqMsg).getBytes());
- 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();
- }
- }
- 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);
+ } catch (UserAccountException e) {
+
+ }
+ if (resultCode == 1) {// 鍙彂閫佹柊澧炴秷鎭�
+ OrderMQMsg mqMsg = new OrderMQMsg(orderId, sourceType, uid, OrderMQMsg.HANDLE_TYPE_ADD,
+ isCommonOrderValid(coList), 0, new Date());
+ Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderStatistic, mqMsg);
+ 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