From d99f45a1c358282ab0d4333232da25f03560778f Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 29 五月 2020 18:49:31 +0800
Subject: [PATCH] 苏宁,唯品会接口修改
---
fanli/src/main/java/com/yeshi/fanli/service/impl/order/InviteOrderSubsidyServiceImpl.java | 219 ------------------------------------------------------
1 files changed, 0 insertions(+), 219 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 db072a6..a1f443f 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
@@ -1,240 +1,21 @@
package com.yeshi.fanli.service.impl.order;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
import com.yeshi.fanli.dao.mybatis.order.InviteOrderSubsidyMapper;
-import com.yeshi.fanli.entity.bus.user.HongBaoV2;
-import com.yeshi.fanli.entity.bus.user.Order;
-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.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.util.MoneyBigDecimalUtil;
-import com.yeshi.fanli.util.StringUtil;
@Service
public class InviteOrderSubsidyServiceImpl implements InviteOrderSubsidyService {
-
@Resource
private InviteOrderSubsidyMapper inviteOrderSubsidyMapper;
-
- @Resource
- private HongBaoV2Service hongBaoV2Service;
-
- @Resource
- private HongBaoOrderService hongBaoOrderService;
-
- @Resource
- private OrderHongBaoMapService orderHongBaoMapService;
-
- @Resource
- private OrderService orderService;
-
- @Resource
- private HongBaoManageService hongBaoManageService;
@Override
public InviteOrderSubsidy getByOrderNoAndType(Long uid, String orderNo, Integer type) {
return inviteOrderSubsidyMapper.getByOrderNoAndType(uid, orderNo, type);
- }
-
- @Override
- public InviteOrderSubsidy getByOrderNoAndTypeForUpdate(Long uid, String orderNo, Integer type) {
- return inviteOrderSubsidyMapper.getByOrderNoAndTypeForUpdate(uid, orderNo, type);
- }
-
- @Transactional
- @Override
- public void addOrderSubsidy(InviteOrderSubsidy orderSubsidy) throws InviteOrderSubsidyException {
- if (orderSubsidy.getMoney() == null || StringUtil.isNullOrEmpty(orderSubsidy.getOrderNo())
- || orderSubsidy.getSourceType() == null || orderSubsidy.getUid() == null)
- throw new InviteOrderSubsidyException(1, "鏁版嵁涓嶅畬鏁�");
- InviteOrderSubsidy old = getByOrderNoAndType(orderSubsidy.getUid(), orderSubsidy.getOrderNo(),
- orderSubsidy.getSourceType());
- if (old != null) {// 淇敼
- if (old.getState() == InviteOrderSubsidy.STATE_INVALID
- || old.getState() == InviteOrderSubsidy.STATE_SUBSIDIZED)
- return;
-
- // 淇敼鐘舵��
- 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);
- } else {// 娣诲姞
- if (orderSubsidy.getCreateTime() == null)
- orderSubsidy.setCreateTime(new Date());
- inviteOrderSubsidyMapper.insertSelective(orderSubsidy);
- }
- }
-
- @Transactional
- @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) {
- Order order = orderService.findOrderByOrderIdAndType(orderId, sourceType);
- List<Long> idList = new ArrayList<>();
- for (HongBaoOrder ho : list)
- if (ho.getHongBaoV2() != null)
- idList.add(ho.getHongBaoV2().getId());
- // 鏌ヨ瀛愮孩鍖�
- List<HongBaoV2> children = hongBaoV2Service.listChildrenByIds(idList);
- if (children != null && children.size() > 0) {
- Map<Long, Integer> uidHongBaoMap = new ConcurrentHashMap<>();
- for (HongBaoV2 v2 : children) {// 鎸夌敤鎴稩D缁熻绾㈠寘
- Long uid = v2.getUserInfo().getId();
- if (v2.getState() == HongBaoV2.STATE_BUKELINGQU || v2.getState() == HongBaoV2.STATE_KELINGQU
- || v2.getState() == HongBaoV2.STATE_YILINGQU) {
- uidHongBaoMap.put(uid, v2.getType());
- }
- }
-
- List<HongBaoV2> hbList = hongBaoV2Service.listByIds(idList);
- int state = InviteOrderSubsidy.STATE_UNKNOWN;
- // 纭畾鏄惁浣跨敤浜嗗鍔卞埜
- if (orderHongBaoMapService.selectByOrderIdAndSourceType(orderId, sourceType) != null) {
- state = InviteOrderSubsidy.STATE_INVALID;
- } else {
- // 纭畾鏄惁杩斿埄鍒拌处5澶╁悗
- if (recieveMoneyMoreThan(hbList, 5)) {
- state = InviteOrderSubsidy.STATE_VALID;
- } else {
- state = InviteOrderSubsidy.STATE_UNKNOWN;
- }
- }
-
- BigDecimal totalMoney = new BigDecimal(0);
- // 璁$畻鎬昏繑鍒�
- for (HongBaoV2 v2 : hbList) {
- if (v2.getState() == HongBaoV2.STATE_BUKELINGQU || v2.getState() == HongBaoV2.STATE_KELINGQU
- || v2.getState() == HongBaoV2.STATE_YILINGQU)
- totalMoney = totalMoney.add(v2.getMoney());
- }
-
- BigDecimal firstRate = hongBaoManageService
- .getInviteFirstLevelSubsidyRate(order.getThirdCreateTime().getTime());
- BigDecimal secondRate = hongBaoManageService
- .getInviteSecondLevelSubsidyRate(order.getThirdCreateTime().getTime());
-
- // 璁$畻濂栧姳閲�
- for (Iterator<Long> its = uidHongBaoMap.keySet().iterator(); its.hasNext();) {
- Long uid = its.next();
- int type = uidHongBaoMap.get(uid);
- if (type == HongBaoV2.TYPE_YIJI || type == HongBaoV2.TYPE_ERJI) {
- BigDecimal rate = null;
- if (type == HongBaoV2.TYPE_YIJI)
- rate = firstRate;
- else
- rate = secondRate;
- 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);
- }
- }
- }
- }
- }
-
- }
-
- private boolean recieveMoneyMoreThan(List<HongBaoV2> hbList, int day) {
- // 鏄惁鍏ㄩ儴鏄埌璐︾姸鎬佹垨澶辨晥鐘舵��
- int invalidCount = 0;// 澶辨晥涓暟
- int recieveCount = 0;// 鍒拌处鐨勪釜鏁�
- long maxGetTime = 0;
- for (HongBaoV2 v2 : hbList) {
- if (v2.getState() == HongBaoV2.STATE_SHIXIAO)
- invalidCount++;
- else if (v2.getState() == HongBaoV2.STATE_YILINGQU) {
- recieveCount++;
- if (v2.getGetTime() != null && v2.getGetTime().getTime() > maxGetTime)
- maxGetTime = v2.getGetTime().getTime();
-
- }
- }
- if (invalidCount + recieveCount == hbList.size() && recieveCount > 0 && maxGetTime > 0) {// 鍏ㄩ儴宸插埌璐�
- // 鏌ヨ鍒拌处鏃堕棿璺濈褰撳墠鏃堕棿鏄惁瓒呰繃鎸囧畾澶�
- if (System.currentTimeMillis() - maxGetTime > 1000 * 60 * 60 * 24L * day)
- return true;
- }
- return false;
- }
-
- @Override
- public long countByOrderIdAndSourceType(String orderId, int sourceType) {
- return inviteOrderSubsidyMapper.countByOrderNoAndType(orderId, sourceType);
- }
-
- @Transactional
- @Override
- public void invalidByOrderIdAndSourceType(String orderId, int sourceType) {
- List<InviteOrderSubsidy> list = inviteOrderSubsidyMapper.listByOrderNoAndType(orderId, sourceType);
- if (list != null && list.size() > 0)
- for (InviteOrderSubsidy subsidy : list) {
- if (subsidy.getState() == InviteOrderSubsidy.STATE_UNKNOWN
- || subsidy.getState() == InviteOrderSubsidy.STATE_VALID) {
- InviteOrderSubsidy update = new InviteOrderSubsidy(subsidy.getId());
- update.setState(InviteOrderSubsidy.STATE_INVALID);
- update.setUpdateTime(new Date());
- inviteOrderSubsidyMapper.updateByPrimaryKeySelective(update);
- }
- }
- }
-
- @Transactional
- @Override
- public void validByOrderIdAndSourceType(String orderId, int sourceType) {
- List<InviteOrderSubsidy> list = inviteOrderSubsidyMapper.listByOrderNoAndType(orderId, sourceType);
- if (list != null && list.size() > 0)
- for (InviteOrderSubsidy subsidy : list) {
- if (subsidy.getState() == InviteOrderSubsidy.STATE_UNKNOWN) {
- InviteOrderSubsidy update = new InviteOrderSubsidy(subsidy.getId());
- update.setState(InviteOrderSubsidy.STATE_VALID);
- update.setUpdateTime(new Date());
- inviteOrderSubsidyMapper.updateByPrimaryKeySelective(update);
- }
- }
-
- }
-
- @Override
- public void settleById(Long id, BigDecimal money) {
- InviteOrderSubsidy orderSubsidy = new InviteOrderSubsidy(id);
- orderSubsidy.setMoney(money);
- orderSubsidy.setState(InviteOrderSubsidy.STATE_SUBSIDIZED);
- orderSubsidy.setUpdateTime(new Date());
- inviteOrderSubsidyMapper.updateByPrimaryKeySelective(orderSubsidy);
}
}
--
Gitblit v1.8.0