From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsSourceManager.java | 422 ++++++++++++++++++++++++++-------------------------- 1 files changed, 211 insertions(+), 211 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsSourceManager.java b/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsSourceManager.java index f5d9125..92c28ca 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsSourceManager.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsSourceManager.java @@ -1,211 +1,211 @@ -package com.yeshi.fanli.service.manger.order; - -import java.math.BigDecimal; -import java.util.Date; -import java.util.List; - -import javax.annotation.Resource; - -import com.yeshi.fanli.entity.SystemEnum; -import com.yeshi.fanli.service.inter.user.UserInfoService; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import com.yeshi.fanli.dto.order.UserTeamLevel; -import com.yeshi.fanli.dto.order.UserTeamRate; -import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum; -import com.yeshi.fanli.entity.order.CommonOrder; -import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrder; -import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrderUserMap; -import com.yeshi.fanli.exception.ParamsException; -import com.yeshi.fanli.exception.order.dividents.TeamDividentsSourceOrderException; -import com.yeshi.fanli.service.inter.order.CommonOrderService; -import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService; -import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderService; -import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderUserMapService; -import com.yeshi.fanli.util.Constant; -import org.yeshi.utils.MoneyBigDecimalUtil; -import com.yeshi.fanli.util.factory.order.dividents.TeamDividentsSourceOrderFactory; -import com.yeshi.fanli.util.factory.order.dividents.TeamDividentsSourceOrderUserMapFactory; -import com.yeshi.fanli.util.order.CommonOrderUtil; -import com.yeshi.fanli.util.user.UserLevelUtil; - -/** - * 鍥㈤槦鍒嗙孩鏉ユ簮绠$悊 - * - * @author Administrator - */ -@Component -public class TeamDividentsSourceManager { - - @Resource - private TeamDividentsSourceOrderService teamDividentsSourceOrderService; - - @Resource - private TeamDividentsSourceOrderUserMapService teamDividentsSourceOrderUserMapService; - - @Resource - private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; - - @Resource - private CommonOrderService commonOrderService; - - @Resource - private UserInfoService userInfoService; - - /** - * @param commonOrderList - * @param bossList void 杩斿洖绫诲瀷 - * @throws ParamsException 娣诲姞鍒嗙孩婧� - * @throws - * @Title: addSource - * @Description: - */ - @Transactional(rollbackFor = Exception.class) - public void addSource(List<CommonOrder> commonOrderList, List<UserTeamLevel> bossList) - throws TeamDividentsSourceOrderException, ParamsException { - if (commonOrderList.get(0).getThirdCreateTime().getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME) - return; - - Date placeOrderTime = commonOrderList.get(0).getThirdCreateTime(); - - UserLevelEnum level = UserLevelUtil.getByOrderRank(commonOrderList.get(0).getUrank()); - if (level == null) - level = UserLevelEnum.daRen; - TeamDividentsSourceOrder order = TeamDividentsSourceOrderFactory.create(commonOrderList); - if (order == null) - return; - try { - order = teamDividentsSourceOrderService.addTeamDividentsSourceOrder(order); - } catch (ParamsException e) { - throw new TeamDividentsSourceOrderException(101, "鍙傛暟涓嶅畬鏁�"); - } - - if (order == null || order.getId() == null) { - throw new TeamDividentsSourceOrderException(2, "娣诲姞婧愯鍗曞け璐�"); - } - - // 鑾峰彇婧愯鍗曞垎閰嶇殑鍒嗙孩鐢ㄦ埛ID鏁伴噺 - long count = teamDividentsSourceOrderUserMapService.countBySourceOrderId(order.getId()); - if (count > 0)// 宸插瓨鍦� - return; - - SystemEnum system = userInfoService.getUserSystem(order.getUid()); - - // 璁$畻鍥㈤槦鍒嗙孩姣斾緥 - List<UserTeamRate> rateList = orderHongBaoMoneyComputeService.getTeamDividentsRates(level, bossList, - placeOrderTime, system); - if (rateList != null) - for (UserTeamRate rate : rateList) { - BigDecimal money = MoneyBigDecimalUtil.div(rate.getRate().multiply(order.getMoney()), - new BigDecimal(100), 4); - - TeamDividentsSourceOrderUserMap map = TeamDividentsSourceOrderUserMapFactory.create(order, - rate.getUid(), rate.getRate(), money, TeamDividentsSourceOrderUserMap.TYPE_TEAM_DIVIDENTS); - try { - teamDividentsSourceOrderUserMapService.addDividentsSourceOrderUserMap(map); - } catch (ParamsException e) { - throw new TeamDividentsSourceOrderException(201, "鍙傛暟涓嶅畬鏁�"); - } - } - // 璁$畻浜岀骇澶栧垎绾㈡瘮渚� - rateList = orderHongBaoMoneyComputeService.getTeamRewardMoreThan2LevelRates(level, bossList, placeOrderTime, system); - if (rateList != null) - for (UserTeamRate rate : rateList) { - BigDecimal money = MoneyBigDecimalUtil.div(rate.getRate().multiply(order.getMoney()), - new BigDecimal(100), 4); - - TeamDividentsSourceOrderUserMap map = TeamDividentsSourceOrderUserMapFactory.create(order, - rate.getUid(), rate.getRate(), money, TeamDividentsSourceOrderUserMap.TYPE_MORE_THAN_2); - try { - teamDividentsSourceOrderUserMapService.addDividentsSourceOrderUserMap(map); - } catch (ParamsException e) { - throw new TeamDividentsSourceOrderException(301, "鍙傛暟涓嶅畬鏁�"); - } - } - } - - /** - * 璁㈠崟澶辨晥 - * - * @throws - * @Title: invalidBySourceOrderId - * @Description: void 杩斿洖绫诲瀷 - */ - @Transactional(rollbackFor = Exception.class) - public void invalidByOrder(String orderNo, int sourceType, String beiZhu) { - teamDividentsSourceOrderService.invalidOrder(orderNo, sourceType, beiZhu); - TeamDividentsSourceOrder order = teamDividentsSourceOrderService.selectByOrderNoSourceType(orderNo, sourceType); - if (order != null) { - teamDividentsSourceOrderUserMapService.invalidBySourceOrderId(order.getId()); - } - } - - @Transactional(rollbackFor = Exception.class) - public void invalidBySourceUid(Long sourceUid, String beiZhu) { - // teamDividentsSourceOrderService.invalidOrderByUid(sourceUid, beiZhu); - teamDividentsSourceOrderUserMapService.invalidOrderBySourceUid(sourceUid, beiZhu); - } - - /** - * 璁㈠崟缁撶畻 - * - * @throws - * @Title: orderSettle - * @Description: void 杩斿洖绫诲瀷 - */ - @Transactional(rollbackFor = Exception.class) - public void orderSettle(String orderNo, int sourceType) { - TeamDividentsSourceOrder order = teamDividentsSourceOrderService.selectByOrderNoSourceType(orderNo, sourceType); - if (order != null) { - List<CommonOrder> commonOrderList = commonOrderService.listBySourceTypeAndOrderId(sourceType, orderNo); - if (commonOrderList == null) - return; - - TeamDividentsSourceOrder newOrder = TeamDividentsSourceOrderFactory.create(commonOrderList); - - if (newOrder == null || newOrder.getPreSendTime() == null) - return; - - BigDecimal money = CommonOrderUtil.computeIncome(commonOrderList); - teamDividentsSourceOrderService.orderSettle(orderNo, sourceType, newOrder.getPreSendTime(), money); - teamDividentsSourceOrderUserMapService.orderSettle(order.getId(), newOrder.getPreSendTime(), money); - } - } - - @Transactional(rollbackFor = Exception.class) - public void updateOrderMoney(String orderNo, int sourceType) { - TeamDividentsSourceOrder order = teamDividentsSourceOrderService.selectByOrderNoSourceType(orderNo, sourceType); - if (order != null) { - List<CommonOrder> commonOrderList = commonOrderService.listBySourceTypeAndOrderId(sourceType, orderNo); - if (commonOrderList == null) - return; - - Integer state = CommonOrderUtil.getState(commonOrderList); - BigDecimal money = null; - switch (state) { - case CommonOrder.STATE_FK: - money = CommonOrderUtil.computeEstimate(commonOrderList); - teamDividentsSourceOrderService.updateMoney(orderNo, sourceType, money); - teamDividentsSourceOrderUserMapService.updateMoney(order.getId(), money); - break; - case CommonOrder.STATE_WQ: - case CommonOrder.STATE_JS: - TeamDividentsSourceOrder newOrder = TeamDividentsSourceOrderFactory.create(commonOrderList); - - if (newOrder == null || newOrder.getPreSendTime() == null) - return; - - money = CommonOrderUtil.computeIncome(commonOrderList); - teamDividentsSourceOrderService.orderSettle(orderNo, sourceType, newOrder.getPreSendTime(), money); - teamDividentsSourceOrderUserMapService.orderSettle(order.getId(), newOrder.getPreSendTime(), money); - break; - case CommonOrder.STATE_SX: - invalidByOrder(orderNo, sourceType, "璁㈠崟澶辨晥"); - break; - } - - } - } - -} +package com.yeshi.fanli.service.manger.order; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +import javax.annotation.Resource; + +import com.yeshi.fanli.entity.SystemEnum; +import com.yeshi.fanli.service.inter.user.UserInfoService; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import com.yeshi.fanli.dto.order.UserTeamLevel; +import com.yeshi.fanli.dto.order.UserTeamRate; +import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum; +import com.yeshi.fanli.entity.order.CommonOrder; +import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrder; +import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrderUserMap; +import com.yeshi.fanli.exception.ParamsException; +import com.yeshi.fanli.exception.order.dividents.TeamDividentsSourceOrderException; +import com.yeshi.fanli.service.inter.order.CommonOrderService; +import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService; +import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderService; +import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderUserMapService; +import com.yeshi.fanli.util.Constant; +import org.yeshi.utils.MoneyBigDecimalUtil; +import com.yeshi.fanli.util.factory.order.dividents.TeamDividentsSourceOrderFactory; +import com.yeshi.fanli.util.factory.order.dividents.TeamDividentsSourceOrderUserMapFactory; +import com.yeshi.fanli.util.order.CommonOrderUtil; +import com.yeshi.fanli.util.user.UserLevelUtil; + +/** + * 鍥㈤槦鍒嗙孩鏉ユ簮绠$悊 + * + * @author Administrator + */ +@Component +public class TeamDividentsSourceManager { + + @Resource + private TeamDividentsSourceOrderService teamDividentsSourceOrderService; + + @Resource + private TeamDividentsSourceOrderUserMapService teamDividentsSourceOrderUserMapService; + + @Resource + private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; + + @Resource + private CommonOrderService commonOrderService; + + @Resource + private UserInfoService userInfoService; + + /** + * @param commonOrderList + * @param bossList void 杩斿洖绫诲瀷 + * @throws ParamsException 娣诲姞鍒嗙孩婧� + * @throws + * @Title: addSource + * @Description: + */ + @Transactional(rollbackFor = Exception.class) + public void addSource(List<CommonOrder> commonOrderList, List<UserTeamLevel> bossList) + throws TeamDividentsSourceOrderException, ParamsException { + if (commonOrderList.get(0).getThirdCreateTime().getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME) + return; + + Date placeOrderTime = commonOrderList.get(0).getThirdCreateTime(); + + UserLevelEnum level = UserLevelUtil.getByOrderRank(commonOrderList.get(0).getUrank()); + if (level == null) + level = UserLevelEnum.daRen; + TeamDividentsSourceOrder order = TeamDividentsSourceOrderFactory.create(commonOrderList); + if (order == null) + return; + try { + order = teamDividentsSourceOrderService.addTeamDividentsSourceOrder(order); + } catch (ParamsException e) { + throw new TeamDividentsSourceOrderException(101, "鍙傛暟涓嶅畬鏁�"); + } + + if (order == null || order.getId() == null) { + throw new TeamDividentsSourceOrderException(2, "娣诲姞婧愯鍗曞け璐�"); + } + + // 鑾峰彇婧愯鍗曞垎閰嶇殑鍒嗙孩鐢ㄦ埛ID鏁伴噺 + long count = teamDividentsSourceOrderUserMapService.countBySourceOrderId(order.getId()); + if (count > 0)// 宸插瓨鍦� + return; + + SystemEnum system = userInfoService.getUserSystem(order.getUid()); + + // 璁$畻鍥㈤槦鍒嗙孩姣斾緥 + List<UserTeamRate> rateList = orderHongBaoMoneyComputeService.getTeamDividentsRates(level, bossList, + placeOrderTime, system); + if (rateList != null) + for (UserTeamRate rate : rateList) { + BigDecimal money = MoneyBigDecimalUtil.div(rate.getRate().multiply(order.getMoney()), + new BigDecimal(100), 4); + + TeamDividentsSourceOrderUserMap map = TeamDividentsSourceOrderUserMapFactory.create(order, + rate.getUid(), rate.getRate(), money, TeamDividentsSourceOrderUserMap.TYPE_TEAM_DIVIDENTS); + try { + teamDividentsSourceOrderUserMapService.addDividentsSourceOrderUserMap(map); + } catch (ParamsException e) { + throw new TeamDividentsSourceOrderException(201, "鍙傛暟涓嶅畬鏁�"); + } + } + // 璁$畻浜岀骇澶栧垎绾㈡瘮渚� + rateList = orderHongBaoMoneyComputeService.getTeamRewardMoreThan2LevelRates(level, bossList, placeOrderTime, system); + if (rateList != null) + for (UserTeamRate rate : rateList) { + BigDecimal money = MoneyBigDecimalUtil.div(rate.getRate().multiply(order.getMoney()), + new BigDecimal(100), 4); + + TeamDividentsSourceOrderUserMap map = TeamDividentsSourceOrderUserMapFactory.create(order, + rate.getUid(), rate.getRate(), money, TeamDividentsSourceOrderUserMap.TYPE_MORE_THAN_2); + try { + teamDividentsSourceOrderUserMapService.addDividentsSourceOrderUserMap(map); + } catch (ParamsException e) { + throw new TeamDividentsSourceOrderException(301, "鍙傛暟涓嶅畬鏁�"); + } + } + } + + /** + * 璁㈠崟澶辨晥 + * + * @throws + * @Title: invalidBySourceOrderId + * @Description: void 杩斿洖绫诲瀷 + */ + @Transactional(rollbackFor = Exception.class) + public void invalidByOrder(String orderNo, int sourceType, String beiZhu) { + teamDividentsSourceOrderService.invalidOrder(orderNo, sourceType, beiZhu); + TeamDividentsSourceOrder order = teamDividentsSourceOrderService.selectByOrderNoSourceType(orderNo, sourceType); + if (order != null) { + teamDividentsSourceOrderUserMapService.invalidBySourceOrderId(order.getId()); + } + } + + @Transactional(rollbackFor = Exception.class) + public void invalidBySourceUid(Long sourceUid, String beiZhu) { + // teamDividentsSourceOrderService.invalidOrderByUid(sourceUid, beiZhu); + teamDividentsSourceOrderUserMapService.invalidOrderBySourceUid(sourceUid, beiZhu); + } + + /** + * 璁㈠崟缁撶畻 + * + * @throws + * @Title: orderSettle + * @Description: void 杩斿洖绫诲瀷 + */ + @Transactional(rollbackFor = Exception.class) + public void orderSettle(String orderNo, int sourceType) { + TeamDividentsSourceOrder order = teamDividentsSourceOrderService.selectByOrderNoSourceType(orderNo, sourceType); + if (order != null) { + List<CommonOrder> commonOrderList = commonOrderService.listBySourceTypeAndOrderId(sourceType, orderNo); + if (commonOrderList == null) + return; + + TeamDividentsSourceOrder newOrder = TeamDividentsSourceOrderFactory.create(commonOrderList); + + if (newOrder == null || newOrder.getPreSendTime() == null) + return; + + BigDecimal money = CommonOrderUtil.computeIncome(commonOrderList); + teamDividentsSourceOrderService.orderSettle(orderNo, sourceType, newOrder.getPreSendTime(), money); + teamDividentsSourceOrderUserMapService.orderSettle(order.getId(), newOrder.getPreSendTime(), money); + } + } + + @Transactional(rollbackFor = Exception.class) + public void updateOrderMoney(String orderNo, int sourceType) { + TeamDividentsSourceOrder order = teamDividentsSourceOrderService.selectByOrderNoSourceType(orderNo, sourceType); + if (order != null) { + List<CommonOrder> commonOrderList = commonOrderService.listBySourceTypeAndOrderId(sourceType, orderNo); + if (commonOrderList == null) + return; + + Integer state = CommonOrderUtil.getState(commonOrderList); + BigDecimal money = null; + switch (state) { + case CommonOrder.STATE_FK: + money = CommonOrderUtil.computeEstimate(commonOrderList); + teamDividentsSourceOrderService.updateMoney(orderNo, sourceType, money); + teamDividentsSourceOrderUserMapService.updateMoney(order.getId(), money); + break; + case CommonOrder.STATE_WQ: + case CommonOrder.STATE_JS: + TeamDividentsSourceOrder newOrder = TeamDividentsSourceOrderFactory.create(commonOrderList); + + if (newOrder == null || newOrder.getPreSendTime() == null) + return; + + money = CommonOrderUtil.computeIncome(commonOrderList); + teamDividentsSourceOrderService.orderSettle(orderNo, sourceType, newOrder.getPreSendTime(), money); + teamDividentsSourceOrderUserMapService.orderSettle(order.getId(), newOrder.getPreSendTime(), money); + break; + case CommonOrder.STATE_SX: + invalidByOrder(orderNo, sourceType, "璁㈠崟澶辨晥"); + break; + } + + } + } + +} -- Gitblit v1.8.0