| | |
| | | public void join(String headId, String userId) { |
| | | log.info("#加入团队:{}, {}#", headId, userId); |
| | | AccountInfo headInfo = accountMapper.selectOneByUserId(headId); |
| | | if (headInfo == null) { |
| | | return; |
| | | } |
| | | if (AccountInfo.IS_HEAD_N.equals(headInfo.getIsHead())) { |
| | | throw new RestException(-3, "不是团长"); |
| | | } |
| | |
| | | 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); |
| | |
| | | } |
| | | |
| | | RedPaperRule rule = redPaperRules.get(0); |
| | | if (rule.getStatus() == 0) { |
| | | log.info("规则被禁用, 不执行返利"); |
| | | return; |
| | | } |
| | | |
| | | String shareTimes = getRuleValue(rule, CommonEnum.朋友圈分享限次.getValue()); |
| | | |
| | | String shareScore = getRuleValue(rule, CommonEnum.朋友圈分享奖励.getValue()); |
| | |
| | | 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; |
| | | } |
| | | |
| | | List<UserShareInfo> hasInvite = userShareInfoMapper.selectByPhone(phone); |
| | | if (CollUtil.isNotEmpty(hasInvite)) { |
| | | if (hasInvite.size() >= 10) { |
| | | log.info("超过10个,邀请无效:{}", phone); |
| | | 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(), ','); |