From c9cbad5f5d18c6b2ac5a063e41007933d7028329 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 07 七月 2020 15:24:17 +0800 Subject: [PATCH] 返利配置文件加入系统区分 --- fanli/src/main/java/com/yeshi/fanli/service/manger/order/HongBaoV2AddManager.java | 1588 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 791 insertions(+), 797 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/manger/order/HongBaoV2AddManager.java b/fanli/src/main/java/com/yeshi/fanli/service/manger/order/HongBaoV2AddManager.java index d3b6cda..65288f8 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/manger/order/HongBaoV2AddManager.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/manger/order/HongBaoV2AddManager.java @@ -13,6 +13,7 @@ import javax.annotation.Resource; +import com.yeshi.fanli.entity.SystemEnum; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -53,911 +54,904 @@ @Component public class HongBaoV2AddManager { - @Resource - private UserInfoService userInfoService; + @Resource + private UserInfoService userInfoService; - @Resource - private ThreeSaleSerivce threeSaleSerivce; + @Resource + private ThreeSaleSerivce threeSaleSerivce; - @Resource - private HongBaoOrderMapper hongBaoOrderMapper; + @Resource + private HongBaoOrderMapper hongBaoOrderMapper; - @Resource - private HongBaoV2Mapper hongBaoV2Mapper; + @Resource + private HongBaoV2Mapper hongBaoV2Mapper; - @Resource - private UserOrderMsgNotificationService userOrderMsgNotificationService; + @Resource + private UserOrderMsgNotificationService userOrderMsgNotificationService; - @Resource - private HongBaoManageService hongBaoManageService; + @Resource + private HongBaoManageService hongBaoManageService; - @Resource - private CommonOrderService commonOrderService; + @Resource + private CommonOrderService commonOrderService; - @Resource - private UserSystemCouponRecordService userSystemCouponRecordService; + @Resource + private UserSystemCouponRecordService userSystemCouponRecordService; - @Resource - private UserSystemCouponService userSystemCouponService; + @Resource + private UserSystemCouponService userSystemCouponService; - @Resource - private CommonOrderGoodsMapper commonOrderGoodsMapper; + @Resource + private CommonOrderGoodsMapper commonOrderGoodsMapper; - @Resource - private UserVIPInfoService userVIPInfoService; + @Resource + private UserVIPInfoService userVIPInfoService; - @Resource - private UserLevelManager userLevelManager; + @Resource + private UserLevelManager userLevelManager; - @Resource - private InviteOrderSubsidyService inviteOrderSubsidyService; + @Resource + private InviteOrderSubsidyService inviteOrderSubsidyService; - @Resource - private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; + @Resource + private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; - /** - * 娣诲姞绾㈠寘淇℃伅 - * - * @param commonOrderList - * @param type - * @return - * @throws HongBaoException - * @throws UserAccountException - * @throws CommonOrderException - * @throws OrderTeamRewardException - * @throws InviteOrderSubsidyException - */ - public HongBaoAddResult addHongBao(List<CommonOrder> commonOrderList, int type) - throws HongBaoException, UserAccountException { + /** + * 娣诲姞绾㈠寘淇℃伅 + * + * @param commonOrderList + * @param type + * @return + * @throws HongBaoException + * @throws UserAccountException + * @throws CommonOrderException + * @throws OrderTeamRewardException + * @throws InviteOrderSubsidyException + */ + public HongBaoAddResult addHongBao(List<CommonOrder> commonOrderList, int type) + throws HongBaoException, UserAccountException { - if (commonOrderList != null && commonOrderList.size() > 0) { - int orderType = commonOrderList.get(0).getSourceType(); - String orderId = commonOrderList.get(0).getOrderNo(); + if (commonOrderList != null && commonOrderList.size() > 0) { + int orderType = commonOrderList.get(0).getSourceType(); + String orderId = commonOrderList.get(0).getOrderNo(); - Map<Integer, HongBaoOrder> notificationMap = new HashMap<>(); - int goodsCount = 0; - boolean hasAdd = false; - boolean hasUpdate = false; - Set<Integer> stateSet = new HashSet<>();// 璁㈠崟鐘舵�丼et + Map<Integer, HongBaoOrder> notificationMap = new HashMap<>(); + int goodsCount = 0; + boolean hasAdd = false; + boolean hasUpdate = false; + Set<Integer> stateSet = new HashSet<>();// 璁㈠崟鐘舵�丼et - UserLevelEnum userLevel = UserLevelUtil.getByOrderRank(commonOrderList.get(0).getUrank()); + UserLevelEnum userLevel = UserLevelUtil.getByOrderRank(commonOrderList.get(0).getUrank()); - if (userLevel == null) - userLevel = UserLevelEnum.daRen; + if (userLevel == null) + userLevel = UserLevelEnum.daRen; - Date placeOrderDate = commonOrderList.get(0).getThirdCreateTime(); + Date placeOrderDate = commonOrderList.get(0).getThirdCreateTime(); - boolean miandan = false; + boolean miandan = false; - for (CommonOrder commonOrder : commonOrderList) { - stateSet.add(commonOrder.getState()); - goodsCount += commonOrder.getCount(); - if (commonOrder == null || commonOrder.getId() == null || commonOrder.getUserInfo() == null) - throw new HongBaoException(1, "璁㈠崟淇℃伅涓嶅畬鏁�"); - HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId()); - if (hongBaoOrder == null) { - HongBaoSaveResult result = saveHongBao(commonOrder, type, notificationMap, userLevel, - placeOrderDate); - miandan = result.isMiandan(); - hasAdd = result.isAdd(); - } else { - boolean update = updateHongBao(hongBaoOrder, commonOrder, type, notificationMap, placeOrderDate); - if (update) { - hasUpdate = true; - } - } - } + for (CommonOrder commonOrder : commonOrderList) { + stateSet.add(commonOrder.getState()); + goodsCount += commonOrder.getCount(); + if (commonOrder == null || commonOrder.getId() == null || commonOrder.getUserInfo() == null) + throw new HongBaoException(1, "璁㈠崟淇℃伅涓嶅畬鏁�"); + HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId()); + if (hongBaoOrder == null) { + HongBaoSaveResult result = saveHongBao(commonOrder, type, notificationMap, userLevel, + placeOrderDate); + miandan = result.isMiandan(); + hasAdd = result.isAdd(); + } else { + boolean update = updateHongBao(hongBaoOrder, commonOrder, type, notificationMap, placeOrderDate); + if (update) { + hasUpdate = true; + } + } + } - int state = getOrderState(stateSet); + int state = getOrderState(stateSet); - /** - * 閫氱煡鐢ㄦ埛鐨勮繑鍒╂儏鍐� - */ + /** + * 閫氱煡鐢ㄦ埛鐨勮繑鍒╂儏鍐� + */ - // if (!Constant.IS_TEST) { - if (hasAdd) { - // 鑾峰彇璁㈠崟琛ヨ创 + // if (!Constant.IS_TEST) { + if (hasAdd) { + // 鑾峰彇璁㈠崟琛ヨ创 - Iterator<Integer> its = notificationMap.keySet().iterator(); - while (its.hasNext()) { - Integer t = its.next(); - HongBaoV2 notify = notificationMap.get(t).getHongBaoV2(); - CommonOrder commonOrder = notificationMap.get(t).getCommonOrder(); - Long uid = notify.getUserInfo().getId(); + Iterator<Integer> its = notificationMap.keySet().iterator(); + while (its.hasNext()) { + Integer t = its.next(); + HongBaoV2 notify = notificationMap.get(t).getHongBaoV2(); + CommonOrder commonOrder = notificationMap.get(t).getCommonOrder(); + Long uid = notify.getUserInfo().getId(); - BigDecimal money = notify.getMoney(); - switch (t) { - case HongBaoV2.TYPE_ZIGOU: - userOrderMsgNotificationService.orderFanLiStatistic(uid, orderId, orderType, - commonOrder.getPayment(), money, goodsCount, state, commonOrder.getThirdCreateTime()); + BigDecimal money = notify.getMoney(); + switch (t) { + case HongBaoV2.TYPE_ZIGOU: + userOrderMsgNotificationService.orderFanLiStatistic(uid, orderId, orderType, + commonOrder.getPayment(), money, goodsCount, state, commonOrder.getThirdCreateTime()); - break; - case HongBaoV2.TYPE_SHARE_GOODS: + break; + case HongBaoV2.TYPE_SHARE_GOODS: - userOrderMsgNotificationService.orderShareStatistic(uid, orderId, orderType, - commonOrder.getPayment(), money, goodsCount, state, commonOrder.getThirdCreateTime()); + userOrderMsgNotificationService.orderShareStatistic(uid, orderId, orderType, + commonOrder.getPayment(), money, goodsCount, state, commonOrder.getThirdCreateTime()); - break; - case HongBaoV2.TYPE_YIJI: - userOrderMsgNotificationService.orderInviteStatistic(uid, orderId, orderType, - commonOrder.getPayment(), money, new BigDecimal(0), goodsCount, state, - commonOrder.getThirdCreateTime()); + break; + case HongBaoV2.TYPE_YIJI: + userOrderMsgNotificationService.orderInviteStatistic(uid, orderId, orderType, + commonOrder.getPayment(), money, new BigDecimal(0), goodsCount, state, + commonOrder.getThirdCreateTime()); - break; - case HongBaoV2.TYPE_ERJI: + break; + case HongBaoV2.TYPE_ERJI: - userOrderMsgNotificationService.orderInviteStatistic(uid, orderId, orderType, - commonOrder.getPayment(), money, new BigDecimal(0), goodsCount, state, - commonOrder.getThirdCreateTime()); + userOrderMsgNotificationService.orderInviteStatistic(uid, orderId, orderType, + commonOrder.getPayment(), money, new BigDecimal(0), goodsCount, state, + commonOrder.getThirdCreateTime()); - break; + break; - case HongBaoV2.TYPE_SHARE_YIJI: - userOrderMsgNotificationService.orderInviteStatistic(uid, orderId, orderType, - commonOrder.getPayment(), money, new BigDecimal(0), goodsCount, state, - commonOrder.getThirdCreateTime()); - break; - case HongBaoV2.TYPE_SHARE_ERJI: + case HongBaoV2.TYPE_SHARE_YIJI: + userOrderMsgNotificationService.orderInviteStatistic(uid, orderId, orderType, + commonOrder.getPayment(), money, new BigDecimal(0), goodsCount, state, + commonOrder.getThirdCreateTime()); + break; + case HongBaoV2.TYPE_SHARE_ERJI: - userOrderMsgNotificationService.orderInviteStatistic(uid, orderId, orderType, - commonOrder.getPayment(), money, new BigDecimal(0), goodsCount, state, - commonOrder.getThirdCreateTime()); + userOrderMsgNotificationService.orderInviteStatistic(uid, orderId, orderType, + commonOrder.getPayment(), money, new BigDecimal(0), goodsCount, state, + commonOrder.getThirdCreateTime()); - break; + break; - } - } - // } - } + } + } + // } + } - int resultCode = 0; - if (hasAdd && hasUpdate) - return new HongBaoAddResult(HongBaoAddResult.CODE_ADD_AND_UPDATE, miandan); - else if (hasAdd) - return new HongBaoAddResult(HongBaoAddResult.CODE_ADD, miandan); - else if (hasUpdate) - return new HongBaoAddResult(HongBaoAddResult.CODE_UPDATE, miandan); - return new HongBaoAddResult(resultCode, miandan); - } - return new HongBaoAddResult(0, false); - } + int resultCode = 0; + if (hasAdd && hasUpdate) + return new HongBaoAddResult(HongBaoAddResult.CODE_ADD_AND_UPDATE, miandan); + else if (hasAdd) + return new HongBaoAddResult(HongBaoAddResult.CODE_ADD, miandan); + else if (hasUpdate) + return new HongBaoAddResult(HongBaoAddResult.CODE_UPDATE, miandan); + return new HongBaoAddResult(resultCode, miandan); + } + return new HongBaoAddResult(0, false); + } - private int getOrderState(Set<Integer> states) { - if (states.size() == 1) - return states.iterator().next(); - Iterator<Integer> its = states.iterator(); - while (its.hasNext()) { - int tempState = its.next(); - if (tempState == CommonOrder.STATE_FK) - return CommonOrder.STATE_FK; - else if (tempState == CommonOrder.STATE_JS) - return CommonOrder.STATE_JS; - } - return CommonOrder.STATE_SX; - } + private int getOrderState(Set<Integer> states) { + if (states.size() == 1) + return states.iterator().next(); + Iterator<Integer> its = states.iterator(); + while (its.hasNext()) { + int tempState = its.next(); + if (tempState == CommonOrder.STATE_FK) + return CommonOrder.STATE_FK; + else if (tempState == CommonOrder.STATE_JS) + return CommonOrder.STATE_JS; + } + return CommonOrder.STATE_SX; + } - private List<UserTeamLevel> getBossList(Long uid, int deep) { - List<UserTeamLevel> resultList = new ArrayList<>(); - List<ThreeSale> threeSales = threeSaleSerivce.getMyBossDeepList(uid, deep); + private List<UserTeamLevel> getBossList(Long uid, int deep) { + List<UserTeamLevel> resultList = new ArrayList<>(); + List<ThreeSale> threeSales = threeSaleSerivce.getMyBossDeepList(uid, deep); - if (threeSales != null) { - List<Long> uidList = new ArrayList<Long>(); - for (ThreeSale ts : threeSales) - uidList.add(ts.getBoss().getId()); + if (threeSales != null) { + List<Long> uidList = new ArrayList<Long>(); + for (ThreeSale ts : threeSales) + uidList.add(ts.getBoss().getId()); - for (Long bossUid : uidList) { - UserLevelEnum level = userLevelManager.getUserLevel(bossUid); - resultList.add(new UserTeamLevel(bossUid, level)); - } + for (Long bossUid : uidList) { + UserLevelEnum level = userLevelManager.getUserLevel(bossUid); + resultList.add(new UserTeamLevel(bossUid, level)); + } - } + } - return resultList; - } + return resultList; + } - private List<UserTeamLevel> getBossList(List<HongBaoV2> children) { - List<UserTeamLevel> resultList = new ArrayList<>(); - for (HongBaoV2 v2 : children) { + private List<UserTeamLevel> getBossList(List<HongBaoV2> children) { + List<UserTeamLevel> resultList = new ArrayList<>(); + for (HongBaoV2 v2 : children) { - UserLevelEnum level = UserLevelUtil.getByOrderRank(v2.getUrank()); - if (level == null) - level = UserLevelEnum.daRen; - UserTeamLevel teamLevel = new UserTeamLevel(v2.getUserInfo().getId(), level); + UserLevelEnum level = UserLevelUtil.getByOrderRank(v2.getUrank()); + if (level == null) + level = UserLevelEnum.daRen; + UserTeamLevel teamLevel = new UserTeamLevel(v2.getUserInfo().getId(), level); - if (v2.getType() == HongBaoV2.TYPE_YIJI || v2.getType() == HongBaoV2.TYPE_SHARE_YIJI) { - resultList.add(0, teamLevel); - } else { - resultList.add(teamLevel); - } - } - return resultList; - } + if (v2.getType() == HongBaoV2.TYPE_YIJI || v2.getType() == HongBaoV2.TYPE_SHARE_YIJI) { + resultList.add(0, teamLevel); + } else { + resultList.add(teamLevel); + } + } + return resultList; + } - private boolean updateHongBao(HongBaoOrder hongBaoOrder, CommonOrder commonOrder, int type, - Map<Integer, HongBaoOrder> notificationMap, Date placeOrderTime) - throws HongBaoException, UserAccountException { - System.out.println(commonOrder.getOrderNo()); - // 閿佽 - HongBaoV2 oldHongBao = hongBaoV2Mapper.selectByPrimaryKeyForUpdate(hongBaoOrder.getHongBaoV2().getId()); - if (oldHongBao == null) - throw new HongBaoException(10, "绾㈠寘瀵硅薄涓嶅瓨鍦�"); - UserLevelEnum buyerLevel = UserLevelUtil.getByOrderRank(oldHongBao.getUrank()); - if (buyerLevel == null) - throw new HongBaoException(201, "鐢ㄦ埛绛夌骇涓虹┖"); + private boolean updateHongBao(HongBaoOrder hongBaoOrder, CommonOrder commonOrder, int type, + Map<Integer, HongBaoOrder> notificationMap, Date placeOrderTime) + throws HongBaoException, UserAccountException { + System.out.println(commonOrder.getOrderNo()); + // 閿佽 + HongBaoV2 oldHongBao = hongBaoV2Mapper.selectByPrimaryKeyForUpdate(hongBaoOrder.getHongBaoV2().getId()); + if (oldHongBao == null) + throw new HongBaoException(10, "绾㈠寘瀵硅薄涓嶅瓨鍦�"); + UserLevelEnum buyerLevel = UserLevelUtil.getByOrderRank(oldHongBao.getUrank()); + if (buyerLevel == null) + throw new HongBaoException(201, "鐢ㄦ埛绛夌骇涓虹┖"); - // 宸茬粡澶辨晥锛屽凡缁忛鍙栵紝鏂拌�佺姸鎬佷竴鑷寸殑绾㈠寘涓嶅仛澶勭悊 - if (oldHongBao.getState() == HongBaoV2.STATE_SHIXIAO || oldHongBao.getState() == HongBaoV2.STATE_YILINGQU) - return false; + // 宸茬粡澶辨晥锛屽凡缁忛鍙栵紝鏂拌�佺姸鎬佷竴鑷寸殑绾㈠寘涓嶅仛澶勭悊 + if (oldHongBao.getState() == HongBaoV2.STATE_SHIXIAO || oldHongBao.getState() == HongBaoV2.STATE_YILINGQU) + return false; - if (type == HongBaoV2.TYPE_ZIGOU) {// 鑾峰彇鑷喘鐨勮繑鍒╂瘮渚� - BigDecimal money = orderHongBaoMoneyComputeService.computeFanliMoney(commonOrder, buyerLevel); - // 鍏嶅崟澶勭悊 - boolean mianDan = false; - List<CommonOrder> orderList = commonOrderService.listBySourceTypeAndOrderId(commonOrder.getSourceType(), - commonOrder.getOrderNo()); - if (orderList != null && orderList.size() == 1) {// 鍙湁1涓鍗曟墠鍙備笌鍏嶅崟 - BigDecimal payMent = commonOrder.getPayment(); - if (commonOrder.getState() == CommonOrder.STATE_JS) - payMent = commonOrder.getSettlement(); + if (type == HongBaoV2.TYPE_ZIGOU) {// 鑾峰彇鑷喘鐨勮繑鍒╂瘮渚� + BigDecimal money = orderHongBaoMoneyComputeService.computeFanliMoney(commonOrder, buyerLevel); + // 鍏嶅崟澶勭悊 + boolean mianDan = false; + List<CommonOrder> orderList = commonOrderService.listBySourceTypeAndOrderId(commonOrder.getSourceType(), + commonOrder.getOrderNo()); + if (orderList != null && orderList.size() == 1) {// 鍙湁1涓鍗曟墠鍙備笌鍏嶅崟 + BigDecimal payMent = commonOrder.getPayment(); + if (commonOrder.getState() == CommonOrder.STATE_JS) + payMent = commonOrder.getSettlement(); - if (payMent.compareTo(new BigDecimal(10)) < 0) { - mianDan = userSystemCouponRecordService.isSuccessMianDan(commonOrder.getSourceType(), - commonOrder.getOrderNo()); - } - } + if (payMent.compareTo(new BigDecimal(10)) < 0) { + mianDan = userSystemCouponRecordService.isSuccessMianDan(commonOrder.getSourceType(), + commonOrder.getOrderNo()); + } + } - HongBaoV2 hongBao = createFanLiUpdateHongBao(commonOrder, money, hongBaoOrder.getHongBaoV2().getId(), - mianDan); + HongBaoV2 hongBao = createFanLiUpdateHongBao(commonOrder, money, hongBaoOrder.getHongBaoV2().getId(), + mianDan); - // 鏂拌�佺孩鍖呯姸鎬佷竴鑷翠笉澶勭悊 - if (oldHongBao.getState().intValue() == hongBao.getState()) - return false; + // 鏂拌�佺孩鍖呯姸鎬佷竴鑷翠笉澶勭悊 + if (oldHongBao.getState().intValue() == hongBao.getState()) + return false; - if (hongBao.getState() == HongBaoV2.STATE_SHIXIAO) { - if (mianDan) { - try { - userSystemCouponService.updateStateByDrawback(commonOrder.getOrderNo(),commonOrder.getSourceType()); - } catch (Exception e) { - e.printStackTrace(); - throw new HongBaoException(12, "鍏嶅崟鍒搁��娆惧嚭閿�"); - } - } - } + if (hongBao.getState() == HongBaoV2.STATE_SHIXIAO) { + if (mianDan) { + try { + userSystemCouponService.updateStateByDrawback(commonOrder.getOrderNo(), commonOrder.getSourceType()); + } catch (Exception e) { + e.printStackTrace(); + throw new HongBaoException(12, "鍏嶅崟鍒搁��娆惧嚭閿�"); + } + } + } - hongBaoV2Mapper.updateByPrimaryKeySelective(hongBao); + hongBaoV2Mapper.updateByPrimaryKeySelective(hongBao); - // 鍔犲叆閫氱煡 - if (notificationMap.get(type) == null) { - HongBaoV2 tempHongBao = new HongBaoV2(oldHongBao.getId()); - tempHongBao.setUserInfo(oldHongBao.getUserInfo()); - tempHongBao.setMoney(hongBao.getMoney()); - CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId()); - tempCommonOrder.setPayment(commonOrder.getPayment()); - tempCommonOrder.setThirdCreateTime(commonOrder.getThirdCreateTime()); - notificationMap.put(type, new HongBaoOrder(tempCommonOrder, tempHongBao)); - } else { - // 澧炲姞浠樻閲戦涓庤祫閲� - HongBaoOrder tempHongBaoOrder = notificationMap.get(type); - tempHongBaoOrder.getCommonOrder() - .setPayment(tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment())); + // 鍔犲叆閫氱煡 + if (notificationMap.get(type) == null) { + HongBaoV2 tempHongBao = new HongBaoV2(oldHongBao.getId()); + tempHongBao.setUserInfo(oldHongBao.getUserInfo()); + tempHongBao.setMoney(hongBao.getMoney()); + CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId()); + tempCommonOrder.setPayment(commonOrder.getPayment()); + tempCommonOrder.setThirdCreateTime(commonOrder.getThirdCreateTime()); + notificationMap.put(type, new HongBaoOrder(tempCommonOrder, tempHongBao)); + } else { + // 澧炲姞浠樻閲戦涓庤祫閲� + HongBaoOrder tempHongBaoOrder = notificationMap.get(type); + tempHongBaoOrder.getCommonOrder() + .setPayment(tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment())); - tempHongBaoOrder.getHongBaoV2() - .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(hongBao.getMoney())); - notificationMap.put(type, tempHongBaoOrder); - } + tempHongBaoOrder.getHongBaoV2() + .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(hongBao.getMoney())); + notificationMap.put(type, tempHongBaoOrder); + } - // 鑾峰彇瀛愮孩鍖� - List<HongBaoV2> children = hongBaoV2Mapper.listChildrenById(hongBao.getId()); - if (children != null && children.size() > 0) { - List<UserTeamLevel> bossList = getBossList(children); + // 鑾峰彇瀛愮孩鍖� + List<HongBaoV2> children = hongBaoV2Mapper.listChildrenById(hongBao.getId()); + if (children != null && children.size() > 0) { + List<UserTeamLevel> bossList = getBossList(children); - for (HongBaoV2 child : children) { - if (child.getState() == HongBaoV2.STATE_YILINGQU) - continue; + for (HongBaoV2 child : children) { + if (child.getState() == HongBaoV2.STATE_YILINGQU) + continue; - if (child.getType() == HongBaoV2.TYPE_YIJI) { - money = orderHongBaoMoneyComputeService.computeFirstInviteMoney(commonOrder, buyerLevel, - bossList); - } else if (child.getType() == HongBaoV2.TYPE_ERJI) { - money = orderHongBaoMoneyComputeService.computeSecondInviteMoney(commonOrder, buyerLevel, - bossList); - } + if (child.getType() == HongBaoV2.TYPE_YIJI) { + money = orderHongBaoMoneyComputeService.computeFirstInviteMoney(commonOrder, buyerLevel, + bossList); + } else if (child.getType() == HongBaoV2.TYPE_ERJI) { + money = orderHongBaoMoneyComputeService.computeSecondInviteMoney(commonOrder, buyerLevel, + bossList); + } - HongBaoV2 childUpdate = createInviteUpdateHongBao(child, hongBao.getState(), money, commonOrder); - hongBaoV2Mapper.updateByPrimaryKeySelective(childUpdate); + HongBaoV2 childUpdate = createInviteUpdateHongBao(child, hongBao.getState(), money, commonOrder); + hongBaoV2Mapper.updateByPrimaryKeySelective(childUpdate); - // 鍔犲叆閫氱煡 - if (notificationMap.get(child.getType()) == null) { - HongBaoV2 tempHongBao = new HongBaoV2(child.getId()); - tempHongBao.setUserInfo(child.getUserInfo()); - tempHongBao.setMoney(child.getMoney()); - CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId()); - tempCommonOrder.setPayment(commonOrder.getPayment()); - tempCommonOrder.setThirdCreateTime(commonOrder.getThirdCreateTime()); - notificationMap.put(child.getType(), new HongBaoOrder(tempCommonOrder, tempHongBao)); - } else { - // 澧炲姞浠樻閲戦涓庤祫閲� - HongBaoOrder tempHongBaoOrder = notificationMap.get(child.getType()); - tempHongBaoOrder.getCommonOrder().setPayment( - tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment())); - tempHongBaoOrder.getHongBaoV2() - .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(child.getMoney())); - notificationMap.put(child.getType(), tempHongBaoOrder); - } - } - } else {// 淇涔嬪墠浜岀骇,涓夌骇璁㈠崟鏈粺璁″埌鐨勬儏鍐� - if (!mianDan) { - ThreeSale threeSale = threeSaleSerivce.selectByWorkerId(commonOrder.getUserInfo().getId()); - if (threeSale != null && threeSale.getSucceedTime() != null - && threeSale.getSucceedTime() <= placeOrderTime.getTime()) { - UserInfo boss = threeSaleSerivce.getBoss(commonOrder.getUserInfo().getId()); - if (boss != null) { - boss = userInfoService.selectAvailableByPrimaryKey(boss.getId()); - } + // 鍔犲叆閫氱煡 + if (notificationMap.get(child.getType()) == null) { + HongBaoV2 tempHongBao = new HongBaoV2(child.getId()); + tempHongBao.setUserInfo(child.getUserInfo()); + tempHongBao.setMoney(child.getMoney()); + CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId()); + tempCommonOrder.setPayment(commonOrder.getPayment()); + tempCommonOrder.setThirdCreateTime(commonOrder.getThirdCreateTime()); + notificationMap.put(child.getType(), new HongBaoOrder(tempCommonOrder, tempHongBao)); + } else { + // 澧炲姞浠樻閲戦涓庤祫閲� + HongBaoOrder tempHongBaoOrder = notificationMap.get(child.getType()); + tempHongBaoOrder.getCommonOrder().setPayment( + tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment())); + tempHongBaoOrder.getHongBaoV2() + .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(child.getMoney())); + notificationMap.put(child.getType(), tempHongBaoOrder); + } + } + } else {// 淇涔嬪墠浜岀骇,涓夌骇璁㈠崟鏈粺璁″埌鐨勬儏鍐� + if (!mianDan) { + ThreeSale threeSale = threeSaleSerivce.selectByWorkerId(commonOrder.getUserInfo().getId()); + if (threeSale != null && threeSale.getSucceedTime() != null + && threeSale.getSucceedTime() <= placeOrderTime.getTime()) { + UserInfo boss = threeSaleSerivce.getBoss(commonOrder.getUserInfo().getId()); + if (boss != null) { + boss = userInfoService.selectAvailableByPrimaryKey(boss.getId()); + } - if (boss != null) { - List<UserTeamLevel> bossList = getBossList(oldHongBao.getUserInfo().getId(), 2); + if (boss != null) { + List<UserTeamLevel> bossList = getBossList(oldHongBao.getUserInfo().getId(), 2); - // 鎻掑叆涓�绾у瓙绾㈠寘 - money = orderHongBaoMoneyComputeService.computeFirstInviteMoney(commonOrder, buyerLevel, - bossList); - UserLevelEnum bossUserLevel = userLevelManager.getUserLevel(boss.getId()); - if (money != null) { - HongBaoV2 firstHongbao = createInviteHongBao(boss.getId(), oldHongBao, commonOrder, - HongBaoV2.TYPE_YIJI, money, bossUserLevel); - if (firstHongbao != null) - addInviteHongBao(firstHongbao, null, notificationMap, commonOrder); - } - boss = threeSaleSerivce.getBoss(boss.getId()); - if (boss != null) { - boss = userInfoService.selectAvailableByPrimaryKey(boss.getId()); - } - if (boss != null) { - money = orderHongBaoMoneyComputeService.computeSecondInviteMoney(commonOrder, - buyerLevel, bossList); - bossUserLevel = userLevelManager.getUserLevel(boss.getId()); - if (money != null) { - HongBaoV2 secondHongbao = createInviteHongBao(boss.getId(), oldHongBao, commonOrder, - HongBaoV2.TYPE_ERJI, money, bossUserLevel); - if (secondHongbao != null) - addInviteHongBao(secondHongbao, null, notificationMap, commonOrder); - } - } - } - } - } - } - } else if (type == HongBaoV2.TYPE_SHARE_GOODS) { + // 鎻掑叆涓�绾у瓙绾㈠寘 + money = orderHongBaoMoneyComputeService.computeFirstInviteMoney(commonOrder, buyerLevel, + bossList); + UserLevelEnum bossUserLevel = userLevelManager.getUserLevel(boss.getId()); + if (money != null) { + HongBaoV2 firstHongbao = createInviteHongBao(boss.getId(), oldHongBao, commonOrder, + HongBaoV2.TYPE_YIJI, money, bossUserLevel); + if (firstHongbao != null) + addInviteHongBao(firstHongbao, null, notificationMap, commonOrder); + } + boss = threeSaleSerivce.getBoss(boss.getId()); + if (boss != null) { + boss = userInfoService.selectAvailableByPrimaryKey(boss.getId()); + } + if (boss != null) { + money = orderHongBaoMoneyComputeService.computeSecondInviteMoney(commonOrder, + buyerLevel, bossList); + bossUserLevel = userLevelManager.getUserLevel(boss.getId()); + if (money != null) { + HongBaoV2 secondHongbao = createInviteHongBao(boss.getId(), oldHongBao, commonOrder, + HongBaoV2.TYPE_ERJI, money, bossUserLevel); + if (secondHongbao != null) + addInviteHongBao(secondHongbao, null, notificationMap, commonOrder); + } + } + } + } + } + } + } else if (type == HongBaoV2.TYPE_SHARE_GOODS) { - BigDecimal money = orderHongBaoMoneyComputeService.computeShareMoney(commonOrder, buyerLevel); + BigDecimal money = orderHongBaoMoneyComputeService.computeShareMoney(commonOrder, buyerLevel); - HongBaoV2 hongBao = createShareUpdateHongBao(commonOrder, money, oldHongBao.getId()); - hongBaoV2Mapper.updateByPrimaryKeySelective(hongBao); - // 閫氱煡 - if (notificationMap.get(type) == null) { - HongBaoV2 tempHongBao = new HongBaoV2(hongBao.getId()); - tempHongBao.setUserInfo(hongBaoOrder.getHongBaoV2().getUserInfo()); - tempHongBao.setMoney(hongBao.getMoney()); - CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId()); - tempCommonOrder.setPayment(commonOrder.getPayment()); - tempCommonOrder.setThirdCreateTime(commonOrder.getThirdCreateTime()); - notificationMap.put(type, new HongBaoOrder(tempCommonOrder, tempHongBao)); - } else { - // 澧炲姞浠樻閲戦涓庤祫閲� - HongBaoOrder tempHongBaoOrder = notificationMap.get(type); - tempHongBaoOrder.getCommonOrder() - .setPayment(tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment())); - tempHongBaoOrder.getHongBaoV2() - .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(hongBao.getMoney())); - notificationMap.put(type, tempHongBaoOrder); - } + HongBaoV2 hongBao = createShareUpdateHongBao(commonOrder, money, oldHongBao.getId()); + hongBaoV2Mapper.updateByPrimaryKeySelective(hongBao); + // 閫氱煡 + if (notificationMap.get(type) == null) { + HongBaoV2 tempHongBao = new HongBaoV2(hongBao.getId()); + tempHongBao.setUserInfo(hongBaoOrder.getHongBaoV2().getUserInfo()); + tempHongBao.setMoney(hongBao.getMoney()); + CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId()); + tempCommonOrder.setPayment(commonOrder.getPayment()); + tempCommonOrder.setThirdCreateTime(commonOrder.getThirdCreateTime()); + notificationMap.put(type, new HongBaoOrder(tempCommonOrder, tempHongBao)); + } else { + // 澧炲姞浠樻閲戦涓庤祫閲� + HongBaoOrder tempHongBaoOrder = notificationMap.get(type); + tempHongBaoOrder.getCommonOrder() + .setPayment(tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment())); + tempHongBaoOrder.getHongBaoV2() + .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(hongBao.getMoney())); + notificationMap.put(type, tempHongBaoOrder); + } - // 鑾峰彇瀛愮孩鍖� - List<HongBaoV2> children = hongBaoV2Mapper.listChildrenById(hongBao.getId()); - if (children != null && children.size() > 0) { - List<UserTeamLevel> bossList = getBossList(children); - for (HongBaoV2 child : children) { - if (child.getState() == HongBaoV2.STATE_YILINGQU) - continue; + // 鑾峰彇瀛愮孩鍖� + List<HongBaoV2> children = hongBaoV2Mapper.listChildrenById(hongBao.getId()); + if (children != null && children.size() > 0) { + List<UserTeamLevel> bossList = getBossList(children); + for (HongBaoV2 child : children) { + if (child.getState() == HongBaoV2.STATE_YILINGQU) + continue; - if (child.getType() == HongBaoV2.TYPE_SHARE_YIJI) { - money = orderHongBaoMoneyComputeService.computeFirstInviteMoney(commonOrder, buyerLevel, - bossList); - } else if (child.getType() == HongBaoV2.TYPE_SHARE_ERJI) { - money = orderHongBaoMoneyComputeService.computeSecondInviteMoney(commonOrder, buyerLevel, - bossList); - } - HongBaoV2 childUpdate = createInviteUpdateHongBao(child, hongBao.getState(), money, commonOrder); - hongBaoV2Mapper.updateByPrimaryKeySelective(childUpdate); - // 娣诲姞閫氱煡 - if (notificationMap.get(child.getType()) == null) { - HongBaoV2 tempHongBao = new HongBaoV2(child.getId()); - tempHongBao.setUserInfo(child.getUserInfo()); - tempHongBao - .setMoney(childUpdate.getMoney() == null ? new BigDecimal(0) : childUpdate.getMoney()); - CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId()); - tempCommonOrder.setPayment(commonOrder.getPayment()); - tempCommonOrder.setThirdCreateTime(commonOrder.getThirdCreateTime()); - notificationMap.put(child.getType(), new HongBaoOrder(tempCommonOrder, tempHongBao)); - } else { - // 澧炲姞浠樻閲戦涓庤祫閲� - HongBaoOrder tempHongBaoOrder = notificationMap.get(child.getType()); - if (commonOrder.getPayment() != null) - tempHongBaoOrder.getCommonOrder().setPayment( - tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment())); - if (childUpdate.getMoney() != null) - tempHongBaoOrder.getHongBaoV2() - .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(childUpdate.getMoney())); - notificationMap.put(child.getType(), tempHongBaoOrder); - } + if (child.getType() == HongBaoV2.TYPE_SHARE_YIJI) { + money = orderHongBaoMoneyComputeService.computeFirstInviteMoney(commonOrder, buyerLevel, + bossList); + } else if (child.getType() == HongBaoV2.TYPE_SHARE_ERJI) { + money = orderHongBaoMoneyComputeService.computeSecondInviteMoney(commonOrder, buyerLevel, + bossList); + } + HongBaoV2 childUpdate = createInviteUpdateHongBao(child, hongBao.getState(), money, commonOrder); + hongBaoV2Mapper.updateByPrimaryKeySelective(childUpdate); + // 娣诲姞閫氱煡 + if (notificationMap.get(child.getType()) == null) { + HongBaoV2 tempHongBao = new HongBaoV2(child.getId()); + tempHongBao.setUserInfo(child.getUserInfo()); + tempHongBao + .setMoney(childUpdate.getMoney() == null ? new BigDecimal(0) : childUpdate.getMoney()); + CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId()); + tempCommonOrder.setPayment(commonOrder.getPayment()); + tempCommonOrder.setThirdCreateTime(commonOrder.getThirdCreateTime()); + notificationMap.put(child.getType(), new HongBaoOrder(tempCommonOrder, tempHongBao)); + } else { + // 澧炲姞浠樻閲戦涓庤祫閲� + HongBaoOrder tempHongBaoOrder = notificationMap.get(child.getType()); + if (commonOrder.getPayment() != null) + tempHongBaoOrder.getCommonOrder().setPayment( + tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment())); + if (childUpdate.getMoney() != null) + tempHongBaoOrder.getHongBaoV2() + .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(childUpdate.getMoney())); + notificationMap.put(child.getType(), tempHongBaoOrder); + } - } - } - } else - throw new HongBaoException(2, "type閿欒"); + } + } + } else + throw new HongBaoException(2, "type閿欒"); - return true; - } + return true; + } - @Transactional(rollbackFor = Exception.class) - private HongBaoSaveResult saveHongBao(CommonOrder commonOrder, int type, Map<Integer, HongBaoOrder> notificationMap, - UserLevelEnum buyerLevel, Date placeOrderDate) throws HongBaoException, UserAccountException { + private HongBaoSaveResult saveHongBao(CommonOrder commonOrder, int type, Map<Integer, HongBaoOrder> notificationMap, + UserLevelEnum buyerLevel, Date placeOrderDate) throws HongBaoException, UserAccountException { + SystemEnum system = userInfoService.getUserSystem(commonOrder.getUserInfo().getId()); + if (type == HongBaoV2.TYPE_ZIGOU) { + // 鏌ヨ鏄惁鏈夊厤鍗曡鍒� + BigDecimal mianDanMoney = null; + if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_FK) { + List<CommonOrder> orderList = commonOrderService.listBySourceTypeAndOrderId(commonOrder.getSourceType(), + commonOrder.getOrderNo()); + if (orderList != null && orderList.size() == 1) {// 鍙湁1涓鍗曟墠鍙備笌鍏嶅崟 + BigDecimal payMent = commonOrder.getPayment(); + if (commonOrder.getState() == CommonOrder.STATE_JS) + payMent = commonOrder.getSettlement(); + CommonOrderGoods goods = commonOrderGoodsMapper + .selectByPrimaryKey(commonOrder.getCommonOrderGoods().getId()); + if (goods != null) { + try { + if (userSystemCouponService.updateCouponRecordUsed(commonOrder.getUserInfo().getId(), + commonOrder.getOrderNo(), payMent, Long.parseLong(goods.getGoodsId()), commonOrder.getSourceType())) + mianDanMoney = payMent; + } catch (NumberFormatException e) { + throw new HongBaoException(10, "鍏嶅崟鍟嗗搧澶勭悊鍑洪敊"); + } catch (Exception e) { + e.printStackTrace(); + throw new HongBaoException(11, "鍏嶅崟鍟嗗搧澶勭悊鍑洪敊"); + } + } + } + } else if (commonOrder.getState() == CommonOrder.STATE_SX) {// 璁剧疆鍏嶅崟鍒稿け鏁� + commonOrder.setPayment(new BigDecimal(0));// 璁㈠崟澶辨晥鍚庣殑浠樻閲戦璁剧疆涓�0 + try { + userSystemCouponService.updateStateByDrawback(commonOrder.getOrderNo(), commonOrder.getSourceType()); + } catch (Exception e) { + e.printStackTrace(); + } + } - if (type == HongBaoV2.TYPE_ZIGOU) { - // 鏌ヨ鏄惁鏈夊厤鍗曡鍒� - BigDecimal mianDanMoney = null; - if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_FK) { - List<CommonOrder> orderList = commonOrderService.listBySourceTypeAndOrderId(commonOrder.getSourceType(), - commonOrder.getOrderNo()); - if (orderList != null && orderList.size() == 1) {// 鍙湁1涓鍗曟墠鍙備笌鍏嶅崟 - BigDecimal payMent = commonOrder.getPayment(); - if (commonOrder.getState() == CommonOrder.STATE_JS) - payMent = commonOrder.getSettlement(); - CommonOrderGoods goods = commonOrderGoodsMapper - .selectByPrimaryKey(commonOrder.getCommonOrderGoods().getId()); - if (goods != null) { - try { - if (userSystemCouponService.updateCouponRecordUsed(commonOrder.getUserInfo().getId(), - commonOrder.getOrderNo(), payMent, Long.parseLong(goods.getGoodsId()),commonOrder.getSourceType())) - mianDanMoney = payMent; - } catch (NumberFormatException e) { - throw new HongBaoException(10, "鍏嶅崟鍟嗗搧澶勭悊鍑洪敊"); - } catch (Exception e) { - e.printStackTrace(); - throw new HongBaoException(11, "鍏嶅崟鍟嗗搧澶勭悊鍑洪敊"); - } - } - } - } else if (commonOrder.getState() == CommonOrder.STATE_SX) {// 璁剧疆鍏嶅崟鍒稿け鏁� - commonOrder.setPayment(new BigDecimal(0));// 璁㈠崟澶辨晥鍚庣殑浠樻閲戦璁剧疆涓�0 - try { - userSystemCouponService.updateStateByDrawback(commonOrder.getOrderNo(),commonOrder.getSourceType()); - } catch (Exception e) { - e.printStackTrace(); - } - } - - HongBaoV2 hongBao = createFanLiHongBao(commonOrder, - orderHongBaoMoneyComputeService.computeFanliMoney(commonOrder, buyerLevel), mianDanMoney, - buyerLevel); - if (hongBao == null) - return new HongBaoSaveResult(false, mianDanMoney != null); - addFanLiOrShareHongBao(hongBao, commonOrder, notificationMap); - UserInfo boss = threeSaleSerivce.getBoss(hongBao.getUserInfo().getId()); - if (boss != null && hongBao.getState() != HongBaoV2.STATE_SHIXIAO && mianDanMoney == null) {// 1绾OSS瀛樺湪涓旂孩鍖呮湭澶辨晥,鍏嶅崟涓嶆敮鎸佸绾у垎閿� + HongBaoV2 hongBao = createFanLiHongBao(commonOrder, + orderHongBaoMoneyComputeService.computeFanliMoney(commonOrder, buyerLevel), mianDanMoney, + buyerLevel); + if (hongBao == null) + return new HongBaoSaveResult(false, mianDanMoney != null); + addFanLiOrShareHongBao(hongBao, commonOrder, notificationMap); + UserInfo boss = threeSaleSerivce.getBoss(hongBao.getUserInfo().getId()); + if (boss != null && hongBao.getState() != HongBaoV2.STATE_SHIXIAO && mianDanMoney == null) {// 1绾OSS瀛樺湪涓旂孩鍖呮湭澶辨晥,鍏嶅崟涓嶆敮鎸佸绾у垎閿� - List<UserTeamLevel> bossList = getBossList(hongBao.getUserInfo().getId(), 2); + List<UserTeamLevel> bossList = getBossList(hongBao.getUserInfo().getId(), 2); - BigDecimal money = orderHongBaoMoneyComputeService.computeFirstInviteMoney(commonOrder, buyerLevel, - bossList); - if (money == null)// 杩斿埄璧勯噾涓虹┖涓嶅弬涓庡垎鎴� - return new HongBaoSaveResult(true, mianDanMoney != null); + BigDecimal money = orderHongBaoMoneyComputeService.computeFirstInviteMoney(commonOrder, buyerLevel, + bossList); + if (money == null)// 杩斿埄璧勯噾涓虹┖涓嶅弬涓庡垎鎴� + return new HongBaoSaveResult(true, mianDanMoney != null); - UserLevelEnum bossLevel = userLevelManager.getUserLevel(boss.getId()); + UserLevelEnum bossLevel = userLevelManager.getUserLevel(boss.getId()); - HongBaoV2 firstHongbao = createInviteHongBao(boss.getId(), hongBao, commonOrder, HongBaoV2.TYPE_YIJI, - money, bossLevel); + HongBaoV2 firstHongbao = createInviteHongBao(boss.getId(), hongBao, commonOrder, HongBaoV2.TYPE_YIJI, + money, bossLevel); - addInviteHongBao(firstHongbao, null, notificationMap, commonOrder); + addInviteHongBao(firstHongbao, null, notificationMap, commonOrder); - // 鎻掑叆浜岀骇瀛愮孩鍖� - boss = threeSaleSerivce.getBoss(boss.getId()); - if (boss != null) {// 浜岀骇BOSS瀛樺湪涓旀槸闈炰細鍛樿鍗� - money = orderHongBaoMoneyComputeService.computeSecondInviteMoney(commonOrder, buyerLevel, bossList); - bossLevel = userLevelManager.getUserLevel(boss.getId()); - if (money == null) - return new HongBaoSaveResult(true, mianDanMoney != null); - HongBaoV2 secondHongbao = createInviteHongBao(boss.getId(), hongBao, commonOrder, - HongBaoV2.TYPE_ERJI, money, bossLevel); - addInviteHongBao(secondHongbao, null, notificationMap, commonOrder); - } - } + // 鎻掑叆浜岀骇瀛愮孩鍖� + boss = threeSaleSerivce.getBoss(boss.getId()); + if (boss != null) {// 浜岀骇BOSS瀛樺湪涓旀槸闈炰細鍛樿鍗� + money = orderHongBaoMoneyComputeService.computeSecondInviteMoney(commonOrder, buyerLevel, bossList); + bossLevel = userLevelManager.getUserLevel(boss.getId()); + if (money == null) + return new HongBaoSaveResult(true, mianDanMoney != null); + HongBaoV2 secondHongbao = createInviteHongBao(boss.getId(), hongBao, commonOrder, + HongBaoV2.TYPE_ERJI, money, bossLevel); + addInviteHongBao(secondHongbao, null, notificationMap, commonOrder); + } + } - } else if (type == HongBaoV2.TYPE_SHARE_GOODS) { - // 鍒嗕韩璧氫笉鍔犲叆澶辨晥鐨勮鍗� - if (commonOrder.getState() == CommonOrder.STATE_SX || commonOrder.getState() == CommonOrder.STATE_WQ) - return new HongBaoSaveResult(false, false); - // 鍒嗕韩璧� - BigDecimal money = null; - if (commonOrder.getSourceType() == Constant.SOURCE_TYPE_TAOBAO - && commonOrder.getSourcePosition().equalsIgnoreCase(TaoBaoConstant.TAOBAO_TLJ_RELATION_PID_DEFAULT))// 鏉ヨ嚜浜庢窐绀奸噾鐨勫垎浜� - { - BigDecimal shareRate = hongBaoManageService.getTLJShareRate(commonOrder.getCreateTime().getTime()); - if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_WQ) - money = MoneyBigDecimalUtil.mul(commonOrder.geteIncome(), - MoneyBigDecimalUtil.div(shareRate, new BigDecimal(100))); - else - money = MoneyBigDecimalUtil.mul(commonOrder.getEstimate(), - MoneyBigDecimalUtil.div(shareRate, new BigDecimal(100))); - } else - money = orderHongBaoMoneyComputeService.computeShareMoney(commonOrder, buyerLevel); + } else if (type == HongBaoV2.TYPE_SHARE_GOODS) { + // 鍒嗕韩璧氫笉鍔犲叆澶辨晥鐨勮鍗� + if (commonOrder.getState() == CommonOrder.STATE_SX || commonOrder.getState() == CommonOrder.STATE_WQ) + return new HongBaoSaveResult(false, false); + // 鍒嗕韩璧� + BigDecimal money = null; + if (commonOrder.getSourceType() == Constant.SOURCE_TYPE_TAOBAO + && commonOrder.getSourcePosition().equalsIgnoreCase(TaoBaoConstant.TAOBAO_TLJ_RELATION_PID_DEFAULT))// 鏉ヨ嚜浜庢窐绀奸噾鐨勫垎浜� + { + BigDecimal shareRate = hongBaoManageService.getTLJShareRate(commonOrder.getCreateTime().getTime(), system); + if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_WQ) + money = MoneyBigDecimalUtil.mul(commonOrder.geteIncome(), + MoneyBigDecimalUtil.div(shareRate, new BigDecimal(100))); + else + money = MoneyBigDecimalUtil.mul(commonOrder.getEstimate(), + MoneyBigDecimalUtil.div(shareRate, new BigDecimal(100))); + } else + money = orderHongBaoMoneyComputeService.computeShareMoney(commonOrder, buyerLevel); - if (money == null || money.compareTo(new BigDecimal(0)) <= 0) - return new HongBaoSaveResult(false, false); - HongBaoV2 hongBao = createShareHongBao(commonOrder, money, buyerLevel); - if (hongBao == null) - return new HongBaoSaveResult(false, false); - addFanLiOrShareHongBao(hongBao, commonOrder, notificationMap); - // 4鏈�17鏃ュ悗鎵嶆湁涓�绾у垎浜禋 - if (placeOrderDate.getTime() > TimeUtil.convertToTimeTemp("2019-04-17", "yyyy-MM-dd")) { - UserInfo boss = threeSaleSerivce.getBoss(hongBao.getUserInfo().getId()); - if (boss != null) { + if (money == null || money.compareTo(new BigDecimal(0)) <= 0) + return new HongBaoSaveResult(false, false); + HongBaoV2 hongBao = createShareHongBao(commonOrder, money, buyerLevel); + if (hongBao == null) + return new HongBaoSaveResult(false, false); + addFanLiOrShareHongBao(hongBao, commonOrder, notificationMap); + // 4鏈�17鏃ュ悗鎵嶆湁涓�绾у垎浜禋 + if (placeOrderDate.getTime() > TimeUtil.convertToTimeTemp("2019-04-17", "yyyy-MM-dd")) { + UserInfo boss = threeSaleSerivce.getBoss(hongBao.getUserInfo().getId()); + if (boss != null) { - List<UserTeamLevel> bossList = getBossList(hongBao.getUserInfo().getId(), 2); + List<UserTeamLevel> bossList = getBossList(hongBao.getUserInfo().getId(), 2); - money = orderHongBaoMoneyComputeService.computeFirstInviteMoney(commonOrder, buyerLevel, bossList); - if (money == null) - return new HongBaoSaveResult(true, false); - UserLevelEnum bossLevel = userLevelManager.getUserLevel(boss.getId()); - HongBaoV2 firstHongbao = createInviteHongBao(boss.getId(), hongBao, commonOrder, - HongBaoV2.TYPE_SHARE_YIJI, money, bossLevel); + money = orderHongBaoMoneyComputeService.computeFirstInviteMoney(commonOrder, buyerLevel, bossList); + if (money == null) + return new HongBaoSaveResult(true, false); + UserLevelEnum bossLevel = userLevelManager.getUserLevel(boss.getId()); + HongBaoV2 firstHongbao = createInviteHongBao(boss.getId(), hongBao, commonOrder, + HongBaoV2.TYPE_SHARE_YIJI, money, bossLevel); - addInviteHongBao(firstHongbao, hongBao.getUserInfo().getNickName(), notificationMap, commonOrder); + addInviteHongBao(firstHongbao, hongBao.getUserInfo().getNickName(), notificationMap, commonOrder); - // 浜岀骇鍒嗕韩璧� - boss = threeSaleSerivce.getBoss(boss.getId()); - if (boss != null) { - money = orderHongBaoMoneyComputeService.computeSecondInviteMoney(commonOrder, buyerLevel, - bossList); - if (money == null)// 杩斿埄姣斾緥涓�0灏变笉缁熻 - return new HongBaoSaveResult(true, false); - bossLevel = userLevelManager.getUserLevel(boss.getId()); - HongBaoV2 secondChild = createInviteHongBao(boss.getId(), hongBao, commonOrder, - HongBaoV2.TYPE_SHARE_ERJI, money, bossLevel); - addInviteHongBao(secondChild, null, notificationMap, commonOrder); - } - } - } + // 浜岀骇鍒嗕韩璧� + boss = threeSaleSerivce.getBoss(boss.getId()); + if (boss != null) { + money = orderHongBaoMoneyComputeService.computeSecondInviteMoney(commonOrder, buyerLevel, + bossList); + if (money == null)// 杩斿埄姣斾緥涓�0灏变笉缁熻 + return new HongBaoSaveResult(true, false); + bossLevel = userLevelManager.getUserLevel(boss.getId()); + HongBaoV2 secondChild = createInviteHongBao(boss.getId(), hongBao, commonOrder, + HongBaoV2.TYPE_SHARE_ERJI, money, bossLevel); + addInviteHongBao(secondChild, null, notificationMap, commonOrder); + } + } + } - // 淇敼缁熻鏁版嵁 - Long goodsId = commonOrder.getCommonOrderGoods().getId(); - // 鏌ヨ鍟嗗搧 - CommonOrderGoods goods = commonOrderGoodsMapper.selectByPrimaryKey(goodsId); + // 淇敼缁熻鏁版嵁 + Long goodsId = commonOrder.getCommonOrderGoods().getId(); + // 鏌ヨ鍟嗗搧 + CommonOrderGoods goods = commonOrderGoodsMapper.selectByPrimaryKey(goodsId); - HongBao hb = new HongBao(); - if (goods != null) - hb.setAuctionId(Long.parseLong(goods.getGoodsId())); - hb.setUserInfo(hongBao.getUserInfo()); - hb.setMoney(hongBao.getMoney()); + HongBao hb = new HongBao(); + if (goods != null) + hb.setAuctionId(Long.parseLong(goods.getGoodsId())); + hb.setUserInfo(hongBao.getUserInfo()); + hb.setMoney(hongBao.getMoney()); - // TODO 鏇存柊鍒嗕韩璁板綍鏁版嵁 - // try { - // userShareGoodsGroupService.updateOrderRecord(hb, - // commonOrder.getSourceType()); - // } catch (UserShareGoodsRecordException e) { - // try { - // LogHelper.errorDetailInfo(e); - // } catch (Exception e1) { - // e1.printStackTrace(); - // } - // } - } else - throw new HongBaoException(2, "type閿欒"); + // TODO 鏇存柊鍒嗕韩璁板綍鏁版嵁 + // try { + // userShareGoodsGroupService.updateOrderRecord(hb, + // commonOrder.getSourceType()); + // } catch (UserShareGoodsRecordException e) { + // try { + // LogHelper.errorDetailInfo(e); + // } catch (Exception e1) { + // e1.printStackTrace(); + // } + // } + } else + throw new HongBaoException(2, "type閿欒"); - return new HongBaoSaveResult(true, false); - } + return new HongBaoSaveResult(true, false); + } - /** - * 娣诲姞閭�璇疯禋绾㈠寘 - * - * @param child - * @param notificationMap - * @param commonOrder - */ - private void addInviteHongBao(HongBaoV2 child, String parentHongBaoUserName, - Map<Integer, HongBaoOrder> notificationMap, CommonOrder commonOrder) { - if (child != null) { - // 鑰佺増鏈祫閲戜负0鐨勭孩鍖呬笉鍔犲叆閭�璇疯鍗� - if (child.getMoney() == null || (child.getMoney().compareTo(new BigDecimal(0)) == 0 - && commonOrder.getThirdCreateTime().getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME)) - return; + /** + * 娣诲姞閭�璇疯禋绾㈠寘 + * + * @param child + * @param notificationMap + * @param commonOrder + */ + private void addInviteHongBao(HongBaoV2 child, String parentHongBaoUserName, + Map<Integer, HongBaoOrder> notificationMap, CommonOrder commonOrder) { + if (child != null) { + // 鑰佺増鏈祫閲戜负0鐨勭孩鍖呬笉鍔犲叆閭�璇疯鍗� + if (child.getMoney() == null || (child.getMoney().compareTo(new BigDecimal(0)) == 0 + && commonOrder.getThirdCreateTime().getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME)) + return; - hongBaoV2Mapper.insertSelective(child); - // 鐢ㄦ埛閫氱煡 - if (notificationMap.get(child.getType()) == null) { - HongBaoV2 tempHongBao = new HongBaoV2(child.getId()); - tempHongBao.setUserInfo(child.getUserInfo()); - tempHongBao.setMoney(child.getMoney()); - if (child.getType() == HongBaoV2.TYPE_SHARE_YIJI) - tempHongBao.setBeizhu(parentHongBaoUserName); + hongBaoV2Mapper.insertSelective(child); + // 鐢ㄦ埛閫氱煡 + if (notificationMap.get(child.getType()) == null) { + HongBaoV2 tempHongBao = new HongBaoV2(child.getId()); + tempHongBao.setUserInfo(child.getUserInfo()); + tempHongBao.setMoney(child.getMoney()); + if (child.getType() == HongBaoV2.TYPE_SHARE_YIJI) + tempHongBao.setBeizhu(parentHongBaoUserName); - CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId()); - tempCommonOrder.setPayment(commonOrder.getPayment()); - tempCommonOrder.setThirdCreateTime(commonOrder.getThirdCreateTime()); - notificationMap.put(child.getType(), new HongBaoOrder(tempCommonOrder, tempHongBao)); - } else { - // 澧炲姞浠樻閲戦涓庤祫閲� - HongBaoOrder tempHongBaoOrder = notificationMap.get(child.getType()); - tempHongBaoOrder.getCommonOrder() - .setPayment(tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment())); - tempHongBaoOrder.getHongBaoV2() - .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(child.getMoney())); - notificationMap.put(child.getType(), tempHongBaoOrder); - } - } - } + CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId()); + tempCommonOrder.setPayment(commonOrder.getPayment()); + tempCommonOrder.setThirdCreateTime(commonOrder.getThirdCreateTime()); + notificationMap.put(child.getType(), new HongBaoOrder(tempCommonOrder, tempHongBao)); + } else { + // 澧炲姞浠樻閲戦涓庤祫閲� + HongBaoOrder tempHongBaoOrder = notificationMap.get(child.getType()); + tempHongBaoOrder.getCommonOrder() + .setPayment(tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment())); + tempHongBaoOrder.getHongBaoV2() + .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(child.getMoney())); + notificationMap.put(child.getType(), tempHongBaoOrder); + } + } + } - /** - * 鍒涘缓閭�璇风孩鍖� - * - * @param uid - * @param parent - * @param commonOrder - * @param hongBaoType - * @param money - * @return - */ - private HongBaoV2 createInviteHongBao(Long uid, HongBaoV2 parent, CommonOrder commonOrder, int hongBaoType, - BigDecimal money, UserLevelEnum userLevel) { - if (parent == null) - return null; - if (parent.getState() == HongBaoV2.STATE_SHIXIAO) - return null; - UserInfo user = userInfoService.selectAvailableByPrimaryKey(uid); - if (user == null) - return null; + /** + * 鍒涘缓閭�璇风孩鍖� + * + * @param uid + * @param parent + * @param commonOrder + * @param hongBaoType + * @param money + * @return + */ + private HongBaoV2 createInviteHongBao(Long uid, HongBaoV2 parent, CommonOrder commonOrder, int hongBaoType, + BigDecimal money, UserLevelEnum userLevel) { + if (parent == null) + return null; + if (parent.getState() == HongBaoV2.STATE_SHIXIAO) + return null; + UserInfo user = userInfoService.selectAvailableByPrimaryKey(uid); + if (user == null) + return null; - HongBaoV2 child = new HongBaoV2(); - child.setParent(parent); - child.setType(hongBaoType); - child.setMoney(money); + HongBaoV2 child = new HongBaoV2(); + child.setParent(parent); + child.setType(hongBaoType); + child.setMoney(money); - if (commonOrder.getState() == CommonOrder.STATE_FK) { - child.setState(HongBaoV2.STATE_BUKELINGQU); - } else if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_WQ) { - child.setState(HongBaoV2.STATE_KELINGQU); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(commonOrder.getSettleTime()); - calendar.add(Calendar.MONTH, 1); - child.setPreGetTime(new Date(TimeUtil.convertToTimeTemp( - calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-25", "yyyy-M-dd"))); - } + if (commonOrder.getState() == CommonOrder.STATE_FK) { + child.setState(HongBaoV2.STATE_BUKELINGQU); + } else if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_WQ) { + child.setState(HongBaoV2.STATE_KELINGQU); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(commonOrder.getSettleTime()); + calendar.add(Calendar.MONTH, 1); + child.setPreGetTime(new Date(TimeUtil.convertToTimeTemp( + calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-25", "yyyy-M-dd"))); + } - child.setUserInfo(user); - child.setUrank(userLevel.getOrderRank()); - child.setVersion(2); - child.setCreateTime(new Date()); - child.setOrderType(commonOrder.getSourceType()); - if (child.getMoney() == null) - return null; - return child; - } + child.setUserInfo(user); + child.setUrank(userLevel.getOrderRank()); + child.setVersion(2); + child.setCreateTime(new Date()); + child.setOrderType(commonOrder.getSourceType()); + if (child.getMoney() == null) + return null; + return child; + } - /** - * - * @param commonOrder - * - 璁㈠崟淇℃伅 - * @param fanliRate - * -杩斿埄姣斾緥 - * @param mianDanMoney - * 鍏嶅崟閲戦 - * @param isVIP-鏄惁涓篤IP璁㈠崟 - * @return - * @throws HongBaoException - * @throws UserAccountException - */ - private HongBaoV2 createFanLiHongBao(CommonOrder commonOrder, BigDecimal money, BigDecimal mianDanMoney, - UserLevelEnum userLevel) throws HongBaoException, UserAccountException { - HongBaoV2 hongBao = new HongBaoV2(); - hongBao.setUserInfo(commonOrder.getUserInfo()); - hongBao.setCreateTime(new Date()); - hongBao.setType(HongBaoV2.TYPE_ZIGOU); - hongBao.setVersion(2); - hongBao.setMoney(money); - if (commonOrder.getState() == CommonOrder.STATE_FK) { - hongBao.setState(HongBaoV2.STATE_BUKELINGQU); + /** + * @param commonOrder + * @param money + * @param mianDanMoney + * @param userLevel + * @return + * @throws HongBaoException + * @throws UserAccountException + */ + private HongBaoV2 createFanLiHongBao(CommonOrder commonOrder, BigDecimal money, BigDecimal mianDanMoney, + UserLevelEnum userLevel) throws HongBaoException, UserAccountException { + HongBaoV2 hongBao = new HongBaoV2(); + hongBao.setUserInfo(commonOrder.getUserInfo()); + hongBao.setCreateTime(new Date()); + hongBao.setType(HongBaoV2.TYPE_ZIGOU); + hongBao.setVersion(2); + hongBao.setMoney(money); + if (commonOrder.getState() == CommonOrder.STATE_FK) { + hongBao.setState(HongBaoV2.STATE_BUKELINGQU); - } else if (commonOrder.getState() == CommonOrder.STATE_JS || CommonOrder.STATE_WQ == commonOrder.getState()) { - hongBao.setState(HongBaoV2.STATE_KELINGQU); - if (commonOrder.getSourceType() == Constant.SOURCE_TYPE_PDD)// 鎷煎澶�15澶╁崐鍒拌处 - hongBao.setPreGetTime(new Date( - commonOrder.getSettleTime().getTime() + 1000 * 60 * 60 * 24 * 15L + 1000 * 60 * 60 * 12L)); - else - hongBao.setPreGetTime(new Date(commonOrder.getSettleTime().getTime() + 1000 * 60 * 60 * 24 * 15L)); - } else if (commonOrder.getState() == CommonOrder.STATE_SX) { - hongBao.setState(HongBaoV2.STATE_SHIXIAO); - hongBao.setMoney(new BigDecimal(0)); - } else { - throw new HongBaoException(3, "缁存潈璁㈠崟涓嶈兘鍒涘缓绾㈠寘"); - } + } else if (commonOrder.getState() == CommonOrder.STATE_JS || CommonOrder.STATE_WQ == commonOrder.getState()) { + hongBao.setState(HongBaoV2.STATE_KELINGQU); + if (commonOrder.getSourceType() == Constant.SOURCE_TYPE_PDD)// 鎷煎澶�15澶╁崐鍒拌处 + hongBao.setPreGetTime(new Date( + commonOrder.getSettleTime().getTime() + 1000 * 60 * 60 * 24 * 15L + 1000 * 60 * 60 * 12L)); + else + hongBao.setPreGetTime(new Date(commonOrder.getSettleTime().getTime() + 1000 * 60 * 60 * 24 * 15L)); + } else if (commonOrder.getState() == CommonOrder.STATE_SX) { + hongBao.setState(HongBaoV2.STATE_SHIXIAO); + hongBao.setMoney(new BigDecimal(0)); + } else { + throw new HongBaoException(3, "缁存潈璁㈠崟涓嶈兘鍒涘缓绾㈠寘"); + } - if (mianDanMoney != null) - hongBao.setMoney(mianDanMoney); + if (mianDanMoney != null) + hongBao.setMoney(mianDanMoney); - UserInfo user = userInfoService.getUserById(commonOrder.getUserInfo().getId()); - if (user == null) - throw new UserAccountException(1001, "鐢ㄦ埛涓嶅瓨鍦�/琚皝绂�"); - hongBao.setUrank(userLevel.getOrderRank()); - hongBao.setOrderType(commonOrder.getSourceType()); - return hongBao; - } + UserInfo user = userInfoService.getUserById(commonOrder.getUserInfo().getId()); + if (user == null) + throw new UserAccountException(1001, "鐢ㄦ埛涓嶅瓨鍦�/琚皝绂�"); + hongBao.setUrank(userLevel.getOrderRank()); + hongBao.setOrderType(commonOrder.getSourceType()); + return hongBao; + } - private HongBaoV2 createFanLiUpdateHongBao(CommonOrder commonOrder, BigDecimal money, Long hongBaoId, - boolean mianDan) throws HongBaoException, UserAccountException { - HongBaoV2 hongBao = new HongBaoV2(hongBaoId); - hongBao.setUpdateTime(new Date()); - hongBao.setMoney(money); - // 鏇存敼鐘舵�佷笌璧勯噾 - if (commonOrder.getState() == CommonOrder.STATE_FK) { - hongBao.setState(HongBaoV2.STATE_BUKELINGQU); + private HongBaoV2 createFanLiUpdateHongBao(CommonOrder commonOrder, BigDecimal money, Long hongBaoId, + boolean mianDan) throws HongBaoException, UserAccountException { + HongBaoV2 hongBao = new HongBaoV2(hongBaoId); + hongBao.setUpdateTime(new Date()); + hongBao.setMoney(money); + // 鏇存敼鐘舵�佷笌璧勯噾 + if (commonOrder.getState() == CommonOrder.STATE_FK) { + hongBao.setState(HongBaoV2.STATE_BUKELINGQU); - if (mianDan) - hongBao.setMoney(commonOrder.getPayment()); - } else if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_WQ) { - hongBao.setState(HongBaoV2.STATE_KELINGQU); - if (commonOrder.getSourceType() == Constant.SOURCE_TYPE_PDD)// 鎷煎澶�15澶╄繃1涓皬鏃跺埌璐� - hongBao.setPreGetTime(new Date( - commonOrder.getSettleTime().getTime() + 1000 * 60 * 60 * 24 * 15L + 1000 * 60 * 60 * 1L)); - else - hongBao.setPreGetTime(new Date(commonOrder.getSettleTime().getTime() + 1000 * 60 * 60 * 24 * 15L)); - if (mianDan) - hongBao.setMoney(commonOrder.getSettlement().compareTo(commonOrder.getPayment()) <= 0 - ? commonOrder.getSettlement() : commonOrder.getPayment());// 杩斿埄缁撶畻涓庝粯娆捐緝灏忕殑閲戦 - } else if (commonOrder.getState() == CommonOrder.STATE_SX) { - hongBao.setState(HongBaoV2.STATE_SHIXIAO); - hongBao.setMoney(new BigDecimal(0)); - } - return hongBao; - } + if (mianDan) + hongBao.setMoney(commonOrder.getPayment()); + } else if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_WQ) { + hongBao.setState(HongBaoV2.STATE_KELINGQU); + if (commonOrder.getSourceType() == Constant.SOURCE_TYPE_PDD)// 鎷煎澶�15澶╄繃1涓皬鏃跺埌璐� + hongBao.setPreGetTime(new Date( + commonOrder.getSettleTime().getTime() + 1000 * 60 * 60 * 24 * 15L + 1000 * 60 * 60 * 1L)); + else + hongBao.setPreGetTime(new Date(commonOrder.getSettleTime().getTime() + 1000 * 60 * 60 * 24 * 15L)); + if (mianDan) + hongBao.setMoney(commonOrder.getSettlement().compareTo(commonOrder.getPayment()) <= 0 + ? commonOrder.getSettlement() : commonOrder.getPayment());// 杩斿埄缁撶畻涓庝粯娆捐緝灏忕殑閲戦 + } else if (commonOrder.getState() == CommonOrder.STATE_SX) { + hongBao.setState(HongBaoV2.STATE_SHIXIAO); + hongBao.setMoney(new BigDecimal(0)); + } + return hongBao; + } - /** - * 鍒嗕韩璧氭洿鏂� - * - * @param commonOrder - * @param fanliRate - * @param hongBaoId - * @param mianDan - * @return - * @throws HongBaoException - * @throws UserAccountException - */ - private HongBaoV2 createShareUpdateHongBao(CommonOrder commonOrder, BigDecimal money, Long hongBaoId) - throws HongBaoException, UserAccountException { - HongBaoV2 hongBao = new HongBaoV2(hongBaoId); - hongBao.setUpdateTime(new Date()); - hongBao.setMoney(money); - // 鏇存敼鐘舵�佷笌璧勯噾 - if (commonOrder.getState() == CommonOrder.STATE_FK) { - hongBao.setState(HongBaoV2.STATE_BUKELINGQU); - } else if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_WQ) { - hongBao.setState(HongBaoV2.STATE_KELINGQU); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(commonOrder.getSettleTime()); - calendar.add(Calendar.MONTH, 1); - hongBao.setPreGetTime(new Date(TimeUtil.convertToTimeTemp( - calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-25", "yyyy-M-dd"))); - } else if (commonOrder.getState() == CommonOrder.STATE_SX) { - hongBao.setState(HongBaoV2.STATE_SHIXIAO); - hongBao.setMoney(new BigDecimal(0)); - } - return hongBao; - } + /** + * 鍒嗕韩璧氭洿鏂� + * + * @param commonOrder + * @param hongBaoId + * @return + * @throws HongBaoException + * @throws UserAccountException + */ + private HongBaoV2 createShareUpdateHongBao(CommonOrder commonOrder, BigDecimal money, Long hongBaoId) + throws HongBaoException, UserAccountException { + HongBaoV2 hongBao = new HongBaoV2(hongBaoId); + hongBao.setUpdateTime(new Date()); + hongBao.setMoney(money); + // 鏇存敼鐘舵�佷笌璧勯噾 + if (commonOrder.getState() == CommonOrder.STATE_FK) { + hongBao.setState(HongBaoV2.STATE_BUKELINGQU); + } else if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_WQ) { + hongBao.setState(HongBaoV2.STATE_KELINGQU); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(commonOrder.getSettleTime()); + calendar.add(Calendar.MONTH, 1); + hongBao.setPreGetTime(new Date(TimeUtil.convertToTimeTemp( + calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-25", "yyyy-M-dd"))); + } else if (commonOrder.getState() == CommonOrder.STATE_SX) { + hongBao.setState(HongBaoV2.STATE_SHIXIAO); + hongBao.setMoney(new BigDecimal(0)); + } + return hongBao; + } - private HongBaoV2 createInviteUpdateHongBao(HongBaoV2 oldChild, int mainHongBaoState, BigDecimal money, - CommonOrder commonOrder) { - HongBaoV2 childUpdate = new HongBaoV2(oldChild.getId()); - childUpdate.setState(mainHongBaoState); - childUpdate.setUpdateTime(new Date()); - childUpdate.setMoney(money); - // 浠ュ疄闄呮敹鍏ヤ负鍑嗚绠楅浼版敹鐩� - if (mainHongBaoState == HongBaoV2.STATE_KELINGQU) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(commonOrder.getSettleTime()); - calendar.add(Calendar.MONTH, 1); - childUpdate.setPreGetTime(new Date(TimeUtil.convertToTimeTemp( - calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-25", "yyyy-M-dd"))); - } - return childUpdate; - } + private HongBaoV2 createInviteUpdateHongBao(HongBaoV2 oldChild, int mainHongBaoState, BigDecimal money, + CommonOrder commonOrder) { + HongBaoV2 childUpdate = new HongBaoV2(oldChild.getId()); + childUpdate.setState(mainHongBaoState); + childUpdate.setUpdateTime(new Date()); + childUpdate.setMoney(money); + // 浠ュ疄闄呮敹鍏ヤ负鍑嗚绠楅浼版敹鐩� + if (mainHongBaoState == HongBaoV2.STATE_KELINGQU) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(commonOrder.getSettleTime()); + calendar.add(Calendar.MONTH, 1); + childUpdate.setPreGetTime(new Date(TimeUtil.convertToTimeTemp( + calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-25", "yyyy-M-dd"))); + } + return childUpdate; + } - private void addFanLiOrShareHongBao(HongBaoV2 hongBao, CommonOrder commonOrder, - Map<Integer, HongBaoOrder> notificationMap) { - hongBaoV2Mapper.insertSelective(hongBao); - // 娣诲姞绾㈠寘涓庤鍗曠殑鏄犲皠 - HongBaoOrder hongBaoOrder = new HongBaoOrder(); - hongBaoOrder.setCommonOrder(commonOrder); - hongBaoOrder.setCreateTime(new Date()); - hongBaoOrder.setHongBaoV2(hongBao); - hongBaoOrderMapper.insertSelective(hongBaoOrder); - // 鍔犲叆閫氱煡 - if (notificationMap.get(hongBao.getType()) == null) { - HongBaoV2 tempHongBao = new HongBaoV2(hongBao.getId()); - tempHongBao.setUserInfo(hongBao.getUserInfo()); - tempHongBao.setMoney(hongBao.getMoney()); - CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId()); - tempCommonOrder.setPayment(commonOrder.getPayment()); - tempCommonOrder.setThirdCreateTime(commonOrder.getThirdCreateTime()); - notificationMap.put(hongBao.getType(), new HongBaoOrder(tempCommonOrder, tempHongBao)); - } else { - // 澧炲姞浠樻閲戦涓庤祫閲� - HongBaoOrder tempHongBaoOrder = notificationMap.get(hongBao.getType()); - tempHongBaoOrder.getCommonOrder() - .setPayment(tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment())); - tempHongBaoOrder.getHongBaoV2() - .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(hongBao.getMoney())); - notificationMap.put(hongBao.getType(), tempHongBaoOrder); - } - } + private void addFanLiOrShareHongBao(HongBaoV2 hongBao, CommonOrder commonOrder, + Map<Integer, HongBaoOrder> notificationMap) { + hongBaoV2Mapper.insertSelective(hongBao); + // 娣诲姞绾㈠寘涓庤鍗曠殑鏄犲皠 + HongBaoOrder hongBaoOrder = new HongBaoOrder(); + hongBaoOrder.setCommonOrder(commonOrder); + hongBaoOrder.setCreateTime(new Date()); + hongBaoOrder.setHongBaoV2(hongBao); + hongBaoOrderMapper.insertSelective(hongBaoOrder); + // 鍔犲叆閫氱煡 + if (notificationMap.get(hongBao.getType()) == null) { + HongBaoV2 tempHongBao = new HongBaoV2(hongBao.getId()); + tempHongBao.setUserInfo(hongBao.getUserInfo()); + tempHongBao.setMoney(hongBao.getMoney()); + CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId()); + tempCommonOrder.setPayment(commonOrder.getPayment()); + tempCommonOrder.setThirdCreateTime(commonOrder.getThirdCreateTime()); + notificationMap.put(hongBao.getType(), new HongBaoOrder(tempCommonOrder, tempHongBao)); + } else { + // 澧炲姞浠樻閲戦涓庤祫閲� + HongBaoOrder tempHongBaoOrder = notificationMap.get(hongBao.getType()); + tempHongBaoOrder.getCommonOrder() + .setPayment(tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment())); + tempHongBaoOrder.getHongBaoV2() + .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(hongBao.getMoney())); + notificationMap.put(hongBao.getType(), tempHongBaoOrder); + } + } - /** - * 鍒涘缓鍒嗕韩璧氱孩鍖� - * - * @param commonOrder - * @param shareRate - * @return - * @throws HongBaoException - * @throws UserAccountException - */ - private HongBaoV2 createShareHongBao(CommonOrder commonOrder, BigDecimal money, UserLevelEnum userLevel) - throws HongBaoException, UserAccountException { - HongBaoV2 hongBao = new HongBaoV2(); - hongBao.setCreateTime(new Date()); - hongBao.setType(HongBaoV2.TYPE_SHARE_GOODS); - hongBao.setVersion(2); - hongBao.setMoney(money); - if (commonOrder.getState() == CommonOrder.STATE_FK) { - hongBao.setState(HongBaoV2.STATE_BUKELINGQU); - } else if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_WQ) { - hongBao.setState(HongBaoV2.STATE_KELINGQU); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(commonOrder.getSettleTime()); - calendar.add(Calendar.MONTH, 1); - hongBao.setPreGetTime(new Date(TimeUtil.convertToTimeTemp( - 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(userLevel.getOrderRank()); - hongBao.setUserInfo(user); - hongBao.setOrderType(commonOrder.getSourceType()); - return hongBao; - } + /** + * 鍒涘缓鍒嗕韩璧氱孩鍖� + * + * @param commonOrder + * @param shareRate + * @return + * @throws HongBaoException + * @throws UserAccountException + */ + private HongBaoV2 createShareHongBao(CommonOrder commonOrder, BigDecimal money, UserLevelEnum userLevel) + throws HongBaoException, UserAccountException { + HongBaoV2 hongBao = new HongBaoV2(); + hongBao.setCreateTime(new Date()); + hongBao.setType(HongBaoV2.TYPE_SHARE_GOODS); + hongBao.setVersion(2); + hongBao.setMoney(money); + if (commonOrder.getState() == CommonOrder.STATE_FK) { + hongBao.setState(HongBaoV2.STATE_BUKELINGQU); + } else if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_WQ) { + hongBao.setState(HongBaoV2.STATE_KELINGQU); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(commonOrder.getSettleTime()); + calendar.add(Calendar.MONTH, 1); + hongBao.setPreGetTime(new Date(TimeUtil.convertToTimeTemp( + 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(userLevel.getOrderRank()); + hongBao.setUserInfo(user); + hongBao.setOrderType(commonOrder.getSourceType()); + return hongBao; + } - class HongBaoSaveResult { - boolean add; - boolean miandan; + class HongBaoSaveResult { + boolean add; + boolean miandan; - public void setMiandan(boolean miandan) { - this.miandan = miandan; - } + public void setMiandan(boolean miandan) { + this.miandan = miandan; + } - public HongBaoSaveResult(boolean add, boolean miandan) { - super(); - this.add = add; - this.miandan = miandan; - } + public HongBaoSaveResult(boolean add, boolean miandan) { + super(); + this.add = add; + this.miandan = miandan; + } - public boolean isAdd() { - return add; - } + public boolean isAdd() { + return add; + } - public void setAdd(boolean add) { - this.add = add; - } + public void setAdd(boolean add) { + this.add = add; + } - public boolean isMiandan() { - return miandan; - } - } + public boolean isMiandan() { + return miandan; + } + } } -- Gitblit v1.8.0