From bb07147aaa96d1ef4c99e358dbbe7dad160dc62a Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期四, 19 十二月 2019 15:43:23 +0800 Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/UserOrderWeiQuanRecordServiceImpl.java | 110 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 89 insertions(+), 21 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/UserOrderWeiQuanRecordServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/UserOrderWeiQuanRecordServiceImpl.java index 8d1c9e4..d4da58d 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/UserOrderWeiQuanRecordServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/UserOrderWeiQuanRecordServiceImpl.java @@ -1,54 +1,69 @@ package com.yeshi.fanli.service.impl.order; import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Date; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.yeshi.fanli.dao.mybatis.order.UserOrderWeiQuanRecordMapper; import com.yeshi.fanli.dto.HongBaoDTO; +import com.yeshi.fanli.entity.bus.user.HongBaoV2; +import com.yeshi.fanli.entity.order.CommonOrder; +import com.yeshi.fanli.entity.order.HongBaoOrder; import com.yeshi.fanli.entity.order.UserOrderWeiQuanRecord; import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack; import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; import com.yeshi.fanli.service.inter.money.tb.TaoBaoWeiQuanDrawBackService; +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.UserOrderWeiQuanRecordService; import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService; -import com.yeshi.fanli.util.MoneyBigDecimalUtil; +import com.yeshi.fanli.util.Constant; @Service public class UserOrderWeiQuanRecordServiceImpl implements UserOrderWeiQuanRecordService { - + @Resource private UserOrderWeiQuanRecordMapper userOrderWeiQuanRecordMapper; - + @Resource private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService; - + @Resource private TaoBaoWeiQuanDrawBackService taoBaoWeiQuanDrawBackService; - + @Resource private HongBaoV2Service hongBaoV2Service; - + + @Resource + private CommonOrderService commonOrderService; + + @Resource + private HongBaoOrderService hongBaoOrderService; + @Override public void syncPrevious() { BigDecimal zero = new BigDecimal(0); for (int page = 1; page < Integer.MAX_VALUE; page++) { List<TaoBaoWeiQuanOrder> list = taoBaoWeiQuanOrderService.listByBeginWeiQuan(page, 100); - if (list == null || list.isEmpty()) + if (list == null || list.isEmpty()) break; - - for (TaoBaoWeiQuanOrder weiQuanOrder: list) { + + for (TaoBaoWeiQuanOrder weiQuanOrder : list) { String orderItemId = weiQuanOrder.getOrderItemId(); - + List<HongBaoDTO> listV2 = hongBaoV2Service.listByOrderTradeId(orderItemId); - for (HongBaoDTO hongBaoV2: listV2) { + for (HongBaoDTO hongBaoV2 : listV2) { Long uid = hongBaoV2.getUserInfo().getId(); - TaoBaoWeiQuanDrawBack drawBack= taoBaoWeiQuanDrawBackService.selectByOrderItemIdAndUid(orderItemId, uid); - + TaoBaoWeiQuanDrawBack drawBack = taoBaoWeiQuanDrawBackService.selectByOrderItemIdAndUid(orderItemId, + uid); + int state = 0; BigDecimal money = null; if (drawBack != null) { @@ -58,18 +73,18 @@ money = drawBackMoney; } } - + if (money == null) { - // (缁存潈閲戦/缁撶畻閲戦) * 杩斿埄閲戦 + // (缁存潈閲戦/缁撶畻閲戦) * 杩斿埄閲戦 BigDecimal wqmoney = weiQuanOrder.getMoney(); - money = wqmoney.multiply(hongBaoV2.getMoney()) - .divide(hongBaoV2.getSettlement(), 2, BigDecimal.ROUND_DOWN); - - // 澶т簬杩斿埄閲戦 鍒欑瓑浜庤繑鍒╅噾棰� + money = wqmoney.multiply(hongBaoV2.getMoney()).divide(hongBaoV2.getSettlement(), 2, + BigDecimal.ROUND_UP); + + // 澶т簬杩斿埄閲戦 鍒欑瓑浜庤繑鍒╅噾棰� if (money.compareTo(hongBaoV2.getMoney()) > 0) money = hongBaoV2.getMoney(); } - + UserOrderWeiQuanRecord weiQuanRecord = new UserOrderWeiQuanRecord(); weiQuanRecord.setUid(uid); weiQuanRecord.setSourceType(1); // 娣樺疂 @@ -82,6 +97,59 @@ } } } - + + @Transactional(rollbackFor = Exception.class) + @Override + public void addTaoBaoWeiQuan(TaoBaoWeiQuanOrder order) { + if (!order.getState().contains("缁存潈鎴愬姛")) + return; + // 鏌ヨ鏄惁瀛樺湪绾㈠寘 + CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO, + order.getOrderItemId()); + if (commonOrder == null) + return; + HongBaoOrder hongBaoOrder = hongBaoOrderService.selectDetailByCommonOrderId(commonOrder.getId()); + if (hongBaoOrder == null || hongBaoOrder.getHongBaoV2() == null) + return; + + BigDecimal settleMoney = hongBaoOrder.getCommonOrder().getSettlement(); + HongBaoV2 mainHongBao = hongBaoOrder.getHongBaoV2(); + UserOrderWeiQuanRecord ur = userOrderWeiQuanRecordMapper.selectByOrderInfoAndUid( + mainHongBao.getUserInfo().getId(), order.getOrderItemId(), Constant.SOURCE_TYPE_TAOBAO); + if (ur == null) { + UserOrderWeiQuanRecord record = new UserOrderWeiQuanRecord(); + record.setCreateTime(new Date()); + record.setMoney(hongBaoOrder.getHongBaoV2().getMoney().multiply(order.getMoney()).divide(settleMoney, 2, + RoundingMode.UP)); + record.setSourceType(Constant.SOURCE_TYPE_TAOBAO); + record.setState(0); + record.setTradeId(order.getOrderItemId()); + record.setUid(hongBaoOrder.getHongBaoV2().getUserInfo().getId()); + + if (record.getMoney().compareTo(hongBaoOrder.getHongBaoV2().getMoney()) > 0) + record.setMoney(hongBaoOrder.getHongBaoV2().getMoney()); + + userOrderWeiQuanRecordMapper.insertSelective(record); + } + List<HongBaoV2> children = hongBaoV2Service.listChildrenById(mainHongBao.getId()); + for (HongBaoV2 v2 : children) { + UserOrderWeiQuanRecord record = userOrderWeiQuanRecordMapper.selectByOrderInfoAndUid( + v2.getUserInfo().getId(), order.getOrderItemId(), Constant.SOURCE_TYPE_TAOBAO); + if (record == null) { + record = new UserOrderWeiQuanRecord(); + record.setCreateTime(new Date()); + record.setMoney(v2.getMoney().multiply(order.getMoney()).divide(settleMoney, 2, RoundingMode.UP)); + record.setSourceType(Constant.SOURCE_TYPE_TAOBAO); + record.setState(0); + record.setTradeId(order.getOrderItemId()); + record.setUid(v2.getUserInfo().getId()); + + if (record.getMoney().compareTo(v2.getMoney()) > 0) + record.setMoney(v2.getMoney()); + + userOrderWeiQuanRecordMapper.insertSelective(record); + } + } + } } -- Gitblit v1.8.0