From dcfd801ea435c1c87ed47f2ee24cdabaaf230d6f Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 31 三月 2020 12:15:56 +0800
Subject: [PATCH] 大淘客商品过滤修改
---
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java | 214 +++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 165 insertions(+), 49 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 77dce3c..926553a 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
@@ -51,6 +51,7 @@
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;
@@ -59,7 +60,9 @@
import com.yeshi.fanli.exception.order.TaoBaoWeiQuanException;
import com.yeshi.fanli.exception.user.UserAccountException;
import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.log.OrderLogHelper;
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;
@@ -70,6 +73,7 @@
import com.yeshi.fanli.service.inter.order.LostOrderService;
import com.yeshi.fanli.service.inter.order.OrderMoneySettleService;
import com.yeshi.fanli.service.inter.order.OrderProcessService;
+import com.yeshi.fanli.service.inter.order.OrderTeamRewardService;
import com.yeshi.fanli.service.inter.order.jd.JDOrderService;
import com.yeshi.fanli.service.inter.order.pdd.PDDOrderService;
import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService;
@@ -77,7 +81,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.service.manger.order.HongBaoV2AddManager;
import com.yeshi.fanli.util.CMQManager;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
@@ -163,6 +167,9 @@
@Resource
private HongBaoV2AddManager hongBaoV2AddManager;
+ @Resource
+ private OrderTeamRewardService orderTeamRewardService;
+
/**
* 鏄惁鏄垎浜鍗�
*
@@ -202,6 +209,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();
@@ -209,26 +217,37 @@
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 (!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);
+ if ("楗夸簡涔�".equalsIgnoreCase(list.get(0).getOrderType())) {
+ // 澶勭悊楗夸簡涔堣鍗�
+ elmeOrderMap.put(orderId, list);
+ // TODO 澶勭悊楗夸簡涔堣鍗�
+ // if(list.get(0).getCreateTime()){
+ // //涓嬪崟鏃堕棿澶т簬涓�涓畾鍊煎氨杩涘叆娣樺疂璁㈠崟
+ // //鑾峰彇relationId
+ //
+ //
+ // }
} else {
- // 閫氳繃绾㈠寘鏌ヨ
- CommonOrder commonOrder = commonOrderService
- .selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO, list.get(0).getTradeId());
+ 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);
}
}
}
@@ -237,6 +256,54 @@
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);
+
+ if (!taoBaoOrder.getOrderState().equalsIgnoreCase("璁㈠崟澶辨晥"))
+ elmeOrder.setState(1);
+ else {
+ elmeOrder.setState(0);
+ elmeOrder.setPayMoney(new BigDecimal(0));
+ }
+ 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
@@ -360,7 +427,7 @@
private HongBaoOrderMapper hongBaoOrderMapper;
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public void fanli(HongBaoV2 hb1) throws TaoBaoWeiQuanException {
// 鏌ヨ鏈�鏂扮殑绾㈠寘鏁版嵁
hb1 = hongBaoV2Mapper.selectByPrimaryKeyForUpdate(hb1.getId());
@@ -427,18 +494,27 @@
String key = mainUser.getId() + "-" + UUID.randomUUID().toString();
msg.setKey(key);
try {
- orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
- @Override
- public TransactionStatus execute(Message arg0, Object arg1) {
- try {
- orderMoneySettleService.ziGouSettle(hongBaoOrder.getCommonOrder().getOrderNo(),
- hongBaoOrder.getCommonOrder().getSourceType(), key);
- return TransactionStatus.CommitTransaction;
- } catch (Exception e) {
- return TransactionStatus.RollbackTransaction;
+ if (!Constant.IS_TEST)
+ orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
+ @Override
+ public TransactionStatus execute(Message arg0, Object arg1) {
+ try {
+ orderMoneySettleService.ziGouSettle(hongBaoOrder.getCommonOrder().getOrderNo(),
+ hongBaoOrder.getCommonOrder().getSourceType(), key);
+ return TransactionStatus.CommitTransaction;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return TransactionStatus.RollbackTransaction;
+ }
}
+ }, null);
+ else {
+ try {
+ orderMoneySettleService.ziGouSettle(hongBaoOrder.getCommonOrder().getOrderNo(),
+ hongBaoOrder.getCommonOrder().getSourceType(), key);
+ } catch (Exception e) {
}
- }, null);
+ }
} catch (Exception e) {
LogHelper.mqError(e.getMessage(), msg.getTopic(), msg.getTag(), new Gson().toJson(mqMsg));
}
@@ -467,13 +543,8 @@
if (orderList != null && orderList.size() > 0 & !StringUtil.isNullOrEmpty(orderList.get(0).getSettlementTime()))
order.setJieSuanTime(
new Date(TimeUtil.convertToTimeTemp(orderList.get(0).getSettlementTime(), "yyyy-MM-dd HH:mm:ss")));
- // if (order.getJieSuanTime().getTime() >=
- // TimeUtil.convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) {
- // return;
- // }
- // TODO 澶勭悊缁存潈鎴愬姛浣嗘槸宸插埌璐︾殑璁㈠崟
-
+ // 澶勭悊缁存潈鎴愬姛浣嗘槸宸插埌璐︾殑璁㈠崟
if (order.getJieSuanTime().getTime() > TimeUtil.convertToTimeTemp("2019-01-01", "yyyy-MM-dd")) {// 缁撶畻鏃堕棿鍦�2鏈�1鍙风殑寮�濮嬪鐞嗗凡鍒拌处浣嗘槸缁存潈鐨�
CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
order.getOrderItemId());
@@ -484,15 +555,34 @@
TaoBaoWeiQuanDrawBack drawBack = taoBaoWeiQuanDrawBackService
.selectByOrderItemId(order.getOrderItemId());
if (drawBack == null) {// 杩樻湭鎵f
+ OrderLogHelper.taoBaoWeiQuan("宸插埌璐︽湭鎵f澶勭悊:瀛愯鍗曞彿:" + order.getOrderItemId());
try {
- taoBaoWeiQuanDrawBackService.doWeiQuanFanli(order.getOrderId());
+ taoBaoWeiQuanDrawBackService.doWeiQuanFanli(order.getOrderId(), true);
taoBaoWeiQuanDrawBackService.doWeiQuanShare(order.getOrderId());
taoBaoWeiQuanDrawBackService.doWeiQuanInvite(order.getOrderId());
} catch (TaoBaoWeiQuanException e) {
try {
- LogHelper.errorDetailInfo(e, null, "璁㈠崟鍙�:" + order.getOrderId());
+ LogHelper.errorDetailInfo(e, "鍒拌处鍚庡鐞嗙淮鏉冩墸娆惧嚭閿�", "璁㈠崟鍙�:" + order.getOrderId());
} catch (Exception e1) {
e1.printStackTrace();
+ }
+ }
+ } else {
+ // 鏌ヨ瀛愮孩鍖呮槸鍚﹀凡鍒拌处
+ List<HongBaoV2> children = hongBaoV2Service
+ .listChildrenById(hongBaoOrder.getHongBaoV2().getId());
+ for (HongBaoV2 hongBaoV2 : children) {
+ if (hongBaoV2.getState() == HongBaoV2.STATE_YILINGQU) {
+ try {
+ taoBaoWeiQuanDrawBackService.doWeiQuanInvite(order.getOrderId());
+ } catch (TaoBaoWeiQuanException e) {
+ try {
+ LogHelper.errorDetailInfo(e, "鍒拌处鍚庡鐞嗙淮鏉冩墸娆惧嚭閿�", "璁㈠崟鍙�:" + order.getOrderId());
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ }
+ break;
}
}
}
@@ -525,7 +615,7 @@
}
@Override
- @Transactional(rollbackFor=Exception.class)
+ @Transactional(rollbackFor = Exception.class)
public void fanliInvaiteAndShare(Long uid) throws TaoBaoWeiQuanException {
// 閭�璇疯禋鍒拌处
try {
@@ -533,9 +623,7 @@
} catch (OrderMoneySettleException e) {
e.printStackTrace();
}
- if(1>0)
- return;
- //
+
try {
orderMoneySettleService.inviteSettleJD(uid);
} catch (OrderMoneySettleException e) {
@@ -660,7 +748,8 @@
order.setOrderType(Constant.SOURCE_TYPE_TAOBAO);
order.setUserInfo(new UserInfo(uid));
try {
- PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
+ if (!Constant.IS_TEST)
+ PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
} catch (Exception e) {
}
}
@@ -1146,6 +1235,9 @@
@Resource
private ElmeOrderService elmeOrderService;
+ @Resource
+ private ElmeOrderProcessService elmeOrderProcessService;
+
/**
* 鑾峰彇楗夸簡涔堝彲浠ヨ繑鍒╃殑绾㈠寘
*
@@ -1211,13 +1303,12 @@
@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 {
long time = TimeUtil.convertToTimeTemp("2019-12-06", "yyyy-MM-dd");
if (!Constant.IS_TEST)
- time = TimeUtil.convertToTimeTemp("2020-01-01", "yyyy-MM-dd");
+ time = TimeUtil.convertToTimeTemp("2019-12-20", "yyyy-MM-dd");
if (coList.get(0).getThirdCreateTime().getTime() < time)
resultCode = hongBaoV2Service.addHongBao(coList, hongBaoType);
@@ -1232,12 +1323,13 @@
} 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);
- }
+ if (!Constant.IS_TEST)
+ 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);
+ }
}
/**
@@ -1256,4 +1348,28 @@
return false;
}
+ @Override
+ public void fanliOrderTeamReward() {
+ Date time = new Date();
+ long count = orderTeamRewardService.countCanSettleUid(time);
+ int pageSize = 500;
+ int page = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
+ List<Long> uidList = new ArrayList<>();
+ for (int i = 0; i < page; i++) {
+ List<Long> list = orderTeamRewardService.listCanSettleUid(time, i + 1, pageSize);
+ if (list != null && list.size() > 0)
+ uidList.addAll(list);
+ }
+ // 娣诲姞鍒伴槦鍒�
+ if (uidList != null)
+ for (Long uid : uidList)
+ if (!Constant.IS_TEST)
+ CMQManager.getInstance().addFanLiOrderTeamRewardMsg(uid);
+ }
+
+ @Override
+ public void fanliOrderTeamReward(Long uid) throws OrderMoneySettleException {
+ orderMoneySettleService.orderTeamRewardSettle(uid);
+ }
+
}
--
Gitblit v1.8.0