gc-core/src/main/java/com/xzx/gc/common/constant/CommonEnum.java | ●●●●● patch | view | raw | blame | history | |
gc-order/src/main/java/com/xzx/gc/order/service/DistribService.java | ●●●●● patch | view | raw | blame | history | |
gc-user/src/main/java/com/xzx/gc/user/controller/ApiDistribController.java | ●●●●● patch | view | raw | blame | history | |
gc-user/src/main/java/com/xzx/gc/user/mapper/RedPaperRuleMapper.java | ●●●●● patch | view | raw | blame | history | |
gc-user/src/main/java/com/xzx/gc/user/mapper/ScoreDetailsMapper.java | ●●●●● patch | view | raw | blame | history | |
gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java | ●●●●● patch | view | raw | blame | history | |
gc-user/src/main/resources/mapper/user/RedPaperRuleMapper.xml | ●●●●● patch | view | raw | blame | history | |
gc-user/src/main/resources/mapper/user/ScoreDetailsMapper.xml | ●●●●● patch | view | raw | blame | history |
gc-core/src/main/java/com/xzx/gc/common/constant/CommonEnum.java
@@ -100,7 +100,9 @@ 返利环保币比例("regular_money_percent"), 完成数量后返积分("point_reward"), 推荐首单奖励("first_score") 推荐首单奖励("first_score"), 朋友圈分享奖励("share_score"), 朋友圈分享限次("share_score_time") ;//枚举结束 private String value; gc-order/src/main/java/com/xzx/gc/order/service/DistribService.java
@@ -238,7 +238,7 @@ scoreDetails.setOriginalScore(collectScore); scoreDetails.setChangeScore(returnScore); scoreDetails.setCreatedTime(new Date()); scoreDetails.setType(ScoreDetails.SCORE_TYPE_OTHER); scoreDetails.setType(ScoreDetails.SCORE_TYPE_INVITE_FIRST_ORDER); scoreDetails.setUserId(accountInfo.getUserId()); scoreDetails.setOrderNo(orderId.toString()); scoreDetailsMapper.insert(scoreDetails); gc-user/src/main/java/com/xzx/gc/user/controller/ApiDistribController.java
@@ -70,4 +70,11 @@ return JsonResult.success(distribService.findHeadTeamListInPage(headTeamDto)); } @ApiOperation("分享到朋友圈") @PostMapping(value = "/distrib/shareMoments") public JsonResult<String> shareMoments(HttpServletRequest request) { distribService.shareToMoments(getUserId(request)); return JsonResult.success("分享成功"); } } gc-user/src/main/java/com/xzx/gc/user/mapper/RedPaperRuleMapper.java
@@ -4,9 +4,13 @@ import com.xzx.gc.util.GcMapper; import org.apache.ibatis.annotations.Param; import java.util.List; public interface RedPaperRuleMapper extends GcMapper<RedPaperRule> { RedPaperRule getOne(@Param("now") String now, @Param("ruleType") String ruleType, @Param("partnerId") String partnerId); RedPaperRule selectByRuleName(@Param("ruleStr")String ruleStr); List<RedPaperRule> selectByRuleType(@Param("type") String type); } gc-user/src/main/java/com/xzx/gc/user/mapper/ScoreDetailsMapper.java
New file @@ -0,0 +1,7 @@ package com.xzx.gc.user.mapper; import com.xzx.gc.entity.ScoreDetails; import com.xzx.gc.util.GcMapper; public interface ScoreDetailsMapper extends GcMapper<ScoreDetails> { } gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java
@@ -6,7 +6,9 @@ import cn.hutool.core.date.DateUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.xzx.gc.common.constant.CommonEnum; import com.xzx.gc.common.exception.RestException; import com.xzx.gc.common.utils.RedisUtil; import com.xzx.gc.common.utils.StringUtils; import com.xzx.gc.entity.*; import com.xzx.gc.user.dto.*; @@ -30,6 +32,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.HashMap; import java.util.List; @@ -55,6 +58,10 @@ private UserShareInfoMapper userShareInfoMapper; @Autowired private SysMessageMapper sysMessageMapper; @Autowired private RedisUtil redisUtil; @Autowired private ScoreDetailsMapper scoreDetailsMapper; public ViewSettingVo viewSetting(String ruleStr) { ViewSettingVo viewSettingVo = new ViewSettingVo(); @@ -468,4 +475,64 @@ redPaperRuleMapper.updateByPrimaryKey(redPaperRule); } } public void shareToMoments(String userId) { List<RedPaperRule> redPaperRules = redPaperRuleMapper.selectByRuleType("10"); if (CollUtil.isEmpty(redPaperRules)) { return; } RedPaperRule rule = redPaperRules.get(0); String shareTimes = getRuleValue(rule, CommonEnum.朋友圈分享限次.getValue()); String shareScore = getRuleValue(rule, CommonEnum.朋友圈分享奖励.getValue()); String key = "moments:times:" + userId; Integer times = redisUtil.getAsInt("moments:times:" + userId); times = times == null ? 1 : times + 1; if (StrUtil.isNotBlank(shareTimes)) { if (times > Integer.parseInt(shareTimes)) { throw new RestException("达到24小时内最大分享次数"); } if (StrUtil.isNotBlank(shareScore)) { return; } AccountInfo accountInfo = accountMapper.selectOneByUserId(userId); BigDecimal returnScore = new BigDecimal(shareScore); 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_FIRST_ORDER); 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); redisUtil.setex(key, times.toString(), 84400); } } private String getRuleValue(RedPaperRule redPaperRule, String key) { List<String> rules = StrUtil.split(redPaperRule.getSharingProfitType(), ','); List<String> values = StrUtil.split(redPaperRule.getShareRatio(), ','); int i = rules.indexOf(key); return values.get(i); } } gc-user/src/main/resources/mapper/user/RedPaperRuleMapper.xml
@@ -21,4 +21,8 @@ <select id="selectByRuleName" resultType="com.xzx.gc.entity.RedPaperRule"> select * from xzx_user_redpaper_rule where rule_name = #{ruleStr} </select> <select id="selectByRuleType" resultType="com.xzx.gc.entity.RedPaperRule"> select * from xzx_user_redpaper_rule where rule_type=#{type} </select> </mapper> gc-user/src/main/resources/mapper/user/ScoreDetailsMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace=""> </mapper>