From eda5d0e998204c7a49ab84d8528569b765bec2f9 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期五, 20 十二月 2019 10:05:10 +0800
Subject: [PATCH] 品牌日志
---
fanli/src/main/java/com/yeshi/fanli/service/impl/order/HongBaoV2ServiceImpl.java | 137 ++++++++++++++++++++++++++++-----------------
1 files changed, 84 insertions(+), 53 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/HongBaoV2ServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/HongBaoV2ServiceImpl.java
index f07f32a..4a25bb0 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/HongBaoV2ServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/HongBaoV2ServiceImpl.java
@@ -38,6 +38,7 @@
import com.yeshi.fanli.exception.order.HongBaoException;
import com.yeshi.fanli.exception.order.ShareGoodsActivityOrderException;
import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
+import com.yeshi.fanli.exception.user.UserAccountException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.order.CommonOrderService;
@@ -145,10 +146,9 @@
return hongBaoV2Mapper.selectByPrimaryKey(id);
}
-
- @Transactional
+ @Transactional(rollbackFor=Exception.class)
@Override
- public int addHongBao(List<CommonOrder> commonOrderList, int type) throws HongBaoException {
+ public int addHongBao(List<CommonOrder> commonOrderList, int type) throws HongBaoException, UserAccountException {
Set<Integer> stateSet = new HashSet<>();// 璁㈠崟鐘舵�丼et
if (commonOrderList != null && commonOrderList.size() > 0) {
int orderType = commonOrderList.get(0).getSourceType();
@@ -172,7 +172,7 @@
hasUpdate = true;
}
}
-
+
/**
* 閫氱煡鐢ㄦ埛鐨勮繑鍒╂儏鍐�
*/
@@ -276,9 +276,9 @@
return CommonOrder.STATE_SX;
}
- @Transactional
+ @Transactional(rollbackFor=Exception.class)
private boolean updateHongBao(HongBaoOrder hongBaoOrder, CommonOrder commonOrder, int type,
- Map<Integer, HongBaoOrder> notificationMap) throws HongBaoException {
+ Map<Integer, HongBaoOrder> notificationMap) throws HongBaoException, UserAccountException {
System.out.println(commonOrder.getOrderNo());
// 閿佽
HongBaoV2 oldHongBao = hongBaoV2Mapper.selectByPrimaryKeyForUpdate(hongBaoOrder.getHongBaoV2().getId());
@@ -314,7 +314,8 @@
MoneyBigDecimalUtil.mul(commonOrder.getEstimate(), fanliRate.divide(new BigDecimal(100))));
if (mianDan)
hongBao.setMoney(commonOrder.getPayment());
- } else if (commonOrder.getState() == CommonOrder.STATE_JS||commonOrder.getState() == CommonOrder.STATE_WQ) {
+ } else if (commonOrder.getState() == CommonOrder.STATE_JS
+ || commonOrder.getState() == CommonOrder.STATE_WQ) {
hongBao.setState(HongBaoV2.STATE_KELINGQU);
hongBao.setMoney(
MoneyBigDecimalUtil.mul(commonOrder.geteIncome(), fanliRate.divide(new BigDecimal(100))));
@@ -370,6 +371,9 @@
List<HongBaoV2> children = hongBaoV2Mapper.listChildrenById(hongBao.getId());
if (children != null && children.size() > 0)
for (HongBaoV2 child : children) {
+ if (child.getState() == HongBaoV2.STATE_YILINGQU)
+ continue;
+
HongBaoV2 childUpdate = new HongBaoV2(child.getId());
childUpdate.setState(hongBao.getState());
childUpdate.setUpdateTime(new Date());
@@ -450,24 +454,31 @@
} else if (hongBao.getState() == HongBaoV2.STATE_BUKELINGQU) {
firstHongbao.setMoney(
MoneyBigDecimalUtil.mul(hongBao.getMoney(), firstRate.divide(new BigDecimal(100))));
+ } else if (hongBao.getState() == HongBaoV2.STATE_SHIXIAO) {
+ firstHongbao.setMoney(new BigDecimal(0));
}
- hongBaoV2Mapper.insertSelective(firstHongbao);
- // 鐢ㄦ埛閫氱煡
- if (notificationMap.get(HongBaoV2.TYPE_YIJI) == null) {
- HongBaoV2 tempHongBao = new HongBaoV2(firstHongbao.getId());
- tempHongBao.setUserInfo(firstHongbao.getUserInfo());
- tempHongBao.setMoney(firstHongbao.getMoney());
- CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId());
- tempCommonOrder.setPayment(commonOrder.getPayment());
- notificationMap.put(HongBaoV2.TYPE_YIJI, new HongBaoOrder(tempCommonOrder, tempHongBao));
- } else {
- // 澧炲姞浠樻閲戦涓庤祫閲�
- HongBaoOrder tempHongBaoOrder = notificationMap.get(HongBaoV2.TYPE_YIJI);
- tempHongBaoOrder.getCommonOrder().setPayment(
- tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment()));
- tempHongBaoOrder.getHongBaoV2()
- .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(firstHongbao.getMoney()));
- notificationMap.put(HongBaoV2.TYPE_YIJI, tempHongBaoOrder);
+
+ if (firstHongbao.getMoney() != null
+ && firstHongbao.getMoney().compareTo(new BigDecimal(0)) > 0) {
+ hongBaoV2Mapper.insertSelective(firstHongbao);
+ // 鐢ㄦ埛閫氱煡
+ if (notificationMap.get(HongBaoV2.TYPE_YIJI) == null) {
+ HongBaoV2 tempHongBao = new HongBaoV2(firstHongbao.getId());
+ tempHongBao.setUserInfo(firstHongbao.getUserInfo());
+ tempHongBao.setMoney(firstHongbao.getMoney());
+ CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId());
+ tempCommonOrder.setPayment(commonOrder.getPayment());
+ notificationMap.put(HongBaoV2.TYPE_YIJI,
+ new HongBaoOrder(tempCommonOrder, tempHongBao));
+ } else {
+ // 澧炲姞浠樻閲戦涓庤祫閲�
+ HongBaoOrder tempHongBaoOrder = notificationMap.get(HongBaoV2.TYPE_YIJI);
+ tempHongBaoOrder.getCommonOrder().setPayment(
+ tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment()));
+ tempHongBaoOrder.getHongBaoV2().setMoney(
+ tempHongBaoOrder.getHongBaoV2().getMoney().add(firstHongbao.getMoney()));
+ notificationMap.put(HongBaoV2.TYPE_YIJI, tempHongBaoOrder);
+ }
}
// 鎻掑叆浜岀骇瀛愮孩鍖�
@@ -498,26 +509,29 @@
} else if (hongBao.getState() == HongBaoV2.STATE_BUKELINGQU) {
secondHongbao.setMoney(MoneyBigDecimalUtil.mul(hongBao.getMoney(),
secondRate.divide(new BigDecimal(100))));
- }
- hongBaoV2Mapper.insertSelective(secondHongbao);
-
- // 鐢ㄦ埛閫氱煡
- if (notificationMap.get(HongBaoV2.TYPE_ERJI) == null) {
- HongBaoV2 tempHongBao = new HongBaoV2(secondHongbao.getId());
- tempHongBao.setUserInfo(secondHongbao.getUserInfo());
- tempHongBao.setMoney(secondHongbao.getMoney());
- CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId());
- tempCommonOrder.setPayment(commonOrder.getPayment());
- notificationMap.put(HongBaoV2.TYPE_ERJI,
- new HongBaoOrder(tempCommonOrder, tempHongBao));
- } else {
- // 澧炲姞浠樻閲戦涓庤祫閲�
- HongBaoOrder tempHongBaoOrder = notificationMap.get(HongBaoV2.TYPE_ERJI);
- tempHongBaoOrder.getCommonOrder().setPayment(
- tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment()));
- tempHongBaoOrder.getHongBaoV2().setMoney(
- tempHongBaoOrder.getHongBaoV2().getMoney().add(secondHongbao.getMoney()));
- notificationMap.put(HongBaoV2.TYPE_ERJI, tempHongBaoOrder);
+ } else if (hongBao.getState() == HongBaoV2.STATE_SHIXIAO)
+ secondHongbao.setMoney(new BigDecimal(0));
+ if (secondHongbao.getMoney() != null
+ && secondHongbao.getMoney().compareTo(new BigDecimal(0)) > 0) {
+ hongBaoV2Mapper.insertSelective(secondHongbao);
+ // 鐢ㄦ埛閫氱煡
+ if (notificationMap.get(HongBaoV2.TYPE_ERJI) == null) {
+ HongBaoV2 tempHongBao = new HongBaoV2(secondHongbao.getId());
+ tempHongBao.setUserInfo(secondHongbao.getUserInfo());
+ tempHongBao.setMoney(secondHongbao.getMoney());
+ CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId());
+ tempCommonOrder.setPayment(commonOrder.getPayment());
+ notificationMap.put(HongBaoV2.TYPE_ERJI,
+ new HongBaoOrder(tempCommonOrder, tempHongBao));
+ } else {
+ // 澧炲姞浠樻閲戦涓庤祫閲�
+ HongBaoOrder tempHongBaoOrder = notificationMap.get(HongBaoV2.TYPE_ERJI);
+ tempHongBaoOrder.getCommonOrder().setPayment(tempHongBaoOrder.getCommonOrder()
+ .getPayment().add(commonOrder.getPayment()));
+ tempHongBaoOrder.getHongBaoV2().setMoney(
+ tempHongBaoOrder.getHongBaoV2().getMoney().add(secondHongbao.getMoney()));
+ notificationMap.put(HongBaoV2.TYPE_ERJI, tempHongBaoOrder);
+ }
}
}
}
@@ -544,7 +558,8 @@
hongBao.setState(HongBaoV2.STATE_BUKELINGQU);
hongBao.setMoney(
MoneyBigDecimalUtil.mul(commonOrder.getEstimate(), fanliRate.divide(new BigDecimal(100))));
- } else if (commonOrder.getState() == CommonOrder.STATE_JS||commonOrder.getState() == CommonOrder.STATE_WQ) {
+ } else if (commonOrder.getState() == CommonOrder.STATE_JS
+ || commonOrder.getState() == CommonOrder.STATE_WQ) {
hongBao.setState(HongBaoV2.STATE_KELINGQU);
hongBao.setMoney(
MoneyBigDecimalUtil.mul(commonOrder.geteIncome(), fanliRate.divide(new BigDecimal(100))));
@@ -580,6 +595,9 @@
List<HongBaoV2> children = hongBaoV2Mapper.listChildrenById(hongBao.getId());
if (children != null)
for (HongBaoV2 child : children) {
+ if (child.getState() == HongBaoV2.STATE_YILINGQU)
+ continue;
+
HongBaoV2 childUpdate = new HongBaoV2(child.getId());
// 缁熶竴璁剧疆鐘舵��
childUpdate.setState(hongBao.getState());
@@ -592,7 +610,8 @@
}
// 浠ュ疄闄呮敹鍏ヤ负鍑嗚绠楅浼版敹鐩�
- if (CommonOrder.STATE_JS == commonOrder.getState()||CommonOrder.STATE_WQ == commonOrder.getState()) {
+ if (CommonOrder.STATE_JS == commonOrder.getState()
+ || CommonOrder.STATE_WQ == commonOrder.getState()) {
childUpdate.setMoney(
MoneyBigDecimalUtil.mul(hongBao.getMoney(), rate.divide(new BigDecimal(100))));
if (commonOrder.getThirdCreateTime().getTime() > TimeUtil.convertToTimeTemp("2019-04-16",
@@ -644,9 +663,9 @@
return true;
}
- @Transactional
+ @Transactional(rollbackFor=Exception.class)
private void saveHongBao(CommonOrder commonOrder, int type, Map<Integer, HongBaoOrder> notificationMap)
- throws HongBaoException {
+ throws HongBaoException, UserAccountException {
if (type == HongBaoV2.TYPE_ZIGOU) {// 鑾峰彇鑷喘鐨勮繑鍒╂瘮渚�
BigDecimal fanliRate = hongBaoManageService.getFanLiRate(commonOrder.getCreateTime().getTime());
// 鏌ヨ鏄惁鏈夊厤鍗曡鍒�
@@ -692,7 +711,8 @@
hongBao.setState(HongBaoV2.STATE_BUKELINGQU);
hongBao.setMoney(
MoneyBigDecimalUtil.mul(commonOrder.getEstimate(), fanliRate.divide(new BigDecimal(100))));
- } else if (commonOrder.getState() == CommonOrder.STATE_JS||CommonOrder.STATE_WQ == commonOrder.getState()) {
+ } else if (commonOrder.getState() == CommonOrder.STATE_JS
+ || CommonOrder.STATE_WQ == commonOrder.getState()) {
hongBao.setState(HongBaoV2.STATE_KELINGQU);
hongBao.setMoney(
MoneyBigDecimalUtil.mul(commonOrder.geteIncome(), fanliRate.divide(new BigDecimal(100))));
@@ -712,6 +732,8 @@
hongBao.setMoney(mianDanMoney);
UserInfo user = userInfoService.getUserById(commonOrder.getUserInfo().getId());
+ if (user == null)
+ throw new UserAccountException(1001, "鐢ㄦ埛涓嶅瓨鍦�/琚皝绂�");
hongBao.setUrank(user.getRank());
hongBao.setOrderType(commonOrder.getSourceType());
hongBaoV2Mapper.insertSelective(hongBao);
@@ -899,7 +921,8 @@
hongBao.setState(HongBaoV2.STATE_BUKELINGQU);
hongBao.setMoney(
MoneyBigDecimalUtil.mul(commonOrder.getEstimate(), shareRate.divide(new BigDecimal(100))));
- } else if (commonOrder.getState() == CommonOrder.STATE_JS||commonOrder.getState() == CommonOrder.STATE_WQ) {
+ } else if (commonOrder.getState() == CommonOrder.STATE_JS
+ || commonOrder.getState() == CommonOrder.STATE_WQ) {
hongBao.setState(HongBaoV2.STATE_KELINGQU);
hongBao.setMoney(
MoneyBigDecimalUtil.mul(commonOrder.geteIncome(), shareRate.divide(new BigDecimal(100))));
@@ -910,6 +933,8 @@
calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-25", "yyyy-M-dd")));
}
UserInfo user = userInfoService.getUserById(commonOrder.getUserInfo().getId());
+ if (user == null)
+ throw new UserAccountException(1001, "鐢ㄦ埛涓嶅瓨鍦�/琚皝绂�");
hongBao.setUrank(user.getRank());
hongBao.setUserInfo(user);
hongBao.setOrderType(commonOrder.getSourceType());
@@ -951,7 +976,8 @@
child.setState(HongBaoV2.STATE_BUKELINGQU);
child.setMoney(MoneyBigDecimalUtil.mul(commonOrder.getEstimate(),
firstLevelRate.divide(new BigDecimal(100))));
- } else if (commonOrder.getState() == CommonOrder.STATE_JS||commonOrder.getState() == CommonOrder.STATE_WQ) {
+ } else if (commonOrder.getState() == CommonOrder.STATE_JS
+ || commonOrder.getState() == CommonOrder.STATE_WQ) {
child.setState(HongBaoV2.STATE_KELINGQU);
child.setMoney(MoneyBigDecimalUtil.mul(commonOrder.geteIncome(),
firstLevelRate.divide(new BigDecimal(100))));
@@ -967,7 +993,7 @@
child.setVersion(2);
child.setCreateTime(new Date());
child.setOrderType(commonOrder.getSourceType());
- if (child.getMoney().compareTo(new BigDecimal(0)) > 0) {
+ if (child.getMoney() != null && child.getMoney().compareTo(new BigDecimal(0)) > 0) {
hongBaoV2Mapper.insertSelective(child);
// 娣诲姞閫氱煡
if (notificationMap.get(HongBaoV2.TYPE_SHARE_YIJI) == null) {
@@ -1012,7 +1038,6 @@
e1.printStackTrace();
}
}
-
} else
throw new HongBaoException(2, "type閿欒");
}
@@ -1151,5 +1176,11 @@
public List<HongBaoV2> listByIds(List<Long> idList) {
return hongBaoV2Mapper.listByIds(idList);
}
+
+
+ @Override
+ public List<HongBaoDTO> listByOrderTradeId(String tradeId) {
+ return hongBaoV2Mapper.listByOrderTradeId(tradeId);
+ }
}
--
Gitblit v1.8.0