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