From 98e2112989d9a2ab734bcd429fb4945c33c64eef Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 17 十二月 2019 12:46:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java | 133 +++++++++++++++++++++++++++++++++-----------
1 files changed, 100 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 469be0f..9b15a02 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
@@ -20,7 +20,6 @@
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;
@@ -52,14 +51,17 @@
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
+import com.yeshi.fanli.exception.elme.ElmeOrderException;
import com.yeshi.fanli.exception.money.OrderMoneySettleException;
import com.yeshi.fanli.exception.money.UserMoneyDetailException;
import com.yeshi.fanli.exception.order.CommonOrderException;
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.ElmeOrderProcessService;
import com.yeshi.fanli.service.inter.elme.ElmeOrderService;
import com.yeshi.fanli.service.inter.hongbao.AccountDetailsHongBaoMapService;
import com.yeshi.fanli.service.inter.money.UserMoneyService;
@@ -77,6 +79,7 @@
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
+import com.yeshi.fanli.service.manger.HongBaoV2AddManager;
import com.yeshi.fanli.util.CMQManager;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
@@ -87,7 +90,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.MQTagConstant;
+import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
@Service
@@ -159,6 +162,9 @@
@Resource
private OrderMoneySettleService orderMoneySettleService;
+ @Resource
+ private HongBaoV2AddManager hongBaoV2AddManager;
+
/**
* 鏄惁鏄垎浜鍗�
*
@@ -198,6 +204,7 @@
Iterator<String> its = orders.keySet().iterator();
Map<String, List<TaoBaoOrder>> fanliOrderMap = new HashMap<>();
Map<String, List<TaoBaoOrder>> shareOrderMap = new HashMap<>();
+ Map<String, List<TaoBaoOrder>> elmeOrderMap = new HashMap<>();
while (its.hasNext()) {
String orderId = its.next();
@@ -205,26 +212,32 @@
List<TaoBaoOrder> list = orders.get(orderId);
String pid = String.format("mm_%s_%s_%s", configList.get(0).getAccountId(),
list.get(0).getSourceMediaId(), list.get(0).getAdPositionId());
+ if ("楗夸簡涔�".equalsIgnoreCase(list.get(0).getOrderType())) {
+ // 澶勭悊楗夸簡涔堣鍗�
+ elmeOrderMap.put(orderId, list);
+ }
- if (!StringUtil.isNullOrEmpty(list.get(0).getSpecialId())
- || pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID)) {// 璁剧疆娓犻亾ID褰撳仛浼氬憳杩愯惀ID鐨勪綅缃甀D
- fanliOrderMap.put(orderId, list);
- } else if (!StringUtil.isNullOrEmpty(list.get(0).getRelationId())) {
- shareOrderMap.put(orderId, list);
- } else {
- // 閫氳繃绾㈠寘鏌ヨ
- CommonOrder commonOrder = commonOrderService
- .selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO, list.get(0).getTradeId());
+ else {
+ if (!StringUtil.isNullOrEmpty(list.get(0).getSpecialId())
+ || pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID)) {// 璁剧疆娓犻亾ID褰撳仛浼氬憳杩愯惀ID鐨勪綅缃甀D
+ fanliOrderMap.put(orderId, list);
+ } else if (!StringUtil.isNullOrEmpty(list.get(0).getRelationId())) {
+ shareOrderMap.put(orderId, list);
+ } else {
+ // 閫氳繃绾㈠寘鏌ヨ
+ CommonOrder commonOrder = commonOrderService
+ .selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO, list.get(0).getTradeId());
- if (commonOrder != null) {
- HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
- if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null
- && hongBaoOrder.getHongBaoV2().getType() == HongBaoV2.TYPE_SHARE_GOODS) {
- shareOrderMap.put(orderId, list);
- continue;
+ if (commonOrder != null) {
+ HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
+ if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null
+ && hongBaoOrder.getHongBaoV2().getType() == HongBaoV2.TYPE_SHARE_GOODS) {
+ shareOrderMap.put(orderId, list);
+ continue;
+ }
}
+ fanliOrderMap.put(orderId, list);
}
- fanliOrderMap.put(orderId, list);
}
}
}
@@ -233,6 +246,47 @@
processShopingFanliOrder(fanliOrderMap);
// 澶勭悊鍒嗕韩璧氳鍗�
processShareGoodsOrder(shareOrderMap);
+ // 澶勭悊楗夸簡涔堣鍗�
+ processElemeOrder(elmeOrderMap);
+ }
+
+ private ElmeOrder createElmeOrder(TaoBaoOrder taoBaoOrder) {
+ ElmeOrder elmeOrder = new ElmeOrder();
+ elmeOrder.setChannelId("");
+ elmeOrder.setCreateTime(new Date());
+ elmeOrder
+ .setOrderDate(new Date(TimeUtil.convertToTimeTemp(taoBaoOrder.getCreateTime(), "yyyy-MM-dd HH:mm:ss")));
+ elmeOrder.setOrderId(taoBaoOrder.getOrderId());
+ elmeOrder.setPayMoney(taoBaoOrder.getPayment());
+ elmeOrder.setRid(taoBaoOrder.getRelationId());
+ if (taoBaoOrder.getOrderState().equalsIgnoreCase("璁㈠崟缁撶畻"))
+ elmeOrder.setIsSettle(true);
+ else
+ elmeOrder.setIsSettle(false);
+ elmeOrder.setTrackPid(
+ String.format("mm_124933865_%s_%s", taoBaoOrder.getSourceMediaId(), taoBaoOrder.getAdPositionId()));
+ if (!StringUtil.isNullOrEmpty(taoBaoOrder.getRelationId())) {
+ UserExtraTaoBaoInfo extraInfo = userExtraTaoBaoInfoService.getByRelationId(taoBaoOrder.getRelationId());
+ if (extraInfo != null)
+ elmeOrder.setUid(extraInfo.getUser().getId());
+ }
+ return elmeOrder;
+ }
+
+ private void processElemeOrder(Map<String, List<TaoBaoOrder>> orders) {
+ for (Iterator<String> its = orders.keySet().iterator(); its.hasNext();) {
+ String orderId = its.next();
+ List<TaoBaoOrder> orderList = orders.get(orderId);
+ for (TaoBaoOrder taoBaoOrder : orderList) {
+ ElmeOrder elmeOrder = createElmeOrder(taoBaoOrder);
+ try {
+ elmeOrderProcessService.processOrder(elmeOrder);
+ } catch (ElmeOrderException e) {
+ e.printStackTrace();
+ }
+
+ }
+ }
}
@Override
@@ -417,10 +471,9 @@
// 鑷喘鍒拌处浜嬪姟娑堟伅
OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_ZIGOU,
mainUser.getId(), hongBaoOrder.getCommonOrder().getSourceType(),
- hongBaoOrder.getCommonOrder().getOrderNo(), null, new Date());
+ hongBaoOrder.getCommonOrder().getOrderNo(), null, new Date(), 0);
mqMsg.setOrderFirst(first);
- Message msg = new Message(MQTopicName.TOPIC_ORDER.name(), OrderTopicTagEnum.orderFanLiActual.name(),
- new Gson().toJson(mqMsg).getBytes());
+ Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg);
String key = mainUser.getId() + "-" + UUID.randomUUID().toString();
msg.setKey(key);
try {
@@ -504,8 +557,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()) {
@@ -520,7 +575,7 @@
}
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public void fanliInvaiteAndShare(Long uid) throws TaoBaoWeiQuanException {
// 閭�璇疯禋鍒拌处
try {
@@ -528,15 +583,13 @@
} catch (OrderMoneySettleException e) {
e.printStackTrace();
}
- if (1 > 0)
- return;
try {
orderMoneySettleService.inviteSettleJD(uid);
} catch (OrderMoneySettleException e) {
e.printStackTrace();
}
-
+ //
try {
orderMoneySettleService.inviteSettlePDD(uid);
} catch (OrderMoneySettleException e) {
@@ -555,7 +608,7 @@
} catch (OrderMoneySettleException e) {
e.printStackTrace();
}
-
+ //
try {
orderMoneySettleService.shareSettlePDD(uid);
} catch (OrderMoneySettleException e) {
@@ -739,7 +792,11 @@
if (order.getValidCode() == 2)
return;
+ // 鏍规嵁ext1涓巗ubUnionId璺熷崟
String uidStr = order.getExt1();
+ if (StringUtil.isNullOrEmpty(uidStr))
+ uidStr = order.getOrderItemList().get(0).getSubUnionId();
+
Long uid = null;
if (!StringUtil.isNullOrEmpty(uidStr) && NumberUtil.isNumeric(uidStr))
uid = Long.parseLong(uidStr);
@@ -1137,6 +1194,9 @@
@Resource
private ElmeOrderService elmeOrderService;
+
+ @Resource
+ private ElmeOrderProcessService elmeOrderProcessService;
/**
* 鑾峰彇楗夸簡涔堝彲浠ヨ繑鍒╃殑绾㈠寘
*
@@ -1202,23 +1262,30 @@
@Transactional
private void addHongBaoWithMQ(List<CommonOrderAddResultDTO> commonOrderList, String orderId, Long uid,
int sourceType, int hongBaoType) {
-
final List<CommonOrder> coList = convertCommonOrder(commonOrderList);
int resultCode = 0;
try {
- resultCode = hongBaoV2Service.addHongBao(coList, hongBaoType);
+ long time = TimeUtil.convertToTimeTemp("2019-12-06", "yyyy-MM-dd");
+ if (!Constant.IS_TEST)
+ time = TimeUtil.convertToTimeTemp("2019-12-20", "yyyy-MM-dd");
+
+ if (coList.get(0).getThirdCreateTime().getTime() < time)
+ resultCode = hongBaoV2Service.addHongBao(coList, hongBaoType);
+ else
+ resultCode = hongBaoV2AddManager.addHongBao(coList, hongBaoType);
} catch (HongBaoException e) {
try {
LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + orderId);
} catch (Exception e1) {
e1.printStackTrace();
}
+ } catch (UserAccountException e) {
+
}
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());
+ isCommonOrderValid(coList), 0, new Date());
+ Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderStatistic, mqMsg);
producer.send(msg);
}
}
--
Gitblit v1.8.0