修改随手拍活动审核计算收益规则(只要在活动时间内发布的随手拍都计算收益)
1个文件已修改
120 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletServiceImpl.java 120 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletServiceImpl.java
@@ -134,70 +134,66 @@
            return;
        }
        if(photoActivityDO.getStatus() != ComActEasyPhotoActivityDO.status.jxz){
            log.error("给用户添加收益失败,原因:活动未在进行中,活动id:" + easyPhotoDO.getActivityId());
//        if(photoActivityDO.getStatus() != ComActEasyPhotoActivityDO.status.jxz){
//            log.error("给用户添加收益失败,原因:活动未在进行中,活动id:" + easyPhotoDO.getActivityId());
//            return;
//        }
//        Date nowDate = new Date();
        //查询用户钱包
        ComActUserWalletDO userWalletDO = comActUserWalletMapper.selectOne(new QueryWrapper<ComActUserWalletDO>()
                .lambda().eq(ComActUserWalletDO::getUserId,easyPhotoDO.getSponsorId()).eq(ComActUserWalletDO::getCommunityId,easyPhotoDO.getCommunityId()));
        if(userWalletDO == null){
            userWalletDO = new ComActUserWalletDO();
            userWalletDO.setIncomeAmount(BigDecimal.ZERO);
            userWalletDO.setAvailableAmount(BigDecimal.ZERO);
            userWalletDO.setSettlementAmount(BigDecimal.ZERO);
            userWalletDO.setUserId(easyPhotoDO.getSponsorId());
            userWalletDO.setCommunityId(easyPhotoDO.getCommunityId());
            userWalletDO.setEasyCount(0);
            userWalletDO.setCreateAt(new Date());
            this.baseMapper.insert(userWalletDO);
        }
        //计算收益
        BigDecimal profitAmount = BigDecimal.ZERO;
        if(activityType.equals(ComActEasyPhotoDO.activityType.yz)){
            profitAmount = photoActivityDO.getGoodReward();
        }else if(activityType.equals(ComActEasyPhotoDO.activityType.jl)){
            profitAmount = photoActivityDO.getExcellentReward();
        }else if(activityType.equals(ComActEasyPhotoDO.activityType.pt)){
            profitAmount = photoActivityDO.getOrdinaryReward();
        }
        if(profitAmount.compareTo(BigDecimal.ZERO) == 0){
            log.error("此次参加活动的随手拍收益为0,不记录本次交易");
            return;
        }else{
            //记录钱包变动前金额
            BigDecimal oldIncomeAmount = userWalletDO.getIncomeAmount();
            BigDecimal oldAvailableAmount = userWalletDO.getAvailableAmount();
            BigDecimal oldSettlementAmount = userWalletDO.getSettlementAmount();
            //更新钱包金额
            userWalletDO.setIncomeAmount(userWalletDO.getIncomeAmount().add(profitAmount));
            userWalletDO.setAvailableAmount(userWalletDO.getAvailableAmount().add(profitAmount));
            comActUserWalletMapper.updateById(userWalletDO);
            //新增钱包资金交易记录
            Long tradeId = comActUserWalletTradeService.addWalletTrade(easyPhotoDO.getSponsorId(),easyPhotoDO.getCommunityId()
                    ,easyPhotoDO.getId(),profitAmount, ComActUserWalletTradeDO.type.fb,"发布随手拍"
                    ,userId,userWalletDO.getId(),ComActUserWalletTradeDO.changeType.add);
            //新增钱包资金变动记录
            comActUserWalletChangeService.addWalletChange(easyPhotoDO.getSponsorId(),easyPhotoDO.getCommunityId(),userWalletDO.getId()
                    ,oldIncomeAmount,userWalletDO.getIncomeAmount(),oldAvailableAmount,userWalletDO.getAvailableAmount()
                    ,oldSettlementAmount,userWalletDO.getSettlementAmount(),tradeId);
        }
        Date nowDate = new Date();
        //活动正在进行中,需要给用户计算收益
        if(nowDate.getTime() - photoActivityDO.getActivityStartAt().getTime() > 0 && nowDate.getTime() - photoActivityDO.getActivityEndAt().getTime() < 0){
            //查询用户钱包
            ComActUserWalletDO userWalletDO = comActUserWalletMapper.selectOne(new QueryWrapper<ComActUserWalletDO>()
                    .lambda().eq(ComActUserWalletDO::getUserId,easyPhotoDO.getSponsorId()).eq(ComActUserWalletDO::getCommunityId,easyPhotoDO.getCommunityId()));
            if(userWalletDO == null){
                userWalletDO = new ComActUserWalletDO();
                userWalletDO.setIncomeAmount(BigDecimal.ZERO);
                userWalletDO.setAvailableAmount(BigDecimal.ZERO);
                userWalletDO.setSettlementAmount(BigDecimal.ZERO);
                userWalletDO.setUserId(easyPhotoDO.getSponsorId());
                userWalletDO.setCommunityId(easyPhotoDO.getCommunityId());
                userWalletDO.setEasyCount(0);
                userWalletDO.setCreateAt(new Date());
                this.baseMapper.insert(userWalletDO);
            }
            //计算收益
            BigDecimal profitAmount = BigDecimal.ZERO;
            if(activityType.equals(ComActEasyPhotoDO.activityType.yz)){
                profitAmount = photoActivityDO.getGoodReward();
            }else if(activityType.equals(ComActEasyPhotoDO.activityType.jl)){
                profitAmount = photoActivityDO.getExcellentReward();
            }else if(activityType.equals(ComActEasyPhotoDO.activityType.pt)){
                profitAmount = photoActivityDO.getOrdinaryReward();
            }
            if(profitAmount.compareTo(BigDecimal.ZERO) == 0){
                log.error("此次参加活动的随手拍收益为0,不记录本次交易");
                return;
            }else{
                //记录钱包变动前金额
                BigDecimal oldIncomeAmount = userWalletDO.getIncomeAmount();
                BigDecimal oldAvailableAmount = userWalletDO.getAvailableAmount();
                BigDecimal oldSettlementAmount = userWalletDO.getSettlementAmount();
                //更新钱包金额
                userWalletDO.setIncomeAmount(userWalletDO.getIncomeAmount().add(profitAmount));
                userWalletDO.setAvailableAmount(userWalletDO.getAvailableAmount().add(profitAmount));
                comActUserWalletMapper.updateById(userWalletDO);
                //新增钱包资金交易记录
                Long tradeId = comActUserWalletTradeService.addWalletTrade(easyPhotoDO.getSponsorId(),easyPhotoDO.getCommunityId()
                        ,easyPhotoDO.getId(),profitAmount, ComActUserWalletTradeDO.type.fb,"发布随手拍"
                        ,userId,userWalletDO.getId(),ComActUserWalletTradeDO.changeType.add);
                //新增钱包资金变动记录
                comActUserWalletChangeService.addWalletChange(easyPhotoDO.getSponsorId(),easyPhotoDO.getCommunityId(),userWalletDO.getId()
                        ,oldIncomeAmount,userWalletDO.getIncomeAmount(),oldAvailableAmount,userWalletDO.getAvailableAmount()
                        ,oldSettlementAmount,userWalletDO.getSettlementAmount(),tradeId);
            }
            //更新随手拍活动信息
            easyPhotoDO.setActivityType(activityType);
            easyPhotoDO.setActivityAmount(profitAmount);
            comActEasyPhotoDAO.updateById(easyPhotoDO);
        }
        //更新随手拍活动信息
        easyPhotoDO.setActivityType(activityType);
        easyPhotoDO.setActivityAmount(profitAmount);
        comActEasyPhotoDAO.updateById(easyPhotoDO);
    }
    /**