From a364fbab598a45842d4b38d156e8b5e55f9513ad Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 23 十一月 2019 14:35:54 +0800 Subject: [PATCH] 红包封禁 + 后台管理 --- fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java | 61 +++++++++++++++--------------- 1 files changed, 31 insertions(+), 30 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java index b7710be..e6d4e2b 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java @@ -18,6 +18,7 @@ import com.yeshi.fanli.entity.bus.user.UserActiveLog; import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.order.CommonOrder; import com.yeshi.fanli.entity.redpack.RedPackWinInvite; import com.yeshi.fanli.entity.redpack.RedPackWinInvite.RedPackWinInviteTypeEnum; import com.yeshi.fanli.service.inter.count.HongBaoV2CountService; @@ -36,6 +37,7 @@ import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.VersionUtil; import com.yeshi.fanli.util.annotation.RequestSerializableByKeyService; +import com.yeshi.fanli.util.annotation.redpack.RedPackGetVersionLimit; import com.yeshi.fanli.util.factory.RedPackDetailFactory; @Service @@ -148,6 +150,7 @@ winInvite.setUid(bossId); winInvite.setTeamUid(teamUid); winInvite.setMoney(money); + winInvite.setIdentifyCode(StringUtil.Md5(RedPackWinInviteTypeEnum.oneStageReward.name() + ":" + teamUid)); redPackWinInviteMapper.insertSelective(winInvite); // 澧炲姞绾㈠寘 @@ -163,53 +166,48 @@ @RequestSerializableByKeyService(key = "#uid") + @RedPackGetVersionLimit(uid = "#uid") @Transactional(rollbackFor = Exception.class) @Override - public void orderArriveReward(Long uid, Integer source, String orderNo) throws Exception { + public void inviteOrderArriveReward(Long uid, Integer source, String orderNo) throws Exception { if (uid == null || source == null || StringUtil.isNullOrEmpty(orderNo)) return; - ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(uid, Constant.RED_PACK_REWARD_TIME); - if(threeSale == null) - return; - bossReward(threeSale.getBoss().getId(), uid, source, orderNo); - } - - - /** - * 涓婄骇濂栧姳 - * @param uid - * @param teamUid - * @param source - * @param orderNo - * @throws Exception - */ - @Transactional - private void bossReward(Long bossId, Long teamUid, Integer source, String orderNo) throws Exception { - UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(bossId); - if (activeLog == null) + //鑾峰彇璁㈠崟瀵瑰簲涓嬪崟浜� + List<CommonOrder> list = commonOrderService.listBySourceTypeAndOrderId(source, orderNo); + if (list == null || list.isEmpty()) return; - // 灏忎簬2.0.2鐗堟湰涓嶅鍔� - if (!VersionUtil.greaterThan_2_1("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android", - activeLog.getVersionCode())) + CommonOrder commonOrder = list.get(0); + if (commonOrder == null || commonOrder.getUserInfo() == null) + return; + + // 涓嬪崟浜篿d + Long teamUid = commonOrder.getUserInfo().getId(); + if (teamUid == null) + return; + + // 楠岃瘉涓婁笅绾у叧绯� + ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(teamUid, Constant.RED_PACK_REWARD_TIME); + if(threeSale == null || threeSale.getBoss().getId().longValue() != uid.longValue()) return; // 绗竴闃舵(楠岃瘉) - RedPackWinInvite oneStage = redPackWinInviteMapper.getByUidAndTeamUidAndType(bossId, teamUid, RedPackWinInviteTypeEnum.oneStageReward.name()); + RedPackWinInvite oneStage = redPackWinInviteMapper.getByUidAndTeamUidAndType(uid, teamUid, RedPackWinInviteTypeEnum.oneStageReward.name()); if (oneStage == null) return; // 绗簩闃舵(楠岃瘉) - RedPackWinInvite twoStage = redPackWinInviteMapper.getByUidAndTeamUidAndType(bossId, teamUid, RedPackWinInviteTypeEnum.twoStageReward.name()); + RedPackWinInvite twoStage = redPackWinInviteMapper.getByUidAndTeamUidAndType(uid, teamUid, RedPackWinInviteTypeEnum.twoStageReward.name()); if (twoStage == null) { - twoStageRewardToBoss(bossId, teamUid, oneStage.getCreateTime(), source, orderNo); + twoStageRewardToBoss(uid, teamUid, oneStage.getCreateTime(), source, orderNo); return; } // 绗笁闃舵 - threeStageRewardToBoss(bossId, teamUid, twoStage.getCreateTime(), source, orderNo); + threeStageRewardToBoss(uid, teamUid, twoStage.getCreateTime(), source, orderNo); } + /** * 涓婄骇濂栧姳--绗簩闃舵 @@ -222,7 +220,8 @@ private void twoStageRewardToBoss(Long bossId, Long teamUid, Date oneStageTime, Integer source, String orderNo) throws Exception{ // 绗竴闃舵瀹屾垚涔嬪悗鐨�90澶╁唴 ; 闃熷弸浜х敓鐨勮鍗曚腑锛堣嚜璐�+鍒嗕韩锛夛紝閭�璇蜂汉绱浜х敓鈮�1 鍏冨閲� Date endDate = DateUtil.plusDayDate(Constant.TWO_STAGE_LIMIT_DAYS, oneStageTime); - BigDecimal rewardMoney = hongBaoV2CountService.getShareRewardByTeamUid(bossId, teamUid, endDate); + // 缁熻璁㈠崟濂栭噾 锛堚�滃ソ鍙嬭嚜璐�濆拰鈥滃ソ鍙嬪垎浜�濓級 + BigDecimal rewardMoney = hongBaoV2CountService.getOrderRewardByTeamUid(bossId, teamUid, endDate); if (rewardMoney == null || rewardMoney.compareTo(Constant.TWO_STAGE_ORDER_REWARD_MIN) < 0) return; @@ -244,6 +243,7 @@ winInvite.setCreateTime(new Date()); winInvite.setUpdateTime(new Date()); winInvite.setType(RedPackWinInviteTypeEnum.twoStageReward); + winInvite.setIdentifyCode(StringUtil.Md5(RedPackWinInviteTypeEnum.twoStageReward.name() + ":" + teamUid)); redPackWinInviteMapper.insertSelective(winInvite); // 4銆佸鍔犵孩鍖� @@ -287,8 +287,8 @@ if (monthSpace != totalNum + 1) return; - // 姣忔湀缁欎綘绱浜х敓鈮�2 鍏� - BigDecimal rewardMoney = hongBaoV2CountService.getShareRewardByTeamUidLastMonth(bossId, teamUid); + // 缁熻鏈湀鑾峰緱濂栭噾 锛堚�滃ソ鍙嬭嚜璐�濆拰鈥滃ソ鍙嬪垎浜�濓級 + BigDecimal rewardMoney = hongBaoV2CountService.getOrderRewardByTeamUidTheMonth(bossId, teamUid); if (rewardMoney == null || rewardMoney.compareTo(Constant.THREE_STAGE_ORDER_REWARD_MIN) < 0) return; @@ -307,6 +307,7 @@ winInvite.setMoney(money); winInvite.setSource(source); winInvite.setOrderNo(orderNo); + winInvite.setIdentifyCode(StringUtil.Md5(RedPackWinInviteTypeEnum.threeStageReward.name() + ":" + teamUid + "-" + monthSpace)); redPackWinInviteMapper.insertSelective(winInvite); // 4銆佸鍔犵孩鍖� -- Gitblit v1.8.0