From 70e22f5f9c51a24452a877489a49c2d800b399eb Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 30 六月 2020 18:12:18 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java | 139 +++++++++++++++++++++++++++++++++-------------
1 files changed, 99 insertions(+), 40 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java
index dba80bb..ffef0f8 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java
@@ -53,11 +53,10 @@
import com.yeshi.fanli.service.inter.order.OrderMoneySettleService;
import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
import com.yeshi.fanli.service.manger.order.TeamRewardManager;
-import com.yeshi.fanli.service.manger.order.TeamSubsidyManager;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.TimeUtil;
-import com.yeshi.fanli.util.cmq.HongBaoRecieveCMQManager;
import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
+import com.yeshi.fanli.util.mq.cmq.HongBaoRecieveCMQManager;
import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
@@ -108,9 +107,6 @@
@Resource
private TeamRewardManager teamRewardManager;
- @Resource
- private TeamSubsidyManager teamSubsidyManager;
-
// 涓嬬骇琚皝绂侊紝绾㈠寘澶辨晥
private void invalidHongBaoForbidden(Long id) {
HongBaoV2 updateHongBaoV2 = new HongBaoV2(id);
@@ -159,6 +155,9 @@
}
}
}
+
+ if(hongBaoList.size()==0)
+ return;
String taskKey = getTaskKey(uid);
@@ -228,6 +227,9 @@
}
}
}
+
+ if(hongBaoList.size()==0)
+ return;
// 閭�璇疯禋鍒拌处浜嬪姟娑堟伅
@@ -294,6 +296,9 @@
}
}
}
+
+ if(hongBaoList.size()==0)
+ return;
// 閭�璇疯禋鍒拌处浜嬪姟娑堟伅
String taskKey = getTaskKey(uid);
@@ -321,7 +326,74 @@
@Transactional(rollbackFor = Exception.class)
@Override
- public void shareSettleTB(Long uid,Date maxPregetTime) throws OrderMoneySettleException {
+ public void inviteSettleVipShop(Long uid, Date maxPregetTime) throws OrderMoneySettleException {
+ // 鏌ヨUID鐨勪竴浜岀骇閭�璇疯禋
+ int sourceType = Constant.SOURCE_TYPE_VIP;
+ List<Integer> types = new ArrayList<>();
+ types.add(HongBaoV2.TYPE_YIJI);
+ types.add(HongBaoV2.TYPE_ERJI);
+ types.add(HongBaoV2.TYPE_SHARE_YIJI);
+ types.add(HongBaoV2.TYPE_SHARE_ERJI);
+ long count = hongBaoV2Mapper.countCanBalanceHongBaoByTypeAndUid(types, uid, sourceType, maxPregetTime);
+ List<HongBaoV2> hongBaoList = new ArrayList<>();
+ // 1000鏉℃暟鎹负1椤�
+ int page = (int) (count % 1000 == 0 ? count / 1000 : count / 1000 + 1);
+ for (int i = 0; i < page; i++) {
+ List<HongBaoV2> tempHongBaoList = hongBaoV2Mapper.listCanBalanceHongBaoByTypeAndUid(types, uid, sourceType,
+ maxPregetTime, i * 1000, 1000);
+ if (tempHongBaoList != null && tempHongBaoList.size() > 0)
+ hongBaoList.addAll(tempHongBaoList);
+ }
+
+ for (int i = 0; i < hongBaoList.size(); i++) {
+ HongBaoV2 item = hongBaoList.get(i);
+ if (item != null && item.getParent() != null) {
+ if (item != null) {
+ HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByHongBaoId(item.getParent().getId());
+ if (hongBaoOrder != null && hongBaoOrder.getCommonOrder() != null) {
+ CommonOrder co = hongBaoOrder.getCommonOrder();
+ // 涓婄骇鐢ㄦ埛涓嶆槸姝e父鐢ㄦ埛锛岃鍗曞潎涓嶈兘鍒拌处
+ UserInfo userInfo = userInfoMapper.selectAvailableByPrimaryKey(co.getUserInfo().getId());
+ if (userInfo == null || userInfo.getState() != UserInfo.STATE_NORMAL) {
+ invalidHongBaoForbidden(item.getId());
+ hongBaoList.remove(i);
+ i--;
+ }
+ }
+ }
+ }
+ }
+
+ if(hongBaoList.size()==0)
+ return;
+
+ // 閭�璇疯禋鍒拌处浜嬪姟娑堟伅
+ String taskKey = getTaskKey(uid);
+ TeamRewardPreRecieveMQMsg mqMsg = new TeamRewardPreRecieveMQMsg(taskKey, uid, sourceType, maxPregetTime,
+ new Date());
+ Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.teamRewardPreRecieved, mqMsg);
+ msg.setKey(taskKey);
+ // 娣诲姞浜嬪姟娑堟伅
+ try {
+ orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
+ @Override
+ public TransactionStatus execute(Message arg0, Object arg1) {
+ try {
+ fanliInvite(hongBaoList, uid, sourceType, taskKey, maxPregetTime);
+ } catch (Exception e) {
+ return TransactionStatus.RollbackTransaction;
+ }
+ return TransactionStatus.CommitTransaction;
+ }
+ }, null);
+ } catch (Exception e) {
+ LogHelper.mqError(e.getMessage(), msg.getTopic(), msg.getTag(), new Gson().toJson(mqMsg));
+ }
+ }
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public void shareSettleTB(Long uid, Date maxPregetTime) throws OrderMoneySettleException {
/**
* 澶勭悊鍒嗕韩璧�
*/
@@ -367,7 +439,7 @@
@Transactional(rollbackFor = Exception.class)
@Override
- public void shareSettleJD(Long uid,Date maxPregetTime) throws OrderMoneySettleException {
+ public void shareSettleJD(Long uid, Date maxPregetTime) throws OrderMoneySettleException {
/**
* 澶勭悊鍒嗕韩璧�
*/
@@ -408,11 +480,20 @@
@Transactional(rollbackFor = Exception.class)
@Override
- public void shareSettlePDD(Long uid,Date maxPregetTime) throws OrderMoneySettleException {
+ public void shareSettlePDD(Long uid, Date maxPregetTime) throws OrderMoneySettleException {
+ shareSettleVipShop(Constant.SOURCE_TYPE_PDD, uid, maxPregetTime);
+ }
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public void shareSettleVipShop(Long uid, Date maxPregetTime) throws OrderMoneySettleException {
+ shareSettleVipShop(Constant.SOURCE_TYPE_VIP, uid, maxPregetTime);
+ }
+
+ private void shareSettleVipShop(int sourceType, Long uid, Date maxPregetTime) throws OrderMoneySettleException {
/**
* 澶勭悊鍒嗕韩璧�
*/
- int sourceType = Constant.SOURCE_TYPE_PDD;
List<Integer> types = new ArrayList<>();
// 鏌ヨUID鐨勫垎浜禋璁㈠崟
@@ -561,7 +642,7 @@
}
// 閫氱煡鍏嶅崟鍒拌处
try {
- userSystemCouponService.updateStateByArrivalAccount(orderId);
+ userSystemCouponService.updateStateByArrivalAccount(orderId,sourceType);
} catch (Exception e) {
e.printStackTrace();
}
@@ -665,7 +746,6 @@
List<Long> hbIdList = new ArrayList<>();
Set<String> drawBackOrders = new HashSet<String>();
List<Long> recieveHongBaoIds = new ArrayList<>();
- int shareGoodsCount = 0;
Set<String> shareOrders = new HashSet<>();
for (HongBaoV2 hongBao : hongBaoList) {
@@ -689,7 +769,6 @@
HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByHongBaoId(hongBao.getId());
if (hongBaoOrder != null) {
balanceTime = hongBaoOrder.getCommonOrder().getSettleTime();
- shareGoodsCount += hongBaoOrder.getCommonOrder().getCount();
}
shareOrders.add(hongBaoOrder.getCommonOrder().getOrderNo());
if (balanceTime != null
@@ -724,9 +803,8 @@
}
// 鏂扮増閫氱煡
- userMoneyMsgNotificationService.shareOrderReceived(uid, Constant.SOURCE_TYPE_TAOBAO, shareOrders.size(),
- shareGoodsCount, sharemoney, userInfoMapper.selectAvailableByPrimaryKey(uid).getMyHongBao(), null,
- null);
+ userMoneyMsgNotificationService.shareOrderReceived(uid, Constant.SOURCE_TYPE_TAOBAO, sharemoney,
+ userInfoMapper.selectAvailableByPrimaryKey(uid).getMyHongBao(), new Date());
for (String orderId : drawBackOrders)
taoBaoWeiQuanDrawBackService.doWeiQuanShare(orderId);
@@ -737,7 +815,8 @@
// 鎵�鏈夌殑杩斿埄鍒拌处绾㈠寘ID
for (Long hongBaoId : recieveHongBaoIds) {
try {
- HongBaoRecieveCMQManager.getInstance().addHongBaoRecieveMsg(hongBaoId);
+ if (Constant.ENABLE_MQ)
+ HongBaoRecieveCMQManager.getInstance().addHongBaoRecieveMsg(hongBaoId);
} catch (Exception e) {
LogHelper.errorDetailInfo(e);
}
@@ -756,7 +835,6 @@
BigDecimal sharemoney = new BigDecimal(0);
List<Long> hbIdList = new ArrayList<>();
List<Long> recieveHongBaoIds = new ArrayList<>();
- int shareGoodsCount = 0;
Set<String> shareOrders = new HashSet<>();
for (HongBaoV2 hongBao : hongBaoList) {
@@ -777,9 +855,6 @@
hbIdList.add(hongBao.getId());
// 2018-08-05 杩囧悗鐨勮鍗曟墠澶勭悊缁存潈
HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByHongBaoId(hongBao.getId());
- if (hongBaoOrder != null) {
- shareGoodsCount += hongBaoOrder.getCommonOrder().getCount();
- }
shareOrders.add(hongBaoOrder.getCommonOrder().getOrderNo());
}
}
@@ -808,10 +883,8 @@
}
}
- // 鏂扮増閫氱煡
- userMoneyMsgNotificationService.shareOrderReceived(uid, Constant.SOURCE_TYPE_TAOBAO, shareOrders.size(),
- shareGoodsCount, sharemoney, userInfoMapper.selectAvailableByPrimaryKey(uid).getMyHongBao(), null,
- null);
+ userMoneyMsgNotificationService.shareOrderReceived(uid, sourceType, sharemoney,
+ userInfoMapper.selectAvailableByPrimaryKey(uid).getMyHongBao(), new Date());
}
hongBaoV2SettleTempService.addTemp(recieveHongBaoIds, key);
@@ -819,26 +892,12 @@
// 鎵�鏈夌殑杩斿埄鍒拌处绾㈠寘ID
for (Long hongBaoId : recieveHongBaoIds) {
try {
- HongBaoRecieveCMQManager.getInstance().addHongBaoRecieveMsg(hongBaoId);
+ if (Constant.ENABLE_MQ)
+ HongBaoRecieveCMQManager.getInstance().addHongBaoRecieveMsg(hongBaoId);
} catch (Exception e) {
LogHelper.errorDetailInfo(e);
}
}
- }
-
- /**
- * 閭�璇疯ˉ璐寸粨绠�
- *
- * @param orderId
- * @param sourceType
- * @throws ParamsException
- * @throws TeamEincomeRecordException
- */
- @Transactional(rollbackFor = Exception.class)
- @Override
- public void inviteSubsidySettle(Long uid, String taskKey, Date maxPreGetTime)
- throws OrderMoneySettleException, TeamEincomeRecordException, ParamsException {
- teamSubsidyManager.addToTeamEincome(uid, taskKey, maxPreGetTime);
}
private String getTaskKey(Long uid) {
--
Gitblit v1.8.0