From fde1eb082b0de793b36574c311ee8f3d6410feeb Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期四, 02 四月 2020 11:22:10 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/service/impl/order/InviteOrderSubsidyServiceImpl.java | 39 +++++++++++++++++++++++++++++++--------
1 files changed, 31 insertions(+), 8 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/InviteOrderSubsidyServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/InviteOrderSubsidyServiceImpl.java
index 2c77ed6..b545919 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/InviteOrderSubsidyServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/InviteOrderSubsidyServiceImpl.java
@@ -19,12 +19,14 @@
import com.yeshi.fanli.entity.order.HongBaoOrder;
import com.yeshi.fanli.entity.order.InviteOrderSubsidy;
import com.yeshi.fanli.exception.order.InviteOrderSubsidyException;
+import com.yeshi.fanli.service.inter.order.CommonOrderService;
import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
import com.yeshi.fanli.service.inter.order.InviteOrderSubsidyService;
import com.yeshi.fanli.service.inter.order.OrderHongBaoMapService;
import com.yeshi.fanli.service.inter.order.OrderService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
@@ -49,6 +51,12 @@
@Resource
private HongBaoManageService hongBaoManageService;
+ @Resource
+ private UserVIPInfoService userVIPInfoService;
+
+ @Resource
+ private CommonOrderService commonOrderService;
+
@Override
public InviteOrderSubsidy getByOrderNoAndType(Long uid, String orderNo, Integer type) {
return inviteOrderSubsidyMapper.getByOrderNoAndType(uid, orderNo, type);
@@ -59,9 +67,8 @@
return inviteOrderSubsidyMapper.getByOrderNoAndTypeForUpdate(uid, orderNo, type);
}
- @Transactional
- @Override
- public void addOrderSubsidy(InviteOrderSubsidy orderSubsidy) throws InviteOrderSubsidyException {
+ @Transactional(rollbackFor = Exception.class)
+ private void addOrderSubsidy(InviteOrderSubsidy orderSubsidy) throws InviteOrderSubsidyException {
if (orderSubsidy.getMoney() == null || StringUtil.isNullOrEmpty(orderSubsidy.getOrderNo())
|| orderSubsidy.getSourceType() == null || orderSubsidy.getUid() == null)
throw new InviteOrderSubsidyException(1, "鏁版嵁涓嶅畬鏁�");
@@ -75,6 +82,9 @@
// 淇敼鐘舵��
InviteOrderSubsidy update = new InviteOrderSubsidy(old.getId());
update.setMoney(orderSubsidy.getMoney());
+ if (old.getState() == InviteOrderSubsidy.STATE_UNKNOWN) {// 鐘舵�佹湭纭畾涔嬪墠鎵嶅彲浠ユ洿鏀瑰師濮嬭ˉ璐磋祫閲�
+ update.setOriginalMoney(orderSubsidy.getOriginalMoney());
+ }
update.setState(orderSubsidy.getState());
update.setUpdateTime(new Date());
inviteOrderSubsidyMapper.updateByPrimaryKeySelective(update);
@@ -85,14 +95,14 @@
}
}
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
@Override
public void addOrUpdateByOrder(String orderId, int sourceType) throws InviteOrderSubsidyException {
List<HongBaoOrder> list = hongBaoOrderService.listByOrderIdAndSourceType(orderId, sourceType);
if (list != null && list.size() > 0) {
// 蹇呴』鏄嚜璐鍗曟墠杩斿埄
HongBaoV2 parent = hongBaoV2Service.selectByPrimaryKey(list.get(0).getHongBaoV2().getId());
- if (parent != null && parent.getType() == HongBaoV2.TYPE_ZIGOU) {
+ if (parent != null && parent.getType() == HongBaoV2.TYPE_ZIGOU && parent.getUrank() != 100) {// 涓嶆槸浼氬憳鐨勮嚜璐墠琛ヨ创
Order order = orderService.findOrderByOrderIdAndType(orderId, sourceType);
List<Long> idList = new ArrayList<>();
for (HongBaoOrder ho : list)
@@ -147,15 +157,22 @@
rate = firstRate;
else
rate = secondRate;
- BigDecimal money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(totalMoney, rate),
+ BigDecimal money = MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(totalMoney, rate),
new BigDecimal(100));
InviteOrderSubsidy orderSubsidy = new InviteOrderSubsidy();
orderSubsidy.setMoney(money);
+ orderSubsidy.setOriginalMoney(money);
orderSubsidy.setUid(uid);
orderSubsidy.setOrderNo(orderId);
orderSubsidy.setSourceType(sourceType);
orderSubsidy.setState(state);
- addOrderSubsidy(orderSubsidy);
+ if (type == HongBaoV2.TYPE_YIJI)
+ orderSubsidy.setLevel(InviteOrderSubsidy.LEVEL_ONE);
+ else
+ orderSubsidy.setLevel(InviteOrderSubsidy.LEVEL_TWO);
+ // VIP鐢ㄦ埛鎵嶈兘琛ヨ创
+ if (userVIPInfoService.isVIP(uid))
+ addOrderSubsidy(orderSubsidy);
}
}
}
@@ -203,6 +220,7 @@
InviteOrderSubsidy update = new InviteOrderSubsidy(subsidy.getId());
update.setState(InviteOrderSubsidy.STATE_INVALID);
update.setUpdateTime(new Date());
+ update.setInValidTime(new Date());
inviteOrderSubsidyMapper.updateByPrimaryKeySelective(update);
}
}
@@ -210,7 +228,8 @@
@Transactional
@Override
- public void validByOrderIdAndSourceType(String orderId, int sourceType) {
+ public void validByOrderIdAndSourceType(String orderId, int sourceType) throws InviteOrderSubsidyException {
+
List<InviteOrderSubsidy> list = inviteOrderSubsidyMapper.listByOrderNoAndType(orderId, sourceType);
if (list != null && list.size() > 0)
for (InviteOrderSubsidy subsidy : list) {
@@ -218,12 +237,14 @@
InviteOrderSubsidy update = new InviteOrderSubsidy(subsidy.getId());
update.setState(InviteOrderSubsidy.STATE_VALID);
update.setUpdateTime(new Date());
+ update.setValidTime(new Date());
inviteOrderSubsidyMapper.updateByPrimaryKeySelective(update);
}
}
}
+ @Transactional
@Override
public void settleById(Long id, BigDecimal money) {
InviteOrderSubsidy orderSubsidy = new InviteOrderSubsidy(id);
@@ -231,6 +252,8 @@
orderSubsidy.setState(InviteOrderSubsidy.STATE_SUBSIDIZED);
orderSubsidy.setUpdateTime(new Date());
inviteOrderSubsidyMapper.updateByPrimaryKeySelective(orderSubsidy);
+ // 璁剧疆鍙粨绠�
+
}
}
--
Gitblit v1.8.0