From 88b54772dbcf5ecab1e2316e4e4626ac901b8908 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期二, 22 一月 2019 15:58:24 +0800 Subject: [PATCH] 邀请码添加返回状态 --- fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java | 139 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 115 insertions(+), 24 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java index 9420e0e..a4e52e1 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java @@ -1,6 +1,7 @@ package com.yeshi.fanli.service.impl.taobao; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Iterator; @@ -13,36 +14,40 @@ import org.springframework.transaction.annotation.Transactional; import com.yeshi.fanli.dao.mybatis.AccountDetailsMapper; +import com.yeshi.fanli.dao.mybatis.HongBaoV2Mapper; import com.yeshi.fanli.dao.mybatis.UserInfoMapper; -import com.yeshi.fanli.dao.mybatis.hongbao.HongBaoMapper; import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper; +import com.yeshi.fanli.dao.mybatis.order.CommonOrderMapper; +import com.yeshi.fanli.dao.mybatis.order.HongBaoOrderMapper; import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoOrderMapper; import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanDrawBackMapper; import com.yeshi.fanli.entity.bus.user.AccountDetails; -import com.yeshi.fanli.entity.bus.user.HongBao; +import com.yeshi.fanli.entity.bus.user.HongBaoV2; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.money.UserMoneyDetail; +import com.yeshi.fanli.entity.order.CommonOrder; +import com.yeshi.fanli.entity.order.HongBaoOrder; import com.yeshi.fanli.entity.taobao.TaoBaoOrder; import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack; import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; import com.yeshi.fanli.exception.TaoBaoWeiQuanException; import com.yeshi.fanli.exception.money.UserMoneyDetailException; import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.msg.UserMoneyMsgNotificationService; import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanDrawBackService; import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanOrderService; import com.yeshi.fanli.service.inter.user.UserNotificationService; +import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.factory.AccountDetailsFactory; import com.yeshi.fanli.util.factory.UserMoneyDetailFactory; +import com.yeshi.fanli.vo.order.CommonOrderVO; @Service public class TaoBaoWeiQuanDrawBackServiceImpl implements TaoBaoWeiQuanDrawBackService { @Resource private TaoBaoWeiQuanDrawBackMapper taoBaoWeiQuanDrawBackMapper; - - @Resource - private HongBaoMapper hongBaoMapper; @Resource private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService; @@ -61,6 +66,18 @@ @Resource private UserNotificationService userNotificationService; + + @Resource + private CommonOrderMapper commonOrderMapper; + + @Resource + private HongBaoV2Mapper hongBaoV2Mapper; + + @Resource + private HongBaoOrderMapper hongBaoOrderMapper; + + @Resource + private UserMoneyMsgNotificationService userMoneyMsgNotificationService; @Override public void addWeiQuanDrawBack(TaoBaoWeiQuanDrawBack taoBaoWeiQuanDrawBack) { @@ -86,12 +103,32 @@ sumFee = sumFee.add(order.geteIncome()); // 鑾峰彇鍜岃璁㈠崟鍙锋湁鍏宠仈鐨勭敤鎴� // 鑾峰彇涓荤孩鍖�(鍚屼竴涓鍗曞彿鐨勫崟鍙細瀵瑰簲鍚屼竴涓敤鎴�) - List<HongBao> mainHongBaoList = hongBaoMapper.selectByOrderIdWithoutChild(orderId); + List<CommonOrderVO> typeList = new ArrayList<>(); + CommonOrderVO cv = new CommonOrderVO(); + cv.setSourceType(Constant.SOURCE_TYPE_TAOBAO); + cv.setOrderNo(orderId); + typeList.add(cv); + + List<CommonOrderVO> commonOrderList = commonOrderMapper.listOrderGoodsInfo(typeList); + List<HongBaoV2> mainHongBaoList = new ArrayList<>(); + if (commonOrderList != null) + for (CommonOrderVO vo : commonOrderList) { + // 淇敼璁㈠崟鐘舵�佷负缁存潈 + CommonOrder co = new CommonOrder(vo.getId()); + co.setState(CommonOrder.STATE_WQ); + co.setUpdateTime(new Date()); + commonOrderMapper.updateByPrimaryKeySelective(co); + + HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(vo.getId()); + mainHongBaoList.add(hongBaoOrder.getHongBaoV2()); + } if (mainHongBaoList == null || mainHongBaoList.size() == 0) return; for (int i = 0; i < mainHongBaoList.size(); i++) { + HongBaoV2 hb = hongBaoV2Mapper.selectByPrimaryKey(mainHongBaoList.get(i).getId()); + mainHongBaoList.set(i, hb); // 鍙鐞嗚繑鍒╄鍗� - if (mainHongBaoList.get(i).getType() != HongBao.TYPE_TAOBAO) { + if (hb.getType() != HongBaoV2.TYPE_ZIGOU) { mainHongBaoList.remove(i); i--; } @@ -104,8 +141,8 @@ Map<Long, BigDecimal> fanMoneyMap = new HashMap<>(); if (mainHongBaoList != null) - for (HongBao hongBao : mainHongBaoList) { - if (hongBao.getState() == HongBao.STATE_SHIXIAO) + for (HongBaoV2 hongBao : mainHongBaoList) { + if (hongBao.getState() == HongBaoV2.STATE_SHIXIAO) continue; // 绱涓荤孩鍖呯殑閲戦 if (fanMoneyMap.get(hongBao.getUserInfo().getId()) == null) { @@ -165,6 +202,10 @@ } } + // 鏂扮増閫氱煡 + userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, orderId, drawBackMoney, + userInfoMapper.selectByPrimaryKey(uid).getMyHongBao()); + userNotificationService.weiQuanFanli(uid, orderId, drawBackMoney); } } @@ -187,7 +228,27 @@ sumFee = sumFee.add(order.geteIncome()); // 鑾峰彇鍜岃璁㈠崟鍙锋湁鍏宠仈鐨勭敤鎴� // 鑾峰彇涓荤孩鍖�(鍚屼竴涓鍗曞彿鐨勫崟鍙細瀵瑰簲鍚屼竴涓敤鎴�) - List<HongBao> mainHongBaoList = hongBaoMapper.selectByOrderIdWithoutChild(orderId); + + List<CommonOrderVO> typeList = new ArrayList<>(); + CommonOrderVO cv = new CommonOrderVO(); + cv.setSourceType(Constant.SOURCE_TYPE_TAOBAO); + cv.setOrderNo(orderId); + typeList.add(cv); + + List<CommonOrderVO> commonOrderList = commonOrderMapper.listOrderGoodsInfo(typeList); + List<HongBaoV2> mainHongBaoList = new ArrayList<>(); + if (commonOrderList != null) + for (CommonOrderVO vo : commonOrderList) { + // 鏇存敼璁㈠崟鐘舵�� + CommonOrder co = new CommonOrder(vo.getId()); + co.setState(CommonOrder.STATE_WQ); + co.setUpdateTime(new Date()); + commonOrderMapper.updateByPrimaryKeySelective(co); + + HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(vo.getId()); + mainHongBaoList.add(hongBaoOrder.getHongBaoV2()); + } + if (mainHongBaoList == null || mainHongBaoList.size() == 0) return; @@ -195,11 +256,13 @@ Map<Long, BigDecimal> fanMoneyMap = new HashMap<>(); if (mainHongBaoList != null) - for (HongBao hongBao : mainHongBaoList) { - if (hongBao.getState() == HongBao.STATE_SHIXIAO) + for (HongBaoV2 hongBao : mainHongBaoList) { + hongBao = hongBaoV2Mapper.selectByPrimaryKey(hongBao.getId()); + if (hongBao.getState() == HongBaoV2.STATE_SHIXIAO) continue; + // 杩斿埄绾㈠寘涓嶈鍏� - if (hongBao.getType() != HongBao.TYPE_TAOBAO) { + if (hongBao.getType() != HongBaoV2.TYPE_ZIGOU) { // 绱涓荤孩鍖呯殑閲戦 if (fanMoneyMap.get(hongBao.getUserInfo().getId()) == null) { fanMoneyMap.put(hongBao.getUserInfo().getId(), hongBao.getMoney()); @@ -208,10 +271,10 @@ fanMoneyMap.get(hongBao.getUserInfo().getId()).add(hongBao.getMoney())); } // 绱瀛愮孩鍖呯殑閲戦 - List<HongBao> childHongBaoList = hongBaoMapper.selectChildHongBaoByPid(hongBao.getId()); + List<HongBaoV2> childHongBaoList = hongBaoV2Mapper.listChildrenById(hongBao.getId()); if (childHongBaoList != null) - for (HongBao child : childHongBaoList) { - if (child.getState() == HongBao.STATE_SHIXIAO) + for (HongBaoV2 child : childHongBaoList) { + if (child.getState() == HongBaoV2.STATE_SHIXIAO) continue; if (fanMoneyMap.get(child.getUserInfo().getId()) == null) { fanMoneyMap.put(child.getUserInfo().getId(), child.getMoney()); @@ -271,6 +334,9 @@ } } + userMoneyMsgNotificationService.shareOrderWeiQuan(uid, orderId, drawBackMoney, + userInfoMapper.selectByPrimaryKey(uid).getMyHongBao()); + userNotificationService.weiQuanTiCheng(uid, orderId, drawBackMoney); } @@ -294,7 +360,27 @@ sumFee = sumFee.add(order.geteIncome()); // 鑾峰彇鍜岃璁㈠崟鍙锋湁鍏宠仈鐨勭敤鎴� // 鑾峰彇涓荤孩鍖�(鍚屼竴涓鍗曞彿鐨勫崟鍙細瀵瑰簲鍚屼竴涓敤鎴�) - List<HongBao> mainHongBaoList = hongBaoMapper.selectByOrderIdWithoutChild(orderId); + List<CommonOrderVO> typeList = new ArrayList<>(); + CommonOrderVO cv = new CommonOrderVO(); + cv.setSourceType(Constant.SOURCE_TYPE_TAOBAO); + cv.setOrderNo(orderId); + typeList.add(cv); + + List<CommonOrderVO> commonOrderList = commonOrderMapper.listOrderGoodsInfo(typeList); + List<HongBaoV2> mainHongBaoList = new ArrayList<>(); + if (commonOrderList != null) + for (CommonOrderVO vo : commonOrderList) { + CommonOrder co = commonOrderMapper.selectByPrimaryKey(vo.getId()); + if (co.getState() != CommonOrder.STATE_WQ) { + co = new CommonOrder(vo.getId()); + co.setState(CommonOrder.STATE_WQ); + co.setUpdateTime(new Date()); + commonOrderMapper.updateByPrimaryKeySelective(co); + } + + HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(vo.getId()); + mainHongBaoList.add(hongBaoOrder.getHongBaoV2()); + } if (mainHongBaoList == null || mainHongBaoList.size() == 0) return; @@ -302,11 +388,14 @@ Map<Long, BigDecimal> fanMoneyMap = new HashMap<>(); if (mainHongBaoList != null) - for (HongBao hongBao : mainHongBaoList) { - if (hongBao.getState() == HongBao.STATE_SHIXIAO) + for (HongBaoV2 hongBao : mainHongBaoList) { + HongBaoV2 hb = hongBaoV2Mapper.selectByPrimaryKey(hongBao.getId()); + hongBao = hb; + + if (hongBao.getState() == HongBaoV2.STATE_SHIXIAO) continue; // 杩斿埄绾㈠寘涓嶈鍏� - if (hongBao.getType() != HongBao.TYPE_TAOBAO) { + if (hongBao.getType() != HongBaoV2.TYPE_ZIGOU) { // 绱涓荤孩鍖呯殑閲戦 if (fanMoneyMap.get(hongBao.getUserInfo().getId()) == null) { fanMoneyMap.put(hongBao.getUserInfo().getId(), hongBao.getMoney()); @@ -315,10 +404,10 @@ fanMoneyMap.get(hongBao.getUserInfo().getId()).add(hongBao.getMoney())); } // 绱瀛愮孩鍖呯殑閲戦 - List<HongBao> childHongBaoList = hongBaoMapper.selectChildHongBaoByPid(hongBao.getId()); + List<HongBaoV2> childHongBaoList = hongBaoV2Mapper.listChildrenById(hongBao.getId()); if (childHongBaoList != null) - for (HongBao child : childHongBaoList) { - if (child.getState() == HongBao.STATE_SHIXIAO) + for (HongBaoV2 child : childHongBaoList) { + if (child.getState() == HongBaoV2.STATE_SHIXIAO) continue; if (fanMoneyMap.get(child.getUserInfo().getId()) == null) { fanMoneyMap.put(child.getUserInfo().getId(), child.getMoney()); @@ -379,7 +468,9 @@ } } - // + // 鏂扮増閫氱煡 + userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, orderId, drawBackMoney, + userInfoMapper.selectByPrimaryKey(uid).getMyHongBao()); userNotificationService.weiQuanTiCheng(uid, orderId, drawBackMoney); } -- Gitblit v1.8.0