Administrator
2018-11-28 29ca8afa441d0e01188757dc9fb2b5ec11c05c90
分享赚返利规则调整
1个文件已修改
44 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -573,17 +573,37 @@
        }
    }
    private HongBao filterWeiQuanINGHongBao(HongBao hongBao) {
        List<TaoBaoWeiQuanOrder> taoBaoWeiQuanList = taoBaoWeiQuanOrderMapper
                .selectListByOrderIdAndState(hongBao.getOrderId(), "维权创建");
        List<TaoBaoWeiQuanOrder> taoBaoWeiQuanList1 = taoBaoWeiQuanOrderMapper
                .selectListByOrderIdAndState(hongBao.getOrderId(), "等待处理");
        if ((taoBaoWeiQuanList != null && taoBaoWeiQuanList.size() > 0)
                || (taoBaoWeiQuanList1 != null && taoBaoWeiQuanList1.size() > 0)) {
            return null;
        }
        return hongBao;
    }
    @Override
    @Transactional
    public void fanliInvaiteAndShare(Long uid) throws TaoBaoWeiQuanException {
        /**
         * 处理邀请赚订单
         */
        // 查询UID的邀请赚订单
        List<HongBao> hongBaoList = hongBaoMapper.selectCanBalanceHongBaoByChildHongBaoAndUid(uid);
        BigDecimal money = new BigDecimal(0);
        BigDecimal money = new BigDecimal(0);
        // 需要判断退款的订单号
        Set<String> drawBackOrders = new HashSet<String>();
        for (HongBao hongBao : hongBaoList) {
            hongBao = filterWeiQuanINGHongBao(hongBao);
            if (hongBao == null)
                continue;
            hongBao = hongBaoMapper.selectByPrimaryKeyForUpdate(hongBao.getId());
            if (hongBao.getState() == HongBao.STATE_BUKELINGQU || hongBao.getState() == HongBao.STATE_KELINGQU) {
                money = money.add(hongBao.getMoney());
@@ -608,10 +628,17 @@
            }
        }
        /**
         * 处理顶级分享赚
         */
        // 查询UID的分享赚订单
        List<PidOrder> pidOrderList = pidOrderMapper.getCanBalanceListByUid(uid);
        for (PidOrder pidOrder : pidOrderList) {
            HongBao hongBao = hongBaoMapper.selectByPrimaryKeyForUpdate(pidOrder.getHongBao().getId());
            hongBao = filterWeiQuanINGHongBao(hongBao);
            if (hongBao == null)
                continue;
            if (hongBao.getState() == HongBao.STATE_BUKELINGQU || hongBao.getState() == HongBao.STATE_KELINGQU) {
                money = money.add(hongBao.getMoney());
                HongBao updateHongBao = new HongBao();
@@ -632,10 +659,15 @@
            }
        }
        /**
         * 处理一级二级分享赚
         */
        List<HongBao> totalHongBaoList = new ArrayList<>();
        // 查询UID的二级或者三级分享赚订单
        // TODO 暂时查询10000条数据,后面再做分页
        List<HongBao> hbList = hongBaoMapper.selectCanBalanceHongBaoByTypeAndUid(HongBao.TYPE_SHARE_YIJI, uid, 10000);
        if (hbList != null && hbList.size() > 0)
            totalHongBaoList.addAll(hbList);
@@ -643,8 +675,12 @@
        if (hbList != null && hbList.size() > 0)
            totalHongBaoList.addAll(hbList);
        for (HongBao hb : totalHongBaoList) {
            if (hb.getState() == HongBao.STATE_BUKELINGQU || hb.getState() == HongBao.STATE_KELINGQU) {
                hb = filterWeiQuanINGHongBao(hb);
                if (hb == null)
                    continue;
                money = money.add(hb.getMoney());
                HongBao updateHongBao = new HongBao();
                updateHongBao.setId(hb.getId());
@@ -656,6 +692,10 @@
            }
        }
        /**
         * 增加用户资金记录
         */
        if (money.compareTo(new BigDecimal(0)) > 0) {
            userInfoMapper.addHongBaoByUid(uid, money);
            // 添加记录