From 38efbb4a62ccdd98e4122fc879dd230795ef8ce3 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Fri, 19 Nov 2021 15:51:30 +0800 Subject: [PATCH] 20211119 --- gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 51 insertions(+), 3 deletions(-) diff --git a/gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java b/gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java index 1e1ab40..4cb50d3 100644 --- a/gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java +++ b/gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java @@ -188,6 +188,7 @@ stringBuffer.append(pointReward); redPaperRule.setStatus((short) 0); redPaperRule.setRuleName("分销规则"); + redPaperRule.setRuleType("9"); redPaperRule.setSharingProfitType("frist_reward,order_num_frist,regular_point,regular_money_percent,point_reward"); redPaperRule.setShareRatio(stringBuffer.toString()); redPaperRuleMapper.insert(redPaperRule); @@ -483,6 +484,11 @@ } RedPaperRule rule = redPaperRules.get(0); + if (rule.getStatus() == 0) { + log.info("规则被禁用, 不执行返利"); + return; + } + String shareTimes = getRuleValue(rule, CommonEnum.朋友圈分享限次.getValue()); String shareScore = getRuleValue(rule, CommonEnum.朋友圈分享奖励.getValue()); @@ -495,7 +501,7 @@ throw new RestException("达到24小时内最大分享次数"); } - if (StrUtil.isNotBlank(shareScore)) { + if (StrUtil.isBlank(shareScore)) { return; } @@ -510,7 +516,7 @@ scoreDetails.setOriginalScore(collectScore); scoreDetails.setChangeScore(returnScore); scoreDetails.setCreatedTime(new Date()); - scoreDetails.setType(ScoreDetails.SCORE_TYPE_INVITE_FIRST_ORDER); + scoreDetails.setType(ScoreDetails.SCORE_TYPE_SHARE_MOMENTS); scoreDetails.setUserId(accountInfo.getUserId()); scoreDetailsMapper.insert(scoreDetails); @@ -524,10 +530,52 @@ sysMessage.setFlag("2"); sysMessageMapper.insert(sysMessage); - redisUtil.setex(key, times.toString(), 84400); + Date tomorrow = DateUtil.parse(DateUtil.tomorrow().toString("yyyy-MM-dd") + " 00:00:00", "yyyy-MM-dd HH:mm:ss"); + long time = DateUtil.between(new Date(), tomorrow, DateUnit.SECOND, false); + redisUtil.setex(key, times.toString(), (int) time); } } + public void inviteAward(String phone) { + AccountInfo accountInfo = accountMapper.selectAccountInfoByPhone(phone); + + List<RedPaperRule> redPaperRules = redPaperRuleMapper.selectByRuleType("10"); + if (CollUtil.isEmpty(redPaperRules)) { + return; + } + + RedPaperRule rule = redPaperRules.get(0); + String invite = getRuleValue(rule, CommonEnum.邀请奖励.getValue()); + + if (StrUtil.isBlank(invite)) { + return; + } + + BigDecimal returnScore = new BigDecimal(invite); + BigDecimal collectScore = StrUtil.isNotBlank(accountInfo.getCollectScore()) ? new BigDecimal(accountInfo.getCollectScore()) : BigDecimal.ZERO; + accountInfo.setCollectScore(collectScore.add(returnScore).setScale(0, RoundingMode.DOWN).toString()); + accountMapper.updateByPrimaryKey(accountInfo); + + ScoreDetails scoreDetails = new ScoreDetails(); + scoreDetails.setCurrentScore(new BigDecimal(accountInfo.getCollectScore())); + scoreDetails.setOriginalScore(collectScore); + scoreDetails.setChangeScore(returnScore); + scoreDetails.setCreatedTime(new Date()); + scoreDetails.setType(ScoreDetails.SCORE_TYPE_INVITE); + scoreDetails.setUserId(accountInfo.getUserId()); + scoreDetailsMapper.insert(scoreDetails); + + SysMessage sysMessage = new SysMessage(); + sysMessage.setCreateTime(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")); + sysMessage.setCreateUserId(accountInfo.getUserId()); + sysMessage.setUserId(accountInfo.getUserId()); + sysMessage.setMessageType("4"); + sysMessage.setMessageSubTypeName("邀请奖励"); + sysMessage.setMessage("邀请奖励, 积分:" + returnScore); + sysMessage.setFlag("2"); + sysMessageMapper.insert(sysMessage); + } + private String getRuleValue(RedPaperRule redPaperRule, String key) { List<String> rules = StrUtil.split(redPaperRule.getSharingProfitType(), ','); List<String> values = StrUtil.split(redPaperRule.getShareRatio(), ','); -- Gitblit v1.9.1